Class: Cocina::Models::Validators::MarcDateValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/cocina/models/validators/marc_date_validator.rb

Overview

Validates MARC date values.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(date) ⇒ MarcDateValidator

Returns a new instance of MarcDateValidator.



12
13
14
# File 'lib/cocina/models/validators/marc_date_validator.rb', line 12

def initialize(date)
  @date = date
end

Class Method Details

.validate(date) ⇒ Object



8
9
10
# File 'lib/cocina/models/validators/marc_date_validator.rb', line 8

def self.validate(date)
  new(date).validate
end

Instance Method Details

#validateObject

MARC date formats:

YYYY     — 4 chars; digits may be replaced by 'u' (uncertain) or '|' (no attempt to code)
YYMMDD   — 6 chars; digits or 'u'
YYYYMMDD — 8 chars; digits or 'u'


20
21
22
23
24
# File 'lib/cocina/models/validators/marc_date_validator.rb', line 20

def validate # rubocop:disable Naming/PredicateMethod
  /\A[0-9u|]{4}\z/.match?(@date) ||
    /\A[0-9u]{6}\z/.match?(@date) ||
    /\A[0-9u]{8}\z/.match?(@date)
end