Class: Nuva::Queries::VaccinesByDiseaseQuery

Inherits:
Query
  • Object
show all
Defined in:
lib/nuva/queries.rb

Instance Method Summary collapse

Methods inherited from Query

#inspect

Constructor Details

#initialize(repositories) ⇒ VaccinesByDiseaseQuery

Returns a new instance of VaccinesByDiseaseQuery.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/nuva/queries.rb', line 52

def initialize(repositories)
  hash = Hash.new { |h, k| h[k] = [] }
  @vaccines_by_disease_id =
    repositories[:valences]
      .all
      .reduce(hash) do |acc, valence|
        valence.disease_ids.each do |disease_id|
          valence.vaccine_ids.each do |vaccine_id|
            acc[disease_id] << repositories[:vaccines].find(vaccine_id)
          end
        end
        acc
      end
end

Instance Method Details

#call(disease) ⇒ Object



67
68
69
# File 'lib/nuva/queries.rb', line 67

def call(disease)
  @vaccines_by_disease_id[disease.id].uniq(&:id)
end