module Rib::MultilineHistory

Public Instance Methods

before_loop() click to toggle source

————— Rib API —————

Calls superclass method
# File lib/rib/more/multiline_history.rb, line 11
def before_loop
  @multiline_trash = 0
  super
end
handle_interrupt() click to toggle source
Calls superclass method
# File lib/rib/more/multiline_history.rb, line 24
def handle_interrupt
  return super if MultilineHistory.disabled?
  if multiline_buffer.size > 1
    multiline_trash
    @multiline_trash += 1
  end
  super
end
loop_eval(input) click to toggle source
Calls superclass method
# File lib/rib/more/multiline_history.rb, line 16
def loop_eval input
  return super if MultilineHistory.disabled?
  super
ensure
  # SyntaxError might mean we're multiline editing
  handle_multiline unless multiline?($!)
end

Private Instance Methods

handle_multiline() click to toggle source
# File lib/rib/more/multiline_history.rb, line 36
def handle_multiline
  if multiline_buffer.size > 1
    # so multiline editing is considering done here
    # TODO: there's no history.pop(size)
    (multiline_buffer.size + multiline_trash).times{ history.pop }
    history << "\n" + multiline_buffer.join("\n")
  end
end
multiline_trash() click to toggle source
# File lib/rib/more/multiline_history.rb, line 45
def multiline_trash
  @multiline_trash ||= 0
end