Sha256: 7dad736fe142823051663f74df794a1cedf02fafff3bf7c70a12d92be5c4b45a
Contents?: true
Size: 783 Bytes
Versions: 7
Compression:
Stored size: 783 Bytes
Contents
# frozen_string_literal: true module Valkyrie::Persistence::Solr # Composite object to make multiple custom indexers act like a single one, so # that upstream code doesn't have to know how to iterate over indexers. # # @see https://en.wikipedia.org/wiki/Composite_pattern class CompositeIndexer attr_reader :indexers def initialize(*indexers) @indexers = indexers end def new(resource:) Instance.new(indexers, resource: resource) end class Instance attr_reader :indexers, :resource def initialize(indexers, resource:) @resource = resource @indexers = indexers.map { |i| i.new(resource: resource) } end def to_solr indexers.map(&:to_solr).inject({}, &:merge) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems