class DinosaurCatalog::App
Constants
- EXIT_TERMS
Public Class Methods
new(name)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 21 def initialize(name) @app_name = name end
Public Instance Methods
create_app(file)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 25 def create_app(file) if EXIT_TERMS.include?(file) puts "\n\nExiting.\n\n" exit! else puts "\nFile Found!\n" launch_app!(file) end end
create_catalog(filepath)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 42 def create_catalog(filepath) @catalog = Catalog.new(filepath) end
filter_dinosaur_results(catalog, filters)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 60 def filter_dinosaur_results(catalog, filters) filtered_dinosaur_listings = catalog.dinosaurs filters.each do |search_type, criteria| filter_function = "filter_#{search_type}".to_sym filtered_dinosaur_listings = Catalog.from_array(filtered_dinosaur_listings).send(filter_function, criteria) end filtered_dinosaur_listings end
launch_app!(csv_filename=nil)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 35 def launch_app!(csv_filename=nil) @csv_filename = csv_filename new_csv_file = normalize_csv_file(csv_filename) @catalog = create_catalog(new_csv_file) obtain_user_filters end
perform_search(input)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 46 def perform_search(input) exit! if EXIT_TERMS.include? input search_terms = get_user_search_terms(input) search_dinosaurs(search_terms) end
print_search_summary(search_results)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 69 def print_search_summary(search_results) puts "\n" search_results.each { |dinosaur| puts "#{dinosaur.name}" } puts "\n" end
search_dinosaurs(terms)
click to toggle source
# File lib/dinosaur_catalog/app.rb, line 52 def search_dinosaurs(terms) @filtered_dinosaurs = nil @filtered_dinosaurs = filter_dinosaur_results(@catalog, terms) puts "\nYour search resulted in #{@filtered_dinosaurs.size} dinosaurs:" print_search_summary(@filtered_dinosaurs) user_processing end