123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# File 'lib/osascript/Key.rb', line 123
def key_to_sysevents_code(key)
if key.is_a?(Hash)
modifiers = key[:modifiers]
delay_sup = key[:delay]
key = key[:key]
else
modifiers = nil
delay_sup = nil
end
code = case key
when String
key = key.gsub(/"/, '\\\"') unless key.match?(/\\"/)
"keystroke \"#{key}\""
when Integer
"key code #{key}"
when Symbol
"key code #{KEY2CODE[key]}"
else
raise "Unvalid class pour key: #{key.class}"
end
if modifiers
modifiers = modifiers.map {|mod| "#{mod} down" }.join(', ')
code = "#{code} using {#{modifiers}}"
end
if not(delay_sup.nil?)
code = "delay #{delay_sup}\n#{code}"
end
return code
end
|