class MartialArts::CLI

CLI Controler

Public Instance Methods

all_styles_submenu() click to toggle source
# File lib/martial_arts/cli.rb, line 173
def all_styles_submenu
  size = MartialArts::Styles.all.size
  input = nil

  messages("all styles")
  MartialArts::Styles.styles_list.each.with_index(1) {|style_instance, i| puts "#{i}. #{style_instance.name}" }
  messages("user")

  while input != "back"
    input = gets.strip.downcase

    case input
    when /\d\d*/ #Checks if input is a number

      if (1...size+1).include?(input.to_i)
        style = MartialArts::Styles.styles_list[input.to_i-1]

        display_info_for(style)
        messages("list or back")
      else
        messages("invalid")
      end

    when "list"
      messages("all styles")
      MartialArts::Styles.styles_list.each.with_index(1) {|style_instance, i| puts "#{i}. #{style_instance.name}" }
      messages("user")
    when "back"
      break
    else
      messages("invalid")
    end

  end
end
call() click to toggle source
# File lib/martial_arts/cli.rb, line 4
def call
  messages("greeting")

  menu
end
country_styles_sub_submenu() click to toggle source
# File lib/martial_arts/cli.rb, line 130
def country_styles_sub_submenu
  size = @style_list.size
  input = nil

  while input != "back"
    input = gets.strip.downcase

    case input
    when /\d\d*/  #checks if input is a number

      if (1...size+1).include?(input.to_i)

        display_info_for(@style_list[input.to_i-1])
        messages("list or back")
      else
        messages("invalid")
      end

    when "list"
      styles_by_country_list(@country_input)
    when "back"
      messages("countries")
      MartialArts::Countries.country_list.each.with_index(1) {|country, i| puts "#{i}. #{country}"}
      messages("user")
      break
    else
      messages("invalid")
    end

  end
end
display_info_for(style) click to toggle source
# File lib/martial_arts/cli.rb, line 342
def display_info_for(style)

  puts " "
  puts "                              #{"Style info for".magenta} #{style.name.cyan}"
  puts " "
  puts "Country: #{style.country_name.green}"
  puts "Fighting Focus: #{style.fighting_focus_name.yellow}"
  puts " "
  puts "Description: #{style.description.red}"
  puts " "
  puts "More Info: #{style.website.magenta}"
  puts " "

end
fighting_focus_submenu() click to toggle source
# File lib/martial_arts/cli.rb, line 209
def fighting_focus_submenu
  @focus_list = {1 => "Striking", 2 => "Grappling", 3 => "Weaponry", 4 => "Hybrid", 5 => "Internal"}
  input = nil

  messages("fighting focus menu")
  @focus_list.each {|i, focus| puts "#{i}. #{focus}" }
  messages("user")

  while input != "back"
    input = gets.strip.downcase

    case input
    when "1", "2", "3", "4", "5"
      styles_by_focus_list(input)
      styles_by_focus_sub_submenu

    when "list"
      messages("fighting focus menu")
      @focus_list.each {|i, focus| puts "#{i}. #{focus}" }
      messages("user")
    when "back"
      break
    else
      messages("invalid")
    end

  end
end
martial_arts_by_country_submenu() click to toggle source
# File lib/martial_arts/cli.rb, line 95
def martial_arts_by_country_submenu
  size = MartialArts::Countries.country_list.size
  input = nil

  messages("countries")
  MartialArts::Countries.country_list.each.with_index(1) {|country, i| puts "#{i}. #{country}"}
  messages("user")

  while input != "back"
    input = gets.strip.downcase

    case input
    when /\d\d*/  #checks if input is a number

      if (1...size+1).include?(input.to_i)
        styles_by_country_list(input)

        country_styles_sub_submenu
      else
        messages("invalid")
      end

    when "list"
      messages("countries")
      MartialArts::Countries.country_list.each.with_index(1) {|country, i| puts "#{i}. #{country}"}
      messages("user")
    when "back"
      break
    else
      messages("invalid")
    end

  end
end
menu() click to toggle source
messages(type) click to toggle source
# File lib/martial_arts/cli.rb, line 279
def messages(type)
  case type
  when "greeting"

    puts "OOOOOOSSSsss".magenta
    puts "Choose your destiny".blue
    #maybe want to add delay from first puts to second, maybe 3 seconds.
  when "invalid"

    puts ""
    puts "I'm confused can you try that again?".cyan
    puts ""

  when "user"

    puts ""
    puts "Enter the corresponding number for more information".light_cyan
    puts "#{"Otherwise type".cyan} list #{"or".cyan} back"

  when "styles by focus"

    puts ""
    puts "                              #{"FIGHTING FOCUS:".magenta} #{@focus_list[@focus_input.to_i]}"
    puts ""

  when "fighting focus menu"

    puts ""
    puts "                              CHOOSE YOUR FIGHTING FOCUS".magenta
    puts ""

  when "all styles"

    puts ""
    puts "                              #{"ALL STYLES".magenta}"
    puts ""

  when "styles by country"

    puts ""
    puts "                              #{"MARTIAL ARTS FROM".magenta} #{@country.upcase.cyan}"
    puts ""

  when "countries"

    puts ""
    puts "                              #{"COUNTRIES".magenta}"
    puts ""

  when "popular"

    puts ""
    puts "                              POPULAR MARTIAL ARTS".magenta#15 tabs for title
    puts ""

  when "list or back"

    puts "#{"Type".cyan} list #{"or".cyan} back"

  else
  end
end
styles_by_country_list(input) click to toggle source
# File lib/martial_arts/cli.rb, line 162
def styles_by_country_list(input)
  @country_input = input
  @country = MartialArts::Countries.country_list[input.to_i-1]
  @style_list = MartialArts::Styles.search_by_country(@country)

  messages("styles by country")
  @style_list.each.with_index(1) {|style_instance, i| puts "#{i}. #{style_instance.name}"}
  messages("user")

end
styles_by_focus_list(input) click to toggle source
# File lib/martial_arts/cli.rb, line 269
def styles_by_focus_list(input)
  @focus_input = input  #save input from focus_submenu so user can return
  @focus_style_list = MartialArts::Styles.search_by_focus(@focus_list[input.to_i])

  messages("styles by focus")
  @focus_style_list.each.with_index(1) {|style_instance, i| puts "#{i}. #{style_instance.name}" }
  messages("user")

end
styles_by_focus_sub_submenu() click to toggle source
# File lib/martial_arts/cli.rb, line 238
def styles_by_focus_sub_submenu
  size = @focus_style_list.size
  input = nil

  while input != "back"
    input = gets.strip.downcase

    case input
    when /\d\d*/  #checks if input is a number

      if (1...size+1).include?(input.to_i)
        display_info_for(@focus_style_list[input.to_i-1])
        messages("list or back")
      else
        messages("invalid")
      end

    when "list"
      styles_by_focus_list(@focus_input)
    when "back"
      messages("fighting focus menu")
      @focus_list.each {|i, focus| puts "#{i}. #{focus}" }
      messages("user")
      break
    else
      messages("invalid")
    end

  end
end