Class: CocinaDisplay::JsonBackedRecord
- Inherits:
-
Object
- Object
- CocinaDisplay::JsonBackedRecord
- Defined in:
- lib/cocina_display/json_backed_record.rb
Overview
Superclass for metadata records backed by a Cocina JSON document.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#cocina_doc ⇒ Hash
readonly
The parsed Cocina document.
Instance Method Summary collapse
-
#initialize(cocina_doc) ⇒ JsonBackedRecord
constructor
Initialize a record with a Cocina document hash.
-
#path(path_expression) ⇒ Enumerator
Evaluate a JSONPath expression against the Cocina document.
-
#text ⇒ String
Flattened, normalized aggregation of all node texts in the Cocina document.
Constructor Details
#initialize(cocina_doc) ⇒ JsonBackedRecord
Initialize a record with a Cocina document hash.
15 16 17 |
# File 'lib/cocina_display/json_backed_record.rb', line 15 def initialize(cocina_doc) @cocina_doc = cocina_doc end |
Instance Attribute Details
#cocina_doc ⇒ Hash (readonly)
The parsed Cocina document.
8 9 10 |
# File 'lib/cocina_display/json_backed_record.rb', line 8 def cocina_doc @cocina_doc end |
Instance Method Details
#path(path_expression) ⇒ Enumerator
Evaluate a JSONPath expression against the Cocina document.
27 28 29 |
# File 'lib/cocina_display/json_backed_record.rb', line 27 def path(path_expression) Janeway.enum_for(path_expression, cocina_doc) end |
#text ⇒ String
Note:
Used for ‘all search’ fields in indexing.
Flattened, normalized aggregation of all node texts in the Cocina document.
34 35 36 |
# File 'lib/cocina_display/json_backed_record.rb', line 34 def text node_texts.compact.join(" ").gsub(/\s+/, " ").strip end |