Class: Freyia::LineEditor::Readline

Inherits:
Basic
  • Object
show all
Defined in:
lib/freyia/line_editor/readline.rb

Defined Under Namespace

Classes: PathCompletion

Instance Attribute Summary

Attributes inherited from Basic

#options, #prompt

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Basic

#initialize

Constructor Details

This class inherits a constructor from Freyia::LineEditor::Basic

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
# File 'lib/freyia/line_editor/readline.rb', line 6

def self.available?
  begin
    require "readline"
  rescue LoadError # rubocop:disable Lint/SuppressedException
  end

  Object.const_defined?(:Readline)
end

Instance Method Details

#readlineObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/freyia/line_editor/readline.rb', line 15

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