class Bundler::Thor::LineEditor::Readline

Public Class Methods

available?() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 4
def self.available?
  begin
    require "readline"
  rescue LoadError
  end

  Object.const_defined?(:Readline)
end

Public Instance Methods

readline() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 13
def readline
  if echo?
    ::Readline.completion_append_character = nil
    # rb-readline does not allow Readline.completion_proc= to receive nil.
    if complete = completion_proc
      ::Readline.completion_proc = complete
    end
    ::Readline.readline(prompt, add_to_history?)
  else
    super
  end
end

Private Instance Methods

add_to_history?() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 28
def add_to_history?
  options.fetch(:add_to_history, true)
end
completion_options() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 42
def completion_options
  options.fetch(:limited_to, [])
end
completion_proc() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 32
def completion_proc
  if use_path_completion?
    proc { |text| PathCompletion.new(text).matches }
  elsif completion_options.any?
    proc do |text|
      completion_options.select { |option| option.start_with?(text) }
    end
  end
end
use_path_completion?() click to toggle source
# File bundler/vendor/thor/lib/thor/line_editor/readline.rb, line 46
def use_path_completion?
  options.fetch(:path, false)
end