class Pry::History

The History class is responsible for maintaining the user’s input history, both internally and within Readline.

Attributes

clearer[RW]
loader[RW]
original_lines[R]

@return [Fixnum] Number of lines in history when Pry first loaded.

pusher[RW]
saver[RW]

Public Class Methods

new(options={}) click to toggle source
# File lib/pry/history.rb, line 10
def initialize(options={})
  @history = []
  @original_lines = 0
  @file_path = options[:file_path]
  restore_default_behavior
end

Public Instance Methods

<<(line) click to toggle source
Alias for: push
clear() click to toggle source

Clear this session’s history. This won’t affect the contents of the history file.

# File lib/pry/history.rb, line 58
def clear
  @clearer.call
  @history = []
end
history_line_count() click to toggle source

@return [Fixnum] The number of lines in history.

# File lib/pry/history.rb, line 64
def history_line_count
  @history.count
end
load() click to toggle source

Load the input history using `#loader`. @return [Integer] The number of lines loaded

# 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) click to toggle source

Add a line to the input history, ignoring blank and duplicate lines. @param [String] line @return [String] The same line that was passed in

# 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
Also aliased as: <<
restore_default_behavior() click to toggle source

Assign the default methods for loading, saving, pushing, and clearing.

# 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() click to toggle source

@return [Fixnum] The number of lines in history from just this session.

# File lib/pry/history.rb, line 69
def session_line_count
  @history.count - @original_lines
end
to_a() click to toggle source

Return an Array containing all stored history. @return [Array<String>] An Array containing all lines of history loaded

or entered by the user in the current session.
# File lib/pry/history.rb, line 76
def to_a
  @history.dup
end