class CapistranoMulticonfigParallel::InteractiveMenu

methods used for the interactive menu where are listed all aplications

Attributes

applications[RW]
choices[RW]
msg[RW]

Public Class Methods

new(applications) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 9
def initialize(applications)
  @applications = applications
  @msg = ' '
  @choices = {}
end

Public Instance Methods

fetch_menu() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 15
def fetch_menu
  print_menu_choices
  result = print_selections
  print "#{@msg}\n"
  result.present? ? result.split(',') : []
end

Private Instance Methods

check_number_selected(num) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 79
def check_number_selected(num)
  check_numeric(num) && (num > 0 && num <= @applications.size)
end
confirm_option_selected() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 45
def confirm_option_selected
  print 'Enter a comma-separated list of option numbers or one single option number (again to uncheck, ENTER when done): '
  $stdin.gets.squeeze(' ').strip
end
fetch_choice(num) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 103
def fetch_choice(num)
  @choices.fetch(num, '')
end
handle_menu_option(option) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 70
def handle_menu_option(option)
  option.split(',').each_with_index do |number_option, _index|
    num = number_option.to_i
    show_option_selected(num)
    setup_message_invalid(num)
    next
  end
end
print_all_websites_available_options() click to toggle source
print_menu_choices() click to toggle source
print_option_name(option_name, index) click to toggle source
print_selected_index_option(index, option) click to toggle source
print_selections() click to toggle source
setup_choices_number(num) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 99
def setup_choices_number(num)
  @choices[num] = @choices[num].blank? ? '+' : ' '
end
setup_message_invalid(num) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 90
def setup_message_invalid(num)
  return if check_number_selected(num)
  @msg = "Invalid option: #{num}\n"
end
show_all_websites_interactive_menu() click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 30
def show_all_websites_interactive_menu
  result = ''
  @applications.each_with_index do |option_name, index|
    result += "#{option_name}," if choices[index].present?
    print_option_name(option_name, index)
  end
  strip_characters_from_string(result)
end
show_option_selected(num) click to toggle source
# File lib/capistrano_multiconfig_parallel/classes/interactive_menu.rb, line 83
def show_option_selected(num)
  return unless check_number_selected(num)
  num -= 1
  @msg += "#{@applications[num]} was #{@choices[num].present? ? 'un' : ''}checked\n"
  setup_choices_number(num)
end