Class: Blacklight::Configuration

Inherits:
OpenStructWithHashAccess show all
Includes:
Fields
Defined in:
lib/blacklight/configuration.rb,
lib/blacklight/configuration/fields.rb

Overview

Blacklight::Configuration holds the configuration for a Blacklight::Controller, including fields to display, facets to show, sort options, and search fields.

Defined Under Namespace

Modules: Fields Classes: FacetField, SearchField, SolrField, SortField

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods included from Fields

#add_solr_field, #field_config_from_array, #field_config_from_field_or_hash, #field_config_from_key_and_hash, #hash_arg_to_config

Methods inherited from OpenStructWithHashAccess

#[], #[]=, #to_h

Constructor Details

- (Configuration) initialize(*args) {|_self| ... }

A new instance of Configuration

Yields:

  • (_self)

Yield Parameters:



49
50
51
52
53
54
# File 'lib/blacklight/configuration.rb', line 49

def initialize(*args)
  super(*args)
  initialize_default_values!
  yield(self) if block_given?
  self
end

Class Method Details

+ (Object) default_values



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

def default_values
  @default_values ||= begin
    unique_key = ((SolrDocument.unique_key if defined?(SolrDocument)) || 'id')

    {
    :solr_path => 'select',
    :qt => 'search',
    :default_solr_params => {},
    :document_solr_request_handler => nil,
    :default_document_solr_params => {},
    :show => OpenStructWithHashAccess.new(:html_title => unique_key, :heading => unique_key),
    :index => OpenStructWithHashAccess.new(:show_link => unique_key),
    :spell_max => 5,
    :max_per_page => 100,
    :per_page => [10,20,50,100],
    :document_index_view_types => ['list'],
    :add_facet_fields_to_solr_request => false,
    :add_field_configuration_to_solr_request => false
    }
  end
end

Instance Method Details

- (Object) add_facet_fields_to_solr_request!

Add any configured facet fields to the default solr parameters hash



85
86
87
# File 'lib/blacklight/configuration.rb', line 85

def add_facet_fields_to_solr_request!
  self.add_facet_fields_to_solr_request = true
end

- (Object) add_field_configuration_to_solr_request!

Add any configured facet fields to the default solr parameters hash



90
91
92
# File 'lib/blacklight/configuration.rb', line 90

def add_field_configuration_to_solr_request!
  self.add_field_configuration_to_solr_request = true
end

- (Object) configure {|_self| ... }

DSL helper

Yields:

  • (_self)

Yield Parameters:



111
112
113
114
# File 'lib/blacklight/configuration.rb', line 111

def configure
  yield self if block_given?
  self
end

- (Object) deep_copy Also known as: inheritable_copy

Provide a 'deep copy' of Blacklight::Configuration that can be modifyed without affecting the original Blacklight::Configuration instance.



104
105
106
# File 'lib/blacklight/configuration.rb', line 104

def deep_copy
  Marshal.load(Marshal.dump(self))
end

- (Object) default_search_field

Returns default search field, used for simpler display in history, etc. if not set, defaults to first defined search field



66
67
68
69
70
71
72
# File 'lib/blacklight/configuration.rb', line 66

def default_search_field
  field = nil
  field ||= search_fields.values.select { |field| field.default == true }.first
  field ||= search_fields.values.first

  field
end

- (Object) default_sort_field

Returns default sort field, used for simpler display in history, etc. if not set, defaults to first defined sort field



76
77
78
79
80
81
82
# File 'lib/blacklight/configuration.rb', line 76

def default_sort_field
  field = nil
  field ||= sort_fields.values.select { |field| field.default == true }.first
  field ||= sort_fields.values.first

  field
end

- (Object) facet_fields_to_add_to_solr



94
95
96
97
98
# File 'lib/blacklight/configuration.rb', line 94

def facet_fields_to_add_to_solr
  return facet_fields.reject { |k,v| v[:query] || v[:pivot] }.map { |k,v| v.field } if self.add_facet_fields_to_solr_request

  []
end

- (Object) initialize_default_values!

Initialize default values from the class attribute



58
59
60
61
62
# File 'lib/blacklight/configuration.rb', line 58

def initialize_default_values!
  Marshal.load(Marshal.dump(self.class.default_values)).each do |k, v|
    self[k] ||=  v
  end
end