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