class Kaizoku::CommandLineInterface
Your code goes hereā¦
Public Instance Methods
exit_screen()
click to toggle source
# File lib/kaizoku.rb, line 7 def exit_screen puts "Thank you for using Kaizoku!" separator exit end
gem_description(subcategory)
click to toggle source
# File lib/kaizoku.rb, line 118 def gem_description(subcategory) url = "https://www.ruby-toolbox.com" + subcategory[0].css("a").attribute("href").value doc = Nokogiri::HTML(open(url)) doc end
gem_description_output(doc)
click to toggle source
# File lib/kaizoku.rb, line 124 def gem_description_output(doc) puts "Here's the gem for the job!" puts " " puts "#{pastel.bright_yellow(doc.css(".is-size-4").first.children.text)}" puts " " puts "#{pastel.bright_yellow('score: ')}" + doc.css(".score").first.css("span").text puts "#{pastel.bright_yellow('description: ')}" + doc.css(".description.column").first.text puts "#{pastel.bright_yellow('github: ')}" + doc.css(".links.column").first.css(".button.is-white")[1].attributes["href"].text separator exit_screen end
get_category()
click to toggle source
# File lib/kaizoku.rb, line 45 def get_category doc = Nokogiri::HTML(open("https://www.ruby-toolbox.com")) doc.css(".category-group").each do |category| puts category.css("h3").text end get_subcategory_screen end
get_category_screen()
click to toggle source
# File lib/kaizoku.rb, line 29 def get_category_screen get_category_validation end
get_category_validation()
click to toggle source
# File lib/kaizoku.rb, line 33 def get_category_validation input = gets.chomp separator if input == "list" get_category elsif input == "exit" exit_screen else unrecognized_input end end
get_gem_screen()
click to toggle source
# File lib/kaizoku.rb, line 91 def get_gem_screen separator puts "Type the subcategory to see the best gem for that category." puts "#{pastel.bright_yellow('back')} - go back to the main screen." puts "#{pastel.bright_yellow('exit')} - go quit the app." separator input = gets.chomp separator if input == "exit" exit_screen elsif input == "back" greeting_screen else match_input_with_subcategory(input) subcategory = match_input_with_subcategory(input) doc = gem_description(subcategory) gem_description_output(doc) end end
get_subcategory(input)
click to toggle source
# File lib/kaizoku.rb, line 72 def get_subcategory(input) separator doc = Nokogiri::HTML(open("https://www.ruby-toolbox.com")) @subcategories = [] doc.css(".category-group").each do |category| if category.css("h3").text == input @category = category puts "Here are the #{pastel.bright_yellow('subcategories')}, if any:" puts " " category.css(".column.is-half-desktop").each do |subcategory| @subcategories << subcategory puts subcategory.css("a span").text end get_gem_screen end end end
get_subcategory_screen()
click to toggle source
# File lib/kaizoku.rb, line 54 def get_subcategory_screen separator puts "Please make a selection:" puts " " puts "#{pastel.bright_yellow('[category]')} - enter one of the categories see gem subcategories." puts "#{pastel.bright_yellow('back')} - go back to the main screen." puts "#{pastel.bright_yellow('exit')} - go quit the app." separator input = gets.chomp if input == "exit" exit_screen elsif input == "back" greeting_screen else get_subcategory(input) end end
greeting_screen()
click to toggle source
# File lib/kaizoku.rb, line 19 def greeting_screen separator puts "Welcome to #{pastel.bright_yellow('Kaizoku')}!" puts " " puts "Easily find the best gem for the task at hand." puts "Type #{pastel.bright_yellow('list')} to see a list of gem categories." separator get_category_screen end
match_input_with_subcategory(input)
click to toggle source
# File lib/kaizoku.rb, line 112 def match_input_with_subcategory(input) @subcategories.select do |subcategory| input == subcategory.css("a span").text end end
pastel()
click to toggle source
# File lib/kaizoku.rb, line 136 def pastel pastel = Pastel.new pastel end
run()
click to toggle source
# File lib/kaizoku.rb, line 148 def run greeting_screen end
separator()
click to toggle source
# File lib/kaizoku.rb, line 141 def separator pastel puts " " puts pastel.bright_magenta("======================================================") puts " " end
unrecognized_input()
click to toggle source
# File lib/kaizoku.rb, line 13 def unrecognized_input puts "Input not recognized." exit_screen end