class FamilyWellnessDaily::CLI

Our CLI controller. input, welcoming - deal with user

Public Instance Methods

call() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 5
def call
  puts "Please wait while the classes load. This may take up to 1 minute.\n\n"
  #get classes from site
  FamilyWellnessDaily::Scraper.new
  #after classes have loaded, ask user how to view classes
  menu
  goodbye
end
goodbye() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 119
def goodbye
  puts "Have fun at class! You'll feel great after! See you tomorrow!\n\n"
  exit!
end
list_all_categories() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 42
def list_all_categories
  puts "----------------------------------------------------------------"

  FamilyWellnessDaily::FitnessClass.categories.each do |category|
    puts category
  end

  puts "----------------------------------------------------------------"
end
list_all_classes() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 66
def list_all_classes
  puts "Today's fitness classes at Family Wellness in Fargo:"

  @classes = FamilyWellnessDaily::FitnessClass.all

  if @classes.count > 0
    list_classes
  else
    puts "\n\nSorry there are no classes today."
    puts "----------------------------------------------------------------\n\n"
    menu
  end

end
list_classes() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 81
def list_classes
  puts "----------------------------------------------------------------"
  @classes.each.with_index(1) do |fitclass, i|
    puts "#{i}. #{fitclass.name} - #{fitclass.time}"
  end

  more_info
end
menu() click to toggle source
more_info() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 91
def more_info
  input = nil

  until input == "exit"
    puts "\n\nEnter the number of the class you'd like more information on, type menu to return to starting menu, or type exit:"
    input = gets.strip.downcase
    puts "----------------------------------------------------------------\n\n"

    if input.to_i > 0 && input.to_i <= @classes.count
      fitclass = @classes[input.to_i - 1]
      puts "Name: #{fitclass.name} \nStudio: #{fitclass.studio} \nInstructor: #{fitclass.instructor} \nTime: #{fitclass.time}"
      tags = ""
      fitclass.categories.each do |category|
         tags << category + ", "
       end
       puts "This class has the following tags: #{tags.chop.chop}"
    elsif input == "menu"
      menu
    elsif input == "exit"
    #added to allow more_info to keep looping but not force user to type exit more than once
        goodbye
    else
      puts "Not sure what you want? Type menu, exit, or the number of of class you'd like more info about." unless input == "exit"
    end
  end

end
view_by_category() click to toggle source
# File lib/family_wellness_daily/cli.rb, line 52
def view_by_category
  @classes = FamilyWellnessDaily::FitnessClass.collect_by_category(@current_category)

  if @classes.count > 0
    puts "\n\nToday's #{@current_category} fitness classes at Family Wellness include:"
    list_classes
  else
    puts "\n\nSorry there are no #{@current_category} classes today."
    puts "----------------------------------------------------------------\n\n"
    menu
  end

end