Class: ActiveFedora::Indexing::Descriptor
- Inherits:
-
Object
- Object
- ActiveFedora::Indexing::Descriptor
- Defined in:
- lib/active_fedora/indexing/descriptor.rb
Instance Attribute Summary collapse
-
#index_type ⇒ Object
readonly
Returns the value of attribute index_type.
Instance Method Summary collapse
- #evaluate_suffix(field_type) ⇒ Object
-
#initialize(*args) ⇒ Descriptor
constructor
A new instance of Descriptor.
- #name_and_converter(field_name, args = nil) ⇒ Object
- #type_required? ⇒ Boolean
Constructor Details
#initialize(*args) ⇒ Descriptor
Returns a new instance of Descriptor.
5 6 7 8 9 10 11 12 13 |
# File 'lib/active_fedora/indexing/descriptor.rb', line 5 def initialize(*args) if args.last.is_a? Hash opts = args.pop @converter = opts[:converter] @type_required = opts[:requires_type] end @index_type = args raise InvalidIndexDescriptor, "Invalid index type passed. It should be an array like [:string, :indexed, :stored, :multivalued]. You provided: `#{@index_type}'" unless index_type.is_a? Array end |
Instance Attribute Details
#index_type ⇒ Object (readonly)
Returns the value of attribute index_type.
4 5 6 |
# File 'lib/active_fedora/indexing/descriptor.rb', line 4 def index_type @index_type end |
Instance Method Details
#evaluate_suffix(field_type) ⇒ Object
28 29 30 |
# File 'lib/active_fedora/indexing/descriptor.rb', line 28 def evaluate_suffix(field_type) Suffix.new(index_type.first.is_a?(Proc) ? index_type.first.call(field_type) : index_type.dup) end |
#name_and_converter(field_name, args = nil) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/active_fedora/indexing/descriptor.rb', line 15 def name_and_converter(field_name, args = nil) args ||= {} field_type = args[:type] if type_required? raise ArgumentError, "Must provide a :type argument when index_type is `#{self}' for #{field_name}" unless field_type end [field_name.to_s + suffix(field_type), converter(field_type)] end |
#type_required? ⇒ Boolean
24 25 26 |
# File 'lib/active_fedora/indexing/descriptor.rb', line 24 def type_required? @type_required end |