Class: ITermCLI::Terminal::SendKeys

Inherits:
Function
  • Object
show all
Defined in:
lib/iterm_cli/terminal/send_keys.rb

Constant Summary collapse

SOURCE =
"  function run(argv) {\n    var options = JSON.parse(argv[0]);\n    var iTerm = Application(\"iTerm2\");\n    var window = iTerm.currentWindow();\n    var i, session;\n\n    for (i = 0; i < window.tabs.length; i++) {\n      session = window.tabs[i].currentSession();\n      if (session.name() === options.target) {\n        session.write({text: options.text});\n      }\n    }\n\n    return;\n  }\n".freeze

Instance Method Summary collapse

Methods inherited from Function

call, #osascript

Instance Method Details

#call(keys, options = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/iterm_cli/terminal/send_keys.rb', line 22

def call(keys, options = {})
  options = {target: nil}.merge(options)
  target = options[:target]

  text = keys.map {|t|
    case t
    when /\AC-(.)$\z/
      ($1.ord & 0b00011111).chr
    when "Enter"
      "\n"
    else
      t
    end
  }.join(" ")

  osascript(SOURCE, target: target, text: text)
end