class Uia::Keys

Constants

KEYS

msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys(v=vs.110).aspx

SPECIAL_KEYS

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