Class: Krikri::Enrichments::SplitProvidedLabelAtDelimiter

Inherits:
Object
  • Object
show all
Includes:
Audumbla::FieldEnrichment
Defined in:
lib/krikri/enrichments/split_provided_label_at_delimiter.rb

Overview

Splits a Resource into multiple resources of its own class by a given delimiter in its ‘#providedLabel`. The full original resource is retained with the first value from the split label.

Examples:

splitter = SplitProvidedLabelAtDelimiter.new
concept = DPLA::MAP::Concept.new
concept.providedLabel = 'abc; 123'
concept.exactMatch = RDF::URI('http://example.org/alphabet')

results = splitter.enrich_value(concept)

results.map(&:providedLabel)
# => [['abc'], ['123']]

results.map(&:exactMatch)
# => [[#<ActiveTriple::Resource:...>], []]

See Also:

  • Audumbla::FieldEnrichment

Instance Method Summary collapse

Constructor Details

#initialize(delimiter = ';') ⇒ SplitProvidedLabelAtDelimiter

Returns a new instance of SplitProvidedLabelAtDelimiter.

Parameters:

  • delimiter (String) (defaults to: ';')

    a substring on which to split ‘#providedLabel`



27
28
29
# File 'lib/krikri/enrichments/split_provided_label_at_delimiter.rb', line 27

def initialize(delimiter = ';')
  @delimiter = delimiter
end

Instance Method Details

#enrich_value(value) ⇒ Object

Parameters:

  • value (Object)

    the value to split

See Also:

  • Audumbla::FieldEnrichment


34
35
36
37
38
39
# File 'lib/krikri/enrichments/split_provided_label_at_delimiter.rb', line 34

def enrich_value(value)
  return value unless value.is_a?(ActiveTriples::Resource) &&
                      value.respond_to?(:providedLabel)

  construct_results(value)
end