class Tmuxinator::Window
Attributes
commands[R]
index[R]
name[R]
project[R]
Public Class Methods
new(window_yaml, index, project)
click to toggle source
# File lib/tmuxinator/window.rb, line 7 def initialize(window_yaml, index, project) first_key = window_yaml.keys.first @name = first_key.to_s.shellescape unless first_key.nil? @yaml = window_yaml.values.first @project = project @index = index @commands = build_commands(tmux_window_command_prefix, @yaml) end
Public Instance Methods
_hashed?()
click to toggle source
# File lib/tmuxinator/window.rb, line 21 def _hashed? @yaml.is_a?(Hash) end
_project_root()
click to toggle source
# File lib/tmuxinator/window.rb, line 45 def _project_root project.root if project.root? end
_yaml_root()
click to toggle source
# File lib/tmuxinator/window.rb, line 41 def _yaml_root File.expand_path(yaml["root"]).shellescape if yaml["root"] end
build_commands(_prefix, command_yml)
click to toggle source
# File lib/tmuxinator/window.rb, line 66 def build_commands(_prefix, command_yml) if command_yml.is_a?(Array) command_yml.map do |command| "#{tmux_window_command_prefix} #{command.shellescape} C-m" if command end.compact elsif command_yml.is_a?(String) && !command_yml.empty? ["#{tmux_window_command_prefix} #{command_yml.shellescape} C-m"] else [] end end
build_panes(panes_yml)
click to toggle source
# File lib/tmuxinator/window.rb, line 49 def build_panes(panes_yml) return if panes_yml.nil? Array(panes_yml).map.with_index do |pane_yml, index| commands = case pane_yml when Hash pane_yml.values.first when Array pane_yml else pane_yml end Tmuxinator::Pane.new(index, project, self, *commands) end.flatten end
layout()
click to toggle source
# File lib/tmuxinator/window.rb, line 29 def layout yaml["layout"] ? yaml["layout"].shellescape : nil end
panes()
click to toggle source
# File lib/tmuxinator/window.rb, line 17 def panes build_panes(yaml["panes"]) || [] end
panes?()
click to toggle source
# File lib/tmuxinator/window.rb, line 92 def panes? panes.any? end
pre()
click to toggle source
# File lib/tmuxinator/window.rb, line 78 def pre _pre = yaml["pre"] if _pre.is_a?(Array) _pre.join(" && ") elsif _pre.is_a?(String) _pre end end
root()
click to toggle source
# File lib/tmuxinator/window.rb, line 37 def root _yaml_root || _project_root end
root?()
click to toggle source
# File lib/tmuxinator/window.rb, line 88 def root? !root.nil? end
synchronize()
click to toggle source
# File lib/tmuxinator/window.rb, line 33 def synchronize yaml["synchronize"] || false end
synchronize_after?()
click to toggle source
# File lib/tmuxinator/window.rb, line 139 def synchronize_after? synchronize == "after" end
synchronize_before?()
click to toggle source
# File lib/tmuxinator/window.rb, line 135 def synchronize_before? synchronize == true || synchronize == "before" end
tmux_layout_command()
click to toggle source
# File lib/tmuxinator/window.rb, line 127 def tmux_layout_command "#{project.tmux} select-layout -t #{tmux_window_target} #{layout}" end
tmux_new_window_command()
click to toggle source
# File lib/tmuxinator/window.rb, line 114 def tmux_new_window_command path = root? ? "#{Tmuxinator::Config.default_path_option} #{root}" : nil "#{project.tmux} new-window #{path} -t #{tmux_window_target} #{tmux_window_name_option}" end
tmux_pre_window_command()
click to toggle source
# File lib/tmuxinator/window.rb, line 100 def tmux_pre_window_command return unless project.pre_window "#{project.tmux} send-keys -t #{tmux_window_target} #{project.pre_window.shellescape} C-m" end
tmux_select_first_pane()
click to toggle source
# File lib/tmuxinator/window.rb, line 131 def tmux_select_first_pane "#{project.tmux} select-pane -t #{tmux_window_target}.#{panes.first.index + project.pane_base_index}" end
tmux_synchronize_panes()
click to toggle source
# File lib/tmuxinator/window.rb, line 123 def tmux_synchronize_panes "#{project.tmux} set-window-option -t #{tmux_window_target} synchronize-panes on" end
tmux_tiled_layout_command()
click to toggle source
# File lib/tmuxinator/window.rb, line 119 def tmux_tiled_layout_command "#{project.tmux} select-layout -t #{tmux_window_target} tiled" end
tmux_window_command_prefix()
click to toggle source
# File lib/tmuxinator/window.rb, line 106 def tmux_window_command_prefix "#{project.tmux} send-keys -t #{project.name}:#{index + project.base_index}" end
tmux_window_name_option()
click to toggle source
# File lib/tmuxinator/window.rb, line 110 def tmux_window_name_option name ? "-n #{name}" : "" end
tmux_window_target()
click to toggle source
# File lib/tmuxinator/window.rb, line 96 def tmux_window_target "#{project.name}:#{index + project.base_index}" end
yaml()
click to toggle source
# File lib/tmuxinator/window.rb, line 25 def yaml _hashed? ? @yaml : {} end