Module: GS1::Validations::DateValidation

Defined in:
lib/gs1/validations/date_validation.rb

Overview

Ensures correct date validation.

Instance Method Summary collapse

Instance Method Details

#valid_date?Boolean

Returns:

  • (Boolean)


16
17
18
19
20
21
22
23
24
# File 'lib/gs1/validations/date_validation.rb', line 16

def valid_date?
  return true if data.is_a?(::Date)

  ::Date.parse(data)

  true
rescue TypeError, ArgumentError
  false
end

#valid_format_a?(data) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/gs1/validations/date_validation.rb', line 32

def valid_format_a?(data)
  valid_date_format?(data, '%y%m%d')
end

#valid_format_b?(data) ⇒ Boolean

Read more about this date format in the GS1::Extensions::MonthBasedDate class.

Returns:

  • (Boolean)


37
38
39
# File 'lib/gs1/validations/date_validation.rb', line 37

def valid_format_b?(data)
  valid_date_format?(data, '%y%m00')
end

#valid_month_based_date?Boolean

Returns:

  • (Boolean)


26
27
28
29
30
# File 'lib/gs1/validations/date_validation.rb', line 26

def valid_month_based_date?
  return true if data.is_a?(::Date)

  valid_format_a?(data) || valid_format_b?(data)
end

#validate_date(_options = {}) ⇒ Object



8
9
10
# File 'lib/gs1/validations/date_validation.rb', line 8

def validate_date(_options = {})
  errors << 'Invalid date' unless valid_date?
end

#validate_date_month_based(_options = {}) ⇒ Object



12
13
14
# File 'lib/gs1/validations/date_validation.rb', line 12

def validate_date_month_based(_options = {})
  errors << 'Invalid date' unless valid_month_based_date?
end