Module: BlacklightAdvancedSearch
- Defined in:
- lib/blacklight_advanced_search.rb,
lib/blacklight_advanced_search/engine.rb,
lib/blacklight_advanced_search/version.rb,
lib/blacklight_advanced_search/advanced_query_parser.rb,
lib/generators/blacklight_advanced_search/assets_generator.rb
Defined Under Namespace
Modules: CatalogHelperOverride, Controller, FilterParser, ParseBasicQ, ParsingNestingParser, RenderConstraintsOverride Classes: AdvancedController, AssetsGenerator, Engine, QueryParser
Constant Summary collapse
- VERSION =
self.version
Class Method Summary collapse
-
.deep_merge!(source_hash, new_hash) ⇒ Object
Utility method used in our solr search logic.
- .version ⇒ Object
Class Method Details
.deep_merge!(source_hash, new_hash) ⇒ Object
Utility method used in our solr search logic. Merges new_hash into source_hash, but will recursively merge nested arrays and hashes too; also will NOT merge nil or blank values from new_hash into source_hash, nil or blank values in new_hash will not overwrite values in source_hash.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/blacklight_advanced_search.rb', line 19 def self.deep_merge!(source_hash, new_hash) source_hash.merge!(new_hash) do |key, old, new| if new.respond_to?(:blank) && new.blank? old elsif (old.kind_of?(Hash) and new.kind_of?(Hash)) deep_merge!(old, new) elsif (old.kind_of?(Array) and new.kind_of?(Array)) old.concat(new).uniq elsif new.nil? # Allowing nil values to over-write on merge messes things up. # don't set a nil value if you really want to force blank, set # empty string. old else new end end end |
.version ⇒ Object
3 4 5 |
# File 'lib/blacklight_advanced_search/version.rb', line 3 def self.version @version ||= File.read(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).chomp end |