Module: Blacklight::Configuration::Fields::ClassMethods

Defined in:
lib/blacklight/configuration/fields.rb

Instance Method Summary collapse

Instance Method Details

#define_field_access(key, options = {}) ⇒ Object

Add a configuration block for a collection of solr fields



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/blacklight/configuration/fields.rb', line 13

def define_field_access(key, options = {})
  key = key.to_s if respond_to? :to_s

  self.default_values[key.pluralize.to_sym] = ActiveSupport::OrderedHash.new

  base_class_name = options.fetch(:class, Field)

  unless self.const_defined? key.camelcase
    class_eval <<-END_EVAL, __FILE__, __LINE__ + 1
      class #{key.camelcase} < #{base_class_name}; end
    END_EVAL
  end

  class_eval <<-END_EVAL, __FILE__, __LINE__ + 1
    def add_#{key}(*args, &block)
      add_blacklight_field("#{key}", *args, &block)
    end
  END_EVAL
end