Class: Pry::History
Overview
The History class is responsible for maintaining the user’s input history, both internally and within Readline.
Instance Attribute Summary collapse
-
#clearer ⇒ Object
Returns the value of attribute clearer.
-
#loader ⇒ Object
Returns the value of attribute loader.
-
#original_lines ⇒ Fixnum
readonly
Number of lines in history when Pry first loaded.
-
#pusher ⇒ Object
Returns the value of attribute pusher.
-
#saver ⇒ Object
Returns the value of attribute saver.
Instance Method Summary collapse
-
#clear ⇒ Object
Clear this session’s history.
-
#history_line_count ⇒ Fixnum
The number of lines in history.
-
#initialize(options = {}) ⇒ History
constructor
A new instance of History.
-
#load ⇒ Integer
Load the input history using ‘History.loader`.
-
#push(line) ⇒ String
(also: #<<)
Add a line to the input history, ignoring blank and duplicate lines.
-
#restore_default_behavior ⇒ Object
Assign the default methods for loading, saving, pushing, and clearing.
-
#session_line_count ⇒ Fixnum
The number of lines in history from just this session.
-
#to_a ⇒ Array<String>
Return an Array containing all stored history.
Constructor Details
#initialize(options = {}) ⇒ History
Returns a new instance of History.
10 11 12 13 14 15 |
# File 'lib/pry/history.rb', line 10 def initialize(={}) @history = [] @original_lines = 0 @file_path = [:file_path] restore_default_behavior end |
Instance Attribute Details
#clearer ⇒ Object
Returns the value of attribute clearer.
5 6 7 |
# File 'lib/pry/history.rb', line 5 def clearer @clearer end |
#loader ⇒ Object
Returns the value of attribute loader.
5 6 7 |
# File 'lib/pry/history.rb', line 5 def loader @loader end |
#original_lines ⇒ Fixnum (readonly)
Returns Number of lines in history when Pry first loaded.
8 9 10 |
# File 'lib/pry/history.rb', line 8 def original_lines @original_lines end |
#pusher ⇒ Object
Returns the value of attribute pusher.
5 6 7 |
# File 'lib/pry/history.rb', line 5 def pusher @pusher end |
#saver ⇒ Object
Returns the value of attribute saver.
5 6 7 |
# File 'lib/pry/history.rb', line 5 def saver @saver end |
Instance Method Details
#clear ⇒ Object
Clear this session’s history. This won’t affect the contents of the history file.
58 59 60 61 |
# File 'lib/pry/history.rb', line 58 def clear @clearer.call @history = [] end |
#history_line_count ⇒ Fixnum
Returns The number of lines in history.
64 65 66 |
# File 'lib/pry/history.rb', line 64 def history_line_count @history.count end |
#load ⇒ Integer
Load the input history using ‘History.loader`.
35 36 37 38 39 40 41 |
# File 'lib/pry/history.rb', line 35 def load @loader.call do |line| @pusher.call(line.chomp) @history << line.chomp @original_lines += 1 end end |
#push(line) ⇒ String Also known as: <<
Add a line to the input history, ignoring blank and duplicate lines.
46 47 48 49 50 51 52 53 |
# File 'lib/pry/history.rb', line 46 def push(line) unless line.empty? || (@history.last && line == @history.last) @pusher.call(line) @history << line @saver.call(line) if Pry.config.history.should_save end line end |
#restore_default_behavior ⇒ Object
Assign the default methods for loading, saving, pushing, and clearing.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/pry/history.rb', line 18 def restore_default_behavior Pry.config.input # force Readline to load if applicable @loader = method(:read_from_file) @saver = method(:save_to_file) if defined?(Readline) @pusher = method(:push_to_readline) @clearer = method(:clear_readline) else @pusher = proc { } @clearer = proc { } end end |
#session_line_count ⇒ Fixnum
Returns The number of lines in history from just this session.
69 70 71 |
# File 'lib/pry/history.rb', line 69 def session_line_count @history.count - @original_lines end |
#to_a ⇒ Array<String>
Return an Array containing all stored history.
76 77 78 |
# File 'lib/pry/history.rb', line 76 def to_a @history.dup end |