class NewlineHw::GuiTrigger
Attributes
editor[R]
Public Class Methods
new(data, config)
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 9 def initialize(data, config) @newline_submission_id = data["id"] @application = config.terminal end
Public Instance Methods
application()
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 14 def application return "Terminal".freeze unless %w(iTerm2 Terminal).include?(@application) @application end
call()
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 19 def call applescript = case application when "iTerm2" applescript_for_iterm else applescript_for_terminal end { terminal_output: `osascript -e '#{applescript}'` } end
Private Instance Methods
applescript_for_iterm()
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 41 def applescript_for_iterm <<-APPLESCRIPT tell application \"#{application}\" set newWindow to (create window with default profile) tell current session of newWindow write text "#{command_to_run_in_tty}" end tell end tell APPLESCRIPT end
applescript_for_terminal()
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 34 def applescript_for_terminal <<-APPLESCRIPT tell application "#{application}" to do script "#{command_to_run_in_tty}" tell application "#{application}" to activate APPLESCRIPT end
command_to_run_in_tty()
click to toggle source
# File lib/newline_hw/gui_trigger.rb, line 30 def command_to_run_in_tty "hw #{@newline_submission_id}" end