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

Instance Method Details

#access_contactsArray<Description::AccessContact>

All access contact metadata

Returns:



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_dataArray<DisplayData>

Display data for all access metadata except contact emails

Returns:



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

#accessesArray<Description::Access>

All access metadata except contact emails and URLs

Returns:



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_dataArray<DisplayData>

Display data for all access contact email metadata

Returns:



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

Display data for the copyright statement. Exhibits and EarthWorks handle copyright like descriptive metadata.

Returns:



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_dataObject



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

#urlsArray<Description::Url>

All access URL metadata

Returns:



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_dataArray<CocinaDisplay::DisplayData>

Display data for the use and reproduction statement. Exhibits and EarthWorks handle useAndReproductionStatement like descriptive metadata.

Returns:



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