Class: Solrizer::Extractor

Inherits:
Object
  • Object
show all
Defined in:
lib/solrizer/extractor.rb

Overview

Provides utilities for extracting solr fields from a variety of objects and/or creating solr documents from a given object Note: These utilities are optional. You can implement .to_solr directly on your classes if you want to bypass using Extractors.

Each of the Solrizer implementations (ie. solrizer-fedora) provides its own Extractor module that extends the behaviors of Solrizer::Extractor with methods specific to that implementation (ie. extract_tag, extract_rels_ext, xml_to_solr, html_to_solr).

By convention, the solrizer implementations will mix their own Extractors’ behaviors into this class when you load them into an application.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.format_node_value(values) ⇒ String

Strips the majority of whitespace from the values array and then joins them with a single blank delimitter Returns an empty string if values argument is nil

Parameters:

  • values (Array)

    Array of strings representing the values to be formatted

Returns:

  • (String)


35
36
37
38
39
40
41
# File 'lib/solrizer/extractor.rb', line 35

def format_node_value values
  if values.nil?
    ""
  else
    Array(values).map{|val| val.gsub(/\s+/,' ').strip}.join(" ")
  end
end

.insert_solr_field_value(solr_doc, field_name, field_value) ⇒ Object

Insert field_value for field_name into solr_doc Handles inserting new values into a Hash while ensuring that you don’t destroy or overwrite any existing values in the hash. Ensures that field values are always appended to arrays within the values hash. Also ensures that values are run through format_node_value

Parameters:

  • solr_doc (Hash)
  • field_name (String)
  • field_value (String)


20
21
22
23
24
25
26
27
28
# File 'lib/solrizer/extractor.rb', line 20

def insert_solr_field_value(solr_doc, field_name, field_value)
  formatted_value = format_node_value(field_value)
  if solr_doc[field_name]
    solr_doc[field_name] = Array(solr_doc[field_name]) << formatted_value
  else
    solr_doc[field_name] = formatted_value
  end
  return solr_doc
end

Instance Method Details

#extract_hash(input_hash, solr_hash = Hash.new) ⇒ Hash

Deprecated. merges input_hash into solr_hash

Parameters:

  • input_hash (Hash)

    the input hash of values

  • solr_hash (Hash) (defaults to: Hash.new)

    the solr values hash to add the values into

Returns:

  • (Hash)

    the populated Solr values hash



62
63
64
65
# File 'lib/solrizer/extractor.rb', line 62

def extract_hash( input_hash, solr_hash=Hash.new )   
  warn "[DEPRECATION] `extract_hash` is deprecated.  Just pass values directly into your solr values hash" 
  return solr_hash.merge!(input_hash)
end

#format_node_value(values) ⇒ Object

Alias for Solrizer::Extractor#format_node_value



52
53
54
# File 'lib/solrizer/extractor.rb', line 52

def format_node_value values
  Solrizer::Extractor.format_node_value(values)
end

#insert_solr_field_value(solr_doc, field_name, field_value) ⇒ Object

Alias for Solrizer::Extractor#insert_solr_field_value



47
48
49
# File 'lib/solrizer/extractor.rb', line 47

def insert_solr_field_value(solr_doc, field_name, field_value)
  Solrizer::Extractor.insert_solr_field_value(solr_doc, field_name, field_value)
end