Method: Mods::Date#precision

Defined in:
lib/mods/date.rb

#precisionObject



456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
# File 'lib/mods/date.rb', line 456

def precision
  return :unknown unless date_range || date

  if date_range.is_a? EDTF::Century
    :century
  elsif date_range.is_a? EDTF::Decade
    :decade
  elsif date.is_a? EDTF::Interval
    date_range.precision
  else
    case date.precision
    when :month
      date.unspecified.unspecified?(:month) ? :year : :month
    when :day
      d = date.unspecified.unspecified?(:day) ? :month : :day
      d = date.unspecified.unspecified?(:month) ? :year : d
      d
    else
      date.precision
    end
  end
end