iterm_window/lib/iterm_window.rb

74 lines
2.4 KiB
Ruby
Raw Normal View History

# Developed March 17, 2008 by Chris Powers
#
2009-02-20 14:43:47 +00:00
# The ItermWindow class models an iTerm terminal window and allows for full control via Ruby commands.
# Under the hood, this class is a wrapper of iTerm's Applescript scripting API. Methods are used to
# generate Applescript code which is run as an <tt>osascript</tt> command when the ItermWindow initialization
# block is closed.
#
2009-02-20 14:43:47 +00:00
# ItermWindow::Tab models a tab (session) in an iTerm terminal window and allows for it to be controlled by Ruby.
# These tabs can be created with either the ItermWindow#open_bookmark method or the ItermWindow#open_tab
# method. Each tab is given a name (symbol) by which it can be accessed later as a method of ItermWindow.
#
2009-02-20 14:43:47 +00:00
# EXAMPLE - Open a new iTerm window, cd to a project and open it in TextMate
#
2009-02-20 14:43:47 +00:00
# ItermWindow.open do
# open_tab :my_tab do
# write "cd ~/projects/my_project/trunk"
# write "mate ./"
# end
# end
#
2009-02-20 14:43:47 +00:00
# EXAMPLE - Use the current iTerm window, cd to a project and open in TextMate, launch the server and the console and title them
#
2009-02-20 14:43:47 +00:00
# ItermWindow.current do
# open_tab :project_dir do
# write "cd ~/projects/my_project/trunk"
# write "mate ./"
# set_title "MyProject Dir"
# end
#
# open_tab :server do
2009-02-20 14:43:47 +00:00
# write "cd ~/projects/my_project/trunk"
# write "script/server -p 3005"
# set_title "MyProject Server"
# end
#
# open_tab :console do
2009-02-20 14:43:47 +00:00
# write "cd ~/projects/my_project/trunk"
# write "script/console"
# set_title "MyProject Console"
# end
# end
#
# EXAMPLE - Same thing, but use bookmarks that were made for the server and console. Also, switch focus back to project dir.
#
2009-02-20 14:43:47 +00:00
# ItermWindow.current do
# open_tab :project_dir do
# write "cd ~/projects/my_project/trunk"
# write "mate ./"
# end
#
2009-02-20 14:43:47 +00:00
# open_bookmark :server, 'MyProject Server'
# open_bookmark :console, 'MyProject Console'
#
2009-02-20 14:43:47 +00:00
# project_dir.select
# end
#
2009-02-20 14:43:47 +00:00
# EXAMPLE - Arbitrarily open two tabs, switch between them and run methods/blocks with Tab#select method and Tab#write directly
#
2009-02-20 14:43:47 +00:00
# ItermWindow.open do
# open_tab :first_tab
# open_tab :second_tab
# first_tab.select do
# write 'cd ~/projects'
# write 'ls'
# end
# second_tab.write "echo 'hello there!'"
# first_tab.select # brings first tab back to focus
# end
# The ItermWindow class models an iTerm terminal window and allows for full control via Ruby commands.
2011-07-12 15:22:41 +00:00