class Pry::History - pry-0.10.1 Documentation

# 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)
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 `History.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