У меня есть множество отдельных животных и множество соответствующих видов. Я хочу добавить более высокую оценку кошек и собак в мой массив соответствующих видов. Массив отдельных животных может не иметь запрошенных видов, и в этом случае kind_count возвращает {}
.
species_count
принимает множество животных и группирует их по видам. Пример:
animals = ['chihuaha', 'german_shepherd', 'golden_retriever', 'tabby cat', 'siamese cat'}
species_count(animals, DOG) = { species: 'dog', count: 3 }
species_count(animals, CAT) = { species: 'cat', count: 3 }
species_count(animals, MOUSE) = {}
Я думаю, что ниже можно улучшить. У Руби есть все виды магических методов, которые меня удивляют.
dogs = species_count(animals, DOG)
dog_count = dogs.fetch(:count, 0)
cats = species_count(animals, CAT)
cat_count = cats.fetch(:count, 0)
if dog_count >= cat_count && dog_count >= 3
relevant_species << dogs
elsif cat_count >= 3
relevant_species << cats
end