class Libis::Ingester::MetadataSearchCollector

Protected Instance Methods

get_metadata(item, term) click to toggle source
# File lib/libis/ingester/tasks/metadata_search_collector.rb, line 46
def get_metadata(item, term)
  @metadata_cache ||= {}

  @metadata_cache[term] ||= search(term)
  debug 'Metadata for item \'%s\' not found.', item.namepath unless @metadata_cache[term]

  @metadata_cache[term]
end
get_record(item) click to toggle source
# File lib/libis/ingester/tasks/metadata_search_collector.rb, line 35
def get_record(item)
  term = get_search_term(item)
  debug "search term: '#{term}'"
  return nil if term.blank?

  item.properties['metadata_search_term'] = term
  item.save!

  get_metadata(item, term)
end
get_search_term(item) click to toggle source
# File lib/libis/ingester/tasks/metadata_search_collector.rb, line 55
def get_search_term(item)
  if parameter(:match_regex)
    debug "match_regex '#{parameter :match_regex}' found. Evaluating '#{parameter :match_term}'"
    match_term = Kernel::eval parameter(:match_term)
    debug "Match term is now '#{match_term}'"
    return nil unless match_term =~ Regexp.new(parameter(:match_regex))
    debug "Match term matches match regex"
  end
  parameter(:term).blank? ? item.name : Kernel::eval(parameter(:term))
end