class Remedy::Interaction

Attributes

message[RW]

Public Class Methods

new(message = nil) click to toggle source
# File lib/remedy/interaction.rb, line 6
def initialize message = nil
  @message = message
end

Public Instance Methods

confirm(message = 'Confirm?') { || ... } click to toggle source
# File lib/remedy/interaction.rb, line 12
def confirm message = 'Confirm?'
  ANSI.cursor.home!
  ANSI.command.clear_line!

  print message, ' y/n '
  if Keyboard.get === :y then
    yield if block_given?
    true
  else
    false
  end
end
debug!() click to toggle source
# File lib/remedy/interaction.rb, line 36
def debug!
  require 'pry'
  binding.pry
end
display(key) click to toggle source
# File lib/remedy/interaction.rb, line 41
def display key
  ANSI.command.clear_line!
  print " -- You pressed: #{key.inspect}"
end
get_key() click to toggle source
# File lib/remedy/interaction.rb, line 67
def get_key
  print " -- #{message}" if message

  ANSI.cursor.hide!
  key = Keyboard.get
end
loop() { |key| ... } click to toggle source
Calls superclass method
# File lib/remedy/interaction.rb, line 46
def loop
  Keyboard.raise_on_control_c!

  super do
    print " -- #{message}" if message

    ANSI.cursor.hide!
    key = Keyboard.get

    if key == ?\C-q then
      display key
      quit!
    elsif key == ?\C-d and defined? Pry then
      display key
      debug!
    end

    yield key
  end
end
quit!() click to toggle source
# File lib/remedy/interaction.rb, line 25
def quit!
  confirm 'Are you sure you want to quit? You will lose everything. :(' do
    ANSI.cursor.home!
    ANSI.command.clear_down!
    ANSI.cursor.show!

    puts " -- Bye!"
    exit
  end
end