Class: Cul::Hydra::Solrizer::ValueMapper
- Inherits:
-
Object
- Object
- Cul::Hydra::Solrizer::ValueMapper
show all
- Defined in:
- lib/cul_hydra/solrizer/value_mapper.rb
Overview
This class uses a yaml map to translate field values for solr
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(value_maps = nil) ⇒ ValueMapper
23
24
25
26
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 23
def initialize(value_maps=nil)
@value_maps = (value_maps || Cul::Hydra::Solrizer::ValueMapper.default_value_maps).with_indifferent_access
@mapped_fields = {}.with_indifferent_access
end
|
Class Method Details
.default_value_maps ⇒ Object
18
19
20
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 18
def self.default_value_maps
@@value_maps ||= self.load_value_maps
end
|
.load_value_maps(config_path = nil) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 4
def self.load_value_maps(config_path=nil)
if config_path.nil?
if defined?(Rails.root) && !Rails.root.nil?
config_path = File.join(Rails.root, "config", "solr_value_maps.yml")
end
if !File.exist?(config_path.to_s)
config_path = File.join(File.dirname(__FILE__), "..", "..", "..", "config", "solr_value_maps.yml")
end
end
YAML::load(File.open(config_path))
end
|
Instance Method Details
#map_field(field_key, map_key) ⇒ Object
32
33
34
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 32
def map_field(field_key, map_key)
@mapped_fields[field_key] = map_key
end
|
#map_value(field_key, value_key) ⇒ Object
36
37
38
39
40
41
42
43
44
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 36
def map_value(field_key, value_key)
map_key = @mapped_fields[field_key]
return value_key unless @mapped_fields.has_key? field_key and @value_maps.has_key? map_key
if value_key.is_a? Array
value_key.collect{ |val| @value_maps[map_key].fetch(val, val) }
else
@value_maps[map_key].fetch(value_key, value_key)
end
end
|
#maps_field?(field_key) ⇒ Boolean
28
29
30
|
# File 'lib/cul_hydra/solrizer/value_mapper.rb', line 28
def maps_field?(field_key)
@mapped_fields.has_key? field_key
end
|