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.
68 69 70 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 68 def imprint_display_str imprints.map(&:display_str).reject(&:empty?).join('; ') end |
#imprints ⇒ Array<Stanford::Mods::Imprint>
Returns array of imprint objects.
59 60 61 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 59 def imprints origin_info.map { |el| Stanford::Mods::Imprint.new(el) } end |
#place ⇒ Object
63 64 65 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 63 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)
53 54 55 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 53 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 |
# 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 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
44 45 46 |
# File 'lib/stanford-mods/concerns/origin_info.rb', line 44 def pub_year_sort_str(fields = [:dateIssued, :dateCreated, :dateCaptured], ignore_approximate: false) earliest_preferred_date(fields: fields, ignore_approximate: ignore_approximate)&.sort_key end |