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
print_search_summary(search_results) click to toggle source
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