class Knitpickr::Controller
Public Class Methods
browse_by_fiber()
click to toggle source
# File lib/knitpickr/controller.rb, line 70 def self.browse_by_fiber puts "Here is a list of all yarn fiber content options - to learn more, enter the number listed below:" Knitpickr::Scraper.all_fibers.each_with_index {|x, i| puts "#{i+1}. #{x}"} puts "Want to learn more? Enter a number from above. You can also enter 'list' to see the list again, or 'exit'." input = gets.chomp until input.to_i != 0 || input == "exit" || input == "list" puts "Sorry - I don't understand. Please enter '1', '2', '3', '4', or 'exit':" input = gets.chomp end if input == "exit" puts "Ok, see you later!" return nil elsif input == "list" self.browse_by_fiber elsif input.to_i > 0 && input.to_i <= Knitpickr::Scraper.all_fibers.count index = input.to_i - 1 selection = Knitpickr::Yarn.find_by_fiber(Knitpickr::Scraper.all_fibers[index]) Knitpickr::Yarn.show_details(selection) else puts "Hmm, I don't see that number on the list. Let's try this again..." self.browse_by_fiber end puts "Browse again? (Y/N)" input = gets.chomp.downcase case input when "y" self.greeting when "n" puts "Ok, see you later!" return nil end end
browse_by_name()
click to toggle source
# File lib/knitpickr/controller.rb, line 109 def self.browse_by_name puts "Here is a list of all yarn names - to learn more, enter the number listed below:" Knitpickr::Scraper.all_names.each_with_index {|x, i| puts "#{i+1}. #{x}"} puts "Want to learn more? Enter a number from above. You can also enter 'list' to see the list again, or 'exit'." input = gets.chomp until input.to_i != 0 || input == "exit" || input == "list" puts "Sorry - I don't understand. Please enter '1', '2', '3', '4', or 'exit':" input = gets.chomp end if input == "exit" puts "Ok, see you later!" return nil elsif input == "list" self.browse_by_name elsif input.to_i > 0 && input.to_i <= Knitpickr::Scraper.all_names.count index = input.to_i - 1 selection = Knitpickr::Yarn.find_by_name(Knitpickr::Scraper.all_names[index]) Knitpickr::Yarn.show_details(selection) else puts "Hmm, I don't see that number on the list. Let's try this again..." self.browse_by_name end puts "Browse again? (Y/N)" input = gets.chomp.downcase case input when "y" self.greeting when "n" puts "Ok, see you later!" return nil end end
browse_by_weight()
click to toggle source
# File lib/knitpickr/controller.rb, line 29 def self.browse_by_weight puts "Here is a list of all yarn weight options - to learn more, enter the number listed below:" Knitpickr::Scraper.all_weights.each_with_index {|x, i| puts "#{i+1}. #{x}"} puts "Want to learn more? Enter a number from above. You can also enter 'list' to see the list again, or 'exit'." input = gets.chomp until input.to_i != 0 || input == "exit" || input == "list" puts "Sorry - I don't understand. Please enter '1', '2', '3', '4', or 'exit':" input = gets.chomp end if input == "exit" puts "Ok, see you later!" return nil elsif input == "list" self.browse_by_weight elsif input.to_i > 0 && input.to_i <= Knitpickr::Scraper.all_weights.count index = input.to_i - 1 selection = Knitpickr::Yarn.find_by_weight(Knitpickr::Scraper.all_weights[index]) Knitpickr::Yarn.show_details(selection) else puts "Hmm, I don't see that number on the list. Let's try this again..." self.browse_by_weight end puts "Browse again? (Y/N)" input = gets.chomp.downcase case input when "y" self.greeting when "n" puts "Ok, see you later!" return nil end end
browse_sale()
click to toggle source
# File lib/knitpickr/controller.rb, line 148 def self.browse_sale puts "Here is a list of all yarn currently on sale - to learn more, enter the number listed below:" Knitpickr::Scraper.all_sale.each_with_index {|x, i| puts "#{i+1}. #{x.name} (#{x.price})"} puts "Want to learn more? Enter a number from above. You can also enter 'list' to see the list again, or 'exit'." input = gets.chomp until input.to_i != 0 || input == "exit" || input == "list" puts "Sorry - I don't understand. Please enter '1', '2', '3', '4', or 'exit':" input = gets.chomp end if input == "exit" puts "Ok, see you later!" return nil elsif input == "list" self.browse_sale elsif input.to_i > 0 && input.to_i <= Knitpickr::Scraper.all_sale.count index = input.to_i - 1 selection = Knitpickr::Scraper.all_sale[index] puts "Yarn name: #{selection.name}" puts "Yarn weight: #{selection.weight}" puts "Fiber content: #{selection.fiber}" puts "Price: #{selection.price}" if selection.sale puts "On sale!" end else puts "Hmm, I don't see that number on the list. Let's try this again..." self.browse_sale end puts "Browse again? (Y/N)" input = gets.chomp.downcase case input when "y" self.greeting when "n" puts "Ok, see you later!" return nil end end
greeting()
click to toggle source
# File lib/knitpickr/controller.rb, line 3 def self.greeting puts "Hello! Would you like to browse by [1] yarn weight, [2] fiber content, [3] yarn name, or [4] all sale items? Please enter '1', '2', '3', or '4':" input = gets.chomp.to_s until input == "1" || input == "2" || input == "3" || input == "4" || input == "exit" puts "Sorry - I don't understand. Please enter '1', '2', '3', '4' or 'exit':" input = gets.chomp.to_s end case input when "1" browse_by_weight when "2" browse_by_fiber when "3" browse_by_name when "4" browse_sale when "exit" puts "Ok, see you later!" return nil end end