Module: Stanford::Mods::OriginInfo
- Included in:
- Record
- Defined in:
- lib/stanford-mods/concerns/origin_info.rb
Instance Method Summary collapse
-
#imprint_display_str ⇒ String
Single String containing imprint information for display.
-
#imprints ⇒ Array<Stanford::Mods::Imprint>
Array of imprint objects.
- #place ⇒ Object
-
#pub_year_display_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ Object
return a single string intended for display of pub year (or year range).
-
#pub_year_int(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ Integer
return pub year as an Integer prefer dateIssued (any) before dateCreated (any) before dateCaptured (any) look for a keyDate and use it if there is one; otherwise pick earliest date.
-
#pub_year_sort_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ String
deprecated
Deprecated.
use pub_year_int
Instance Method Details
#imprint_display_str ⇒ String
Returns single String containing imprint information for display.
71 72 73 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 71 def imprint_display_str imprints.map(&:display_str).reject(&:empty?).join('; ') end |
#imprints ⇒ Array<Stanford::Mods::Imprint>
Returns array of imprint objects.
62 63 64 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 62 def imprints origin_info.map { |el| Stanford::Mods::Imprint.new(el) } end |
#place ⇒ Object
66 67 68 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 66 def place term_values([:origin_info, :place, :placeTerm]) end |
#pub_year_display_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ Object
return a single string intended for display of pub year (or year range)
56 57 58 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 56 def pub_year_display_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) earliest_preferred_date(fields: fields, ignore_approximate: ignore_approximate)&.decoded_value(allowed_precisions: [:year, :decade, :century], ignore_unparseable: true, display_original_text: false) end |
#pub_year_int(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ Integer
for sorting: 5 BCE => -5; 666 BCE => -666
return pub year as an Integer prefer dateIssued (any) before dateCreated (any) before dateCaptured (any)
look for a keyDate and use it if there is one; otherwise pick earliest date
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 19 def pub_year_int(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) date = earliest_preferred_date(fields: fields, ignore_approximate: ignore_approximate) return unless date if date.is_a? Stanford::Mods::Imprint::DateRange date = date.start || date.stop end edtf_date = date.date # Protect against cases in which Date.edtf returns nil (e.g., 1uuu) return unless edtf_date if edtf_date.is_a?(EDTF::Interval) edtf_date.from.year else edtf_date.year end end |
#pub_year_sort_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) ⇒ String
use pub_year_int
for string sorting 5 BCE = -5 => -995; 6 BCE => -994, so 6 BCE sorts before 5 BCE
return a single string intended for lexical sorting for pub date prefer dateIssued (any) before dateCreated (any) before dateCaptured (any)
look for a keyDate and use it if there is one; otherwise pick earliest date
47 48 49 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 47 def pub_year_sort_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) earliest_preferred_date(fields: fields, ignore_approximate: ignore_approximate)&.sort_key end |