lib/solrizer/extractor.rb in solrizer-3.2.0 vs lib/solrizer/extractor.rb in solrizer-3.3.0

- old
+ new

@@ -7,37 +7,38 @@ # 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 Extractor - # 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 - # @param [Hash] solr_doc - # @param [String] field_name - # @param [String] field_value - def self.insert_solr_field_value(solr_doc, field_name, field_value) - formatted_value = self.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 + class << self + # 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 + # @param [Hash] solr_doc + # @param [String] field_name + # @param [String] field_value + 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 - return solr_doc - end - - # 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 - # - # @param [Array] values Array of strings representing the values to be formatted - # @return [String] - def self.format_node_value values - if values.nil? - return "" - else - values = [values] unless values.respond_to? :map - return values.map{|val| val.gsub(/\s+/,' ').strip}.join(" ") + + # 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 + # + # @param [Array] values Array of strings representing the values to be formatted + # @return [String] + def format_node_value values + if values.nil? + "" + else + Array(values).map{|val| val.gsub(/\s+/,' ').strip}.join(" ") + end end end # Instance Methods