Sha256: c59e514855ece1de5661cb99e0dfed9a96437fc3ec2675cbb425653e03e21beb

Contents?: true

Size: 985 Bytes

Versions: 4

Compression:

Stored size: 985 Bytes

Contents

require 'readline'

module Byebug
  #
  # Handles byebug's history of commands.
  #
  class History
    class << self
      def load
        open(Setting[:histfile], 'r') do |file|
          file.each do |line|
            line.chomp!
            Readline::HISTORY << line
          end
        end if File.exist?(Setting[:histfile])
      end

      def save
        open(Setting[:histfile], 'w') do |file|
          Readline::HISTORY.to_a.last(Setting[:histsize]).each do |line|
            file.puts line unless line.strip.empty?
          end
        end
      end

      def to_s(size = Setting[:histsize])
        rl_size = Readline::HISTORY.length
        n_entries = rl_size < size ? rl_size : size

        first = rl_size - n_entries
        commands = Readline::HISTORY.to_a.last(n_entries)

        s = ''
        commands.each_with_index do |command, index|
          s += format("%5d  %s\n", first + index + 1, command)
        end

        s
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
byebug-3.4.2 lib/byebug/history.rb
byebug-3.4.1 lib/byebug/history.rb
byebug-3.4.0 lib/byebug/history.rb
byebug-3.3.0 lib/byebug/history.rb