Class: CocinaDisplay::JsonBackedRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/cocina_display/json_backed_record.rb

Direct Known Subclasses

CocinaRecord, RelatedResource

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cocina_doc) ⇒ JsonBackedRecord

Initialize a CocinaRecord with a Cocina document hash.

Parameters:

  • cocina_doc (Hash)


11
12
13
# File 'lib/cocina_display/json_backed_record.rb', line 11

def initialize(cocina_doc)
  @cocina_doc = cocina_doc
end

Instance Attribute Details

#cocina_docHash (readonly)

The parsed Cocina document.

Returns:

  • (Hash)


7
8
9
# File 'lib/cocina_display/json_backed_record.rb', line 7

def cocina_doc
  @cocina_doc
end

Instance Method Details

#path(path_expression) ⇒ Enumerator

Evaluate a JSONPath expression against the Cocina document.

Examples:

Name values for contributors

record.path("$.description.contributor.*.name.*.value").search #=> ["Smith, John", "ACME Corp."]

Filtering nodes using a condition

record.path("$.description.contributor[?(@.type == 'person')].name.*.value").search #=> ["Smith, John"]

Parameters:

  • path_expression (String)

    The JSONPath expression to evaluate.

Returns:

  • (Enumerator)

    An enumerator that yields results matching the expression.

See Also:



23
24
25
# File 'lib/cocina_display/json_backed_record.rb', line 23

def path(path_expression)
  Janeway.enum_for(path_expression, cocina_doc)
end