impress/lib/tasks/pets.rake
Emi Matchu e36e273d50 Extract Neopets::CustomPets service from the Pet class
Just getting this stuff out of Pet, in part because I want to start
being able to unit test modeling, and that will require stubbing out
what this service returns!
2024-10-18 17:40:31 -07:00

22 lines
740 B
Ruby

namespace :pets do
desc "Load a pet's viewer data"
task :load, [:name] => [:environment] do |task, args|
pp Neopets::CustomPets.fetch_viewer_data(args[:name])
end
desc "Find pets that were, last we saw, of the given color and species"
task :find, [:color_name, :species_name] => [:environment] do |task, args|
begin
pt = PetType.matching_name(args.color_name, args.species_name).first!
rescue ActiveRecord::RecordNotFound
abort "Could not find pet type for " +
"#{args.color_name} #{args.species_name}"
end
limit = ENV.fetch("LIMIT", 10)
pt.pets.limit(limit).order(id: :desc).pluck(:name).each do |pet_name|
puts "- #{pet_name} (https://www.neopets.com/petlookup.phtml?pet=#{pet_name})"
end
end
end