Module: CocinaDisplay::Concerns::Accesses
- Included in:
- CocinaDisplay::CocinaRecord, RelatedResource
- Defined in:
- lib/cocina_display/concerns/accesses.rb
Overview
Methods for extracting access/location information from a Cocina object.
Instance Method Summary collapse
-
#access_contacts ⇒ Array<Description::AccessContact>
All access contact metadata.
-
#access_display_data ⇒ Array<DisplayData>
Display data for all access metadata except contact emails.
-
#accesses ⇒ Array<Description::Access>
All access metadata except contact emails and URLs.
-
#contact_email_display_data ⇒ Array<DisplayData>
Display data for all access contact email metadata.
-
#copyright_display_data ⇒ Array<CocinaDisplay::DisplayData>
Display data for the copyright statement.
- #license_display_data ⇒ Object
-
#urls ⇒ Array<Description::Url>
All access URL metadata.
-
#use_and_reproduction_display_data ⇒ Array<CocinaDisplay::DisplayData>
Display data for the use and reproduction statement.
Instance Method Details
#access_contacts ⇒ Array<Description::AccessContact>
All access contact metadata
53 54 55 56 57 |
# File 'lib/cocina_display/concerns/accesses.rb', line 53 def access_contacts path("$.description.access.accessContact.*").map do |contact| CocinaDisplay::Description::AccessContact.new(contact) end end |
#access_display_data ⇒ Array<DisplayData>
Display data for all access metadata except contact emails
7 8 9 10 11 12 |
# File 'lib/cocina_display/concerns/accesses.rb', line 7 def access_display_data CocinaDisplay::DisplayData.from_objects(accesses + access_contacts.reject(&:contact_email?) + purls + urls) end |
#accesses ⇒ Array<Description::Access>
All access metadata except contact emails and URLs
43 44 45 46 47 48 49 |
# File 'lib/cocina_display/concerns/accesses.rb', line 43 def accesses @accesses ||= Enumerator::Chain.new( path("$.description.access.physicalLocation.*"), path("$.description.access.digitalLocation.*"), path("$.description.access.digitalRepository.*") ).map { |a| CocinaDisplay::Description::Access.new(a) } end |
#contact_email_display_data ⇒ Array<DisplayData>
Display data for all access contact email metadata
16 17 18 |
# File 'lib/cocina_display/concerns/accesses.rb', line 16 def contact_email_display_data CocinaDisplay::DisplayData.from_objects(access_contacts.select(&:contact_email?)) end |
#copyright_display_data ⇒ Array<CocinaDisplay::DisplayData>
Display data for the copyright statement. Exhibits and EarthWorks handle copyright like descriptive metadata.
31 32 33 34 |
# File 'lib/cocina_display/concerns/accesses.rb', line 31 def copyright_display_data CocinaDisplay::DisplayData.from_strings([copyright], label: I18n.t("cocina_display.field_label.copyright")) end |
#license_display_data ⇒ Object
36 37 38 39 |
# File 'lib/cocina_display/concerns/accesses.rb', line 36 def license_display_data CocinaDisplay::DisplayData.from_strings([license_description], label: I18n.t("cocina_display.field_label.license")) end |
#urls ⇒ Array<Description::Url>
All access URL metadata
61 62 63 64 65 |
# File 'lib/cocina_display/concerns/accesses.rb', line 61 def urls path("$.description.access.url.*").map do |url| CocinaDisplay::Description::Url.new(url) end end |
#use_and_reproduction_display_data ⇒ Array<CocinaDisplay::DisplayData>
Display data for the use and reproduction statement. Exhibits and EarthWorks handle useAndReproductionStatement like descriptive metadata.
23 24 25 26 |
# File 'lib/cocina_display/concerns/accesses.rb', line 23 def use_and_reproduction_display_data CocinaDisplay::DisplayData.from_strings([use_and_reproduction], label: I18n.t("cocina_display.field_label.use_and_reproduction")) end |