class Remedy::Key

Public Class Methods

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

Public Instance Methods

==(key) click to toggle source
# File lib/remedy/key.rb, line 83
def == key
  if key.respond_to? :raw then
    key.raw == raw
  else
    "#{raw}" == "#{key}"
  end
end
===(object) click to toggle source
# File lib/remedy/key.rb, line 97
def === object
  "#{object}" =~ /#{to_s}/i
end
control?() click to toggle source
# File lib/remedy/key.rb, line 38
def control?
  @control ||= !!Characters.control[seq]
end
control_c?() click to toggle source
# File lib/remedy/key.rb, line 50
def control_c?
  @control_c ||= seq == Characters.control.key(:control_c)
end
enc() click to toggle source
# File lib/remedy/key.rb, line 18
def enc
  seq.dump[1..-2]
end
eql?(key) click to toggle source
# File lib/remedy/key.rb, line 91
def eql? key
  if key.is_a? self.class then
    self == key
  end
end
glyph() click to toggle source
# File lib/remedy/key.rb, line 26
def glyph
  @glyph ||= get_glyph
end
gremlin?() click to toggle source
# File lib/remedy/key.rb, line 46
def gremlin?
  @gremlin ||= !!Characters.gremlins[name]
end
hash() click to toggle source
# File lib/remedy/key.rb, line 101
def hash
  raw.hash
end
inspect() click to toggle source
# File lib/remedy/key.rb, line 79
def inspect
  "<#{self.class} #{name.inspect} value:#{value} glyph:#{glyph}>"
end
known?() click to toggle source
# File lib/remedy/key.rb, line 58
def known?
  !!Characters[seq]
end
name() click to toggle source
# File lib/remedy/key.rb, line 22
def name
  @name ||= Characters[seq] || :unknown
end
nonprintable?() click to toggle source
# File lib/remedy/key.rb, line 34
def nonprintable?
  @nonprintable ||= !!Characters.nonprintable[seq]
end
printable?() click to toggle source
# File lib/remedy/key.rb, line 30
def printable?
  @printable ||= !!Characters.printable[seq]
end
punctuation?() click to toggle source
# File lib/remedy/key.rb, line 42
def punctuation?
  @control ||= !!Characters.punctuation[seq]
end
raw() click to toggle source
# File lib/remedy/key.rb, line 14
def raw
  seq
end
recognized?() click to toggle source
# File lib/remedy/key.rb, line 54
def recognized?
  @recognized ||= name != :unknown
end
seq() click to toggle source
# File lib/remedy/key.rb, line 10
def seq
  @character_sequence
end
sequence?() click to toggle source
# File lib/remedy/key.rb, line 66
def sequence?
  @sequence ||= raw.length > 1
end
single?() click to toggle source
# File lib/remedy/key.rb, line 62
def single?
  @single ||= raw.length == 1
end
to_s() click to toggle source
# File lib/remedy/key.rb, line 70
def to_s
  @to_s ||= known? ? name.to_s : enc
end
value() click to toggle source
# File lib/remedy/key.rb, line 74
def value
  raw_value = raw.bytes.to_a.join(' ')
  single? ? raw_value : "(#{raw_value})"
end

Protected Instance Methods

get_glyph() click to toggle source
# File lib/remedy/key.rb, line 107
def get_glyph
  if punctuation? then
    seq
  elsif gremlin? then
    Characters.gremlins[name]
  else
    recognized? ? name : ''
  end
end