Sha256: 34e262870dcb2ed40c57cd6641329d128053e9e32f351a1650d641f85ec582e0

Contents?: true

Size: 607 Bytes

Versions: 21

Compression:

Stored size: 607 Bytes

Contents

module Spotlight
  ##
  # Detect which Spotlight::Resource subclasses can provide indexing routines for
  # a given resource
  class ResourceProvider
    class <<self
      ##
      # @return [Class] the class that can best provide indexing for the resource
      def for_resource(resource)
        providers_for_resource(resource).first
      end

      private

      def providers
        Spotlight::Engine.config.resource_providers
      end

      def providers_for_resource(resource)
        providers.select { |provider| provider.can_provide? resource }.sort_by(&:weight)
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
blacklight-spotlight-0.15.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.14.2 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.14.1 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.14.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.13.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.12.1 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.12.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.11.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.10.3 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.10.2 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.10.1 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.10.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.9.2 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.9.1 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.9.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.8.2 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.8.1 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.8.0 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.7.2 app/models/spotlight/resource_provider.rb
blacklight-spotlight-0.7.1 app/models/spotlight/resource_provider.rb