forked from OpenNeo/impress
Simplify PetType.random_basic_per_species
I'm mostly just going around looking for `special_color`, a concept I think the app doesn't use anymore, and removing it where I see it!
This commit is contained in:
parent
6312253b82
commit
6fdeffebf1
1 changed files with 3 additions and 8 deletions
|
@ -11,23 +11,18 @@ class PetType < ApplicationRecord
|
||||||
|
|
||||||
BasicHashes = YAML::load_file(Rails.root.join('config', 'basic_type_hashes.yml'))
|
BasicHashes = YAML::load_file(Rails.root.join('config', 'basic_type_hashes.yml'))
|
||||||
|
|
||||||
|
scope :basic, -> { joins(:color).merge(Color.basic) }
|
||||||
scope :matching_name, ->(color_name, species_name) {
|
scope :matching_name, ->(color_name, species_name) {
|
||||||
color = Color.find_by_name!(color_name)
|
color = Color.find_by_name!(color_name)
|
||||||
species = Species.find_by_name!(species_name)
|
species = Species.find_by_name!(species_name)
|
||||||
where(color_id: color.id, species_id: species.id)
|
where(color_id: color.id, species_id: species.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
def self.special_color_or_basic(special_color)
|
|
||||||
color_ids = special_color ? [special_color.id] : Color.basic.select([:id]).map(&:id)
|
|
||||||
where(color_id: color_ids)
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.random_basic_per_species(species_ids)
|
def self.random_basic_per_species(species_ids)
|
||||||
random_pet_types = []
|
random_pet_types = []
|
||||||
# TODO: omg so lame :P
|
basics_by_species_id = basic.group_by(&:species_id)
|
||||||
standards = special_color_or_basic(nil).group_by(&:species_id)
|
|
||||||
species_ids.each do |species_id|
|
species_ids.each do |species_id|
|
||||||
pet_types = standards[species_id]
|
pet_types = basics_by_species_id[species_id]
|
||||||
random_pet_types << pet_types[rand(pet_types.size)] if pet_types
|
random_pet_types << pet_types[rand(pet_types.size)] if pet_types
|
||||||
end
|
end
|
||||||
random_pet_types
|
random_pet_types
|
||||||
|
|
Loading…
Reference in a new issue