Sha256: a2b5104ffd4e9ac2dce209c2bfa9b806d17c25c7d266cb0ff48a6421c3475e65

Contents?: true

Size: 1.46 KB

Versions: 80

Compression:

Stored size: 1.46 KB

Contents

module Cul::Hydra::Solrizer
# This class uses a yaml map to translate field values for solr
class ValueMapper
  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
      # Default to using the config file within the gem
      if !File.exist?(config_path.to_s)
        config_path = File.join(File.dirname(__FILE__), "..", "..", "..", "config", "solr_value_maps.yml")
      end
    end
    #logger.info("ValueMapper: loading field value maps from #{File.expand_path(config_path)}")
    YAML::load(File.open(config_path))
  end

  def self.default_value_maps
    @@value_maps ||= self.load_value_maps
  end
  # Instance methods

  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

  def maps_field?(field_key)
    @mapped_fields.has_key? field_key
  end

  def map_field(field_key, map_key)
    @mapped_fields[field_key] = map_key
  end

  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
end
end

Version data entries

80 entries across 80 versions & 2 rubygems

Version Path
cul_hydra-1.11.2 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.11.1 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.11.0 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.10.0 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.6 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.5 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.4 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.3 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.2 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.1 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.9.0 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.8.0 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.6 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.5 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.4 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.3 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.2 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.1 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.7.0 lib/cul_hydra/solrizer/value_mapper.rb
cul_hydra-1.6.4 lib/cul_hydra/solrizer/value_mapper.rb