Class: ActiveFedora::Indexing::Suffix
- Inherits:
-
Object
- Object
- ActiveFedora::Indexing::Suffix
- Defined in:
- lib/active_fedora/indexing/suffix.rb
Class Method Summary collapse
Instance Method Summary collapse
- #config ⇒ Object
- #data_type ⇒ Object
- #has_field?(f) ⇒ Boolean
- #indexed? ⇒ Boolean
-
#initialize(*fields) ⇒ Suffix
constructor
A new instance of Suffix.
- #multivalued? ⇒ Boolean
- #stored? ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(*fields) ⇒ Suffix
Returns a new instance of Suffix.
6 7 8 |
# File 'lib/active_fedora/indexing/suffix.rb', line 6 def initialize(*fields) @fields = fields.flatten end |
Class Method Details
.config ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/active_fedora/indexing/suffix.rb', line 47 def self.config @config ||= OpenStruct.new fields: [:type, :stored, :indexed, :multivalued], suffix_delimiter: '_', type_suffix: (lambda do |fields| type = fields.first case type when :string, :symbol # TODO: `:symbol' usage ought to be deprecated 's' when :text 't' when :text_en 'te' when :date, :time 'dt' when :integer 'i' when :boolean 'b' when :long 'lt' else raise Solrizer::InvalidIndexDescriptor, "Invalid datatype `#{type.inspect}'. Must be one of: :date, :time, :text, :text_en, :string, :symbol, :integer, :boolean" end end), stored_suffix: 's', indexed_suffix: 'i', multivalued_suffix: 'm' end |
Instance Method Details
#config ⇒ Object
76 77 78 |
# File 'lib/active_fedora/indexing/suffix.rb', line 76 def config @config ||= self.class.config.dup end |
#data_type ⇒ Object
26 27 28 |
# File 'lib/active_fedora/indexing/suffix.rb', line 26 def data_type @fields.first end |
#has_field?(f) ⇒ Boolean
22 23 24 |
# File 'lib/active_fedora/indexing/suffix.rb', line 22 def has_field?(f) (f.to_sym == :type) || @fields.include?(f.to_sym) end |
#indexed? ⇒ Boolean
18 19 20 |
# File 'lib/active_fedora/indexing/suffix.rb', line 18 def indexed? has_field? :indexed end |
#multivalued? ⇒ Boolean
10 11 12 |
# File 'lib/active_fedora/indexing/suffix.rb', line 10 def multivalued? has_field? :multivalued end |
#stored? ⇒ Boolean
14 15 16 |
# File 'lib/active_fedora/indexing/suffix.rb', line 14 def stored? has_field? :stored end |
#to_s ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/active_fedora/indexing/suffix.rb', line 30 def to_s raise Solrizer::InvalidIndexDescriptor, "Missing datatype for #{@fields}" unless data_type field_suffix = [config.suffix_delimiter] config.fields.select { |f| has_field? f }.each do |f| key = :"#{f}_suffix" field_suffix << if config.send(key).is_a? Proc config.send(key).call(@fields) else config.send(key) end end field_suffix.join end |