Module: Blacklight::Configuration::Fields
- Extended by:
- ActiveSupport::Concern
- Included in:
- Blacklight::Configuration
- Defined in:
- lib/blacklight/configuration/fields.rb
Overview
This mixin provides Blacklight::Configuration with generic solr fields configuration
Instance Method Summary collapse
-
#add_blacklight_field(config_key, *args, &block) ⇒ Object
Add a solr field configuration to the given configuration key.
Instance Method Details
#add_blacklight_field(config_key, field_key) ⇒ Object #add_blacklight_field(config_key) ⇒ Object #add_blacklight_field(config_key, options) ⇒ Object #add_blacklight_field(config_key, field) ⇒ Object #add_blacklight_field(config_key, fields) ⇒ Object
Add a solr field configuration to the given configuration key
The recommended and strongly encouraged format is a field name, configuration pair, e.g.:
add_blacklight_field :index_field, 'format', :label => 'Format'
Alternative formats include:
-
a field name and block format:
-
a plain block:
-
a configuration hash:
-
a Field instance:
-
an array of hashes:
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/blacklight/configuration/fields.rb', line 84 def add_blacklight_field config_key, *args, &block field_config = case args.first when String field_config_from_key_and_hash(config_key, *args) when Symbol args[0] = args[0].to_s field_config_from_key_and_hash(config_key, *args) when Array field_config_from_array(config_key, *args, &block) return # we've iterated over the array above. else field_config_from_field_or_hash(config_key, *args) end if (field_config.field || field_config.key).to_s =~ /\*/ field_config.match = Regexp.new("^#{(field_config.field || field_config.key).to_s.gsub('*', '.+')}$") end # look up any dynamic fields if field_config.match handle_matching_fields(config_key, field_config, &block) return end if block_given? yield field_config end field_config.normalize!(self) field_config.validate! raise "A #{config_key} with the key #{field_config.key} already exists." if self[config_key.pluralize][field_config.key].present? self[config_key.pluralize][field_config.key] = field_config end |