Module: CocinaDisplay::Concerns::Notes

Included in:
CocinaDisplay::CocinaRecord, RelatedResource
Defined in:
lib/cocina_display/concerns/notes.rb

Overview

Methods for extracting note information from Cocina.

Instance Method Summary collapse

Instance Method Details

#abstract_display_dataArray<CocinaDisplay::DisplayData>

Abstract metadata for display.

Returns:



32
33
34
# File 'lib/cocina_display/concerns/notes.rb', line 32

def abstract_display_data
  CocinaDisplay::DisplayData.from_objects(notes.select(&:abstract?))
end

#abstractsArray<String>

Text of all abstract notes.

Returns:

  • (Array<String>)


13
14
15
# File 'lib/cocina_display/concerns/notes.rb', line 13

def abstracts
  notes.select(&:abstract?).map(&:to_s).compact_blank
end

#general_note_display_dataArray<CocinaDisplay::DisplayData>

General note metadata for display.

Returns:



38
39
40
# File 'lib/cocina_display/concerns/notes.rb', line 38

def general_note_display_data
  CocinaDisplay::DisplayData.from_objects(notes.select(&:general_note?))
end

#notesArray<CocinaDisplay::Note>

Note objects associated with the cocina record.

Returns:



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

def notes
  @notes ||= path("$.description.note.*").map { |note| CocinaDisplay::Note.new(note) }
end

#preferred_citationString?

Preferred citation for the object. If there are multiple notes with this type, uses the first.

Returns:

  • (String, nil)


26
27
28
# File 'lib/cocina_display/concerns/notes.rb', line 26

def preferred_citation
  notes.find(&:preferred_citation?)&.to_s
end

#preferred_citation_display_dataArray<CocinaDisplay::DisplayData>

Preferred citation metadata for display.

Returns:



44
45
46
# File 'lib/cocina_display/concerns/notes.rb', line 44

def preferred_citation_display_data
  CocinaDisplay::DisplayData.from_objects(notes.select(&:preferred_citation?))
end

#table_of_contents_display_dataArray<CocinaDisplay::DisplayData>

Table of contents metadata for display.

Returns:



50
51
52
# File 'lib/cocina_display/concerns/notes.rb', line 50

def table_of_contents_display_data
  CocinaDisplay::DisplayData.from_objects(notes.select(&:table_of_contents?))
end

#tables_of_contentsArray<String>

Text of all table of contents notes.

Returns:

  • (Array<String>)


19
20
21
# File 'lib/cocina_display/concerns/notes.rb', line 19

def tables_of_contents
  notes.select(&:table_of_contents?).map(&:to_s).compact_blank
end