class Chid::Commands::Tmux::Open

Public Instance Methods

run() click to toggle source
# File lib/chid/commands/tmux/open.rb, line 34
def run
  template_name = template_name_from_options
  template_name = select_template if template_name.empty?

  open_template(template_name)
end

Private Instance Methods

chid_config() click to toggle source
# File lib/chid/commands/tmux/open.rb, line 58
def chid_config
  ::ChidConfig.new
end
open_template(template_name) click to toggle source
# File lib/chid/commands/tmux/open.rb, line 74
def open_template(template_name)
  puts "\nOpening Template #{template_name}"
  commands = templates[template_name.to_sym]

  exist_tmux_session = system("tmux ls | grep -c #{template_name}")

  if exist_tmux_session
    system("tmux attach -t #{template_name}")
  else
    system(commands.join('').gsub('$$template_name$$', template_name.to_s))
  end
end
select_template() click to toggle source
# File lib/chid/commands/tmux/open.rb, line 66
def select_template
  prompt  = TTY::Prompt.new
  choices = templates.keys.map(&:to_s)
  selected_template = prompt.select('Choose a template to open', choices)

  selected_template
end
template_name_from_options() click to toggle source

Returns the template name mapped from the values of the options attribute. Will remove all nil values and join the array of values into String

@return [String] Mapped values from options attribute

If the options does not exist, will return empty String #=> ""

@example Template Name

options = {'-name' => ['base', 'two']}

template_name #=> 'base two'
# File lib/chid/commands/tmux/open.rb, line 54
def template_name_from_options
  @template_name ||= self.class.arguments.map { |a| options[a] }.compact.join(' ')
end
templates() click to toggle source
# File lib/chid/commands/tmux/open.rb, line 62
def templates
  @templates ||= chid_config.all_tmux_templates
end