Sha256: cfa3c9bb3cdea1d506bd9d3a526abb2e35d30d6be5a41b9621648c27cbb181aa

Contents?: true

Size: 682 Bytes

Versions: 4

Compression:

Stored size: 682 Bytes

Contents

# frozen_string_literal: true

module Nuva
  class Repository
    attr_reader :all

    def initialize(data)
      @count = data.count
      @all = data
      @index = {}
      data.each do |item|
        @index[item.code] = item
        @index[item.id.to_sym] = item
        @index[item.id.to_s] = item
      end
    end

    def find(id_or_code)
      @index[id_or_code]
    end

    def by_ids(ids)
      ids.map { |x| find x }.compact
    end

    def inspect
      "#<#{self.class.name} count=#{@count}>"
    end
  end
end

require_relative "repositories/disease_repository"
require_relative "repositories/vaccine_repository"
require_relative "repositories/valence_repository"

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
nuva-0.5.1 lib/nuva/repository.rb
nuva-0.4.1 lib/nuva/repository.rb
nuva-0.4.0 lib/nuva/repository.rb
nuva-0.3.1 lib/nuva/repository.rb