class Uia::Keys
Constants
Public Class Methods
encode(keys)
click to toggle source
# File lib/uia/keys.rb, line 53 def self.encode(keys) keys.reduce('') do |encoded, key| encoded << case key when String encode_str(key) when Symbol encode_sym(key) when Array "#{encode([key.shift])}(#{encode(key)})" end end end
encode_str(s)
click to toggle source
# File lib/uia/keys.rb, line 66 def self.encode_str(s) s.gsub(/([#{SPECIAL_KEYS.join ''}])/, '{\1}') end
encode_sym(sym)
click to toggle source
# File lib/uia/keys.rb, line 70 def self.encode_sym(sym) found = KEYS[sym] raise InvalidKey, "#{sym} is not a valid key" unless found found end