Sha256: 9d45e26e59eb23ed1d729edf3fab3d02772247998bc10e061926a3abed837674

Contents?: true

Size: 707 Bytes

Versions: 1

Compression:

Stored size: 707 Bytes

Contents

require 'ripl/rc/u'
require 'ripl/rc/multiline' # dependency

module Ripl::Rc::MultilineHistory
  include Ripl::Rc::U

  def loop_eval(input)
    return super if MultilineHistory.disabled?
    super # might throw
  ensure
    unless @rc_multiline_buffer.empty?
      (@rc_multiline_buffer.size + (@rc_multiline_trash || 0)).
        times{ history.pop }
       @rc_multiline_trash = 0
      history << "\n" + @rc_multiline_buffer.join("\n")
    end
  end

  def handle_interrupt
    return super if MultilineHistory.disabled?
    unless @rc_multiline_buffer.empty?
      @rc_multiline_trash ||= 0
      @rc_multiline_trash  += 1
    end
    super
  end
end

Ripl::Shell.include(Ripl::Rc::MultilineHistory)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ripl-rc-0.2.4 lib/ripl/rc/multiline_history.rb