Sha256: fa3f97f141e7c4e64065da2d6fbb6f0f5079fdd4b963bff0b5759a4424c56f2d
Contents?: true
Size: 1023 Bytes
Versions: 43
Compression:
Stored size: 1023 Bytes
Contents
require 'forwardable' module ActiveFedora::Indexing # This is a description of how properties should map to indexing strategies # e.g. 'creator_name' => <IndexObject behaviors=[:stored_searchable, :facetable]> class Map extend Forwardable def_delegators :@hash, :[], :[]=, :each, :keys def initialize(hash = {}) @hash = hash end def dup self.class.new(@hash.deep_dup) end # this enables a cleaner API for solr integration class IndexObject attr_accessor :data_type, :behaviors, :term attr_reader :key def initialize(name, &_block) @behaviors = [] @data_type = :string @key = name yield self if block_given? end def as(*args) @term = args.last.is_a?(Hash) ? args.pop : {} @behaviors = args end def type(sym) @data_type = sym end def dup self.class.new(@key) do |idx| idx.behaviors = @behaviors.dup end end end end end
Version data entries
43 entries across 43 versions & 1 rubygems