Class: Sheetah::Types::Scalars::DateStringCast

Inherits:
Object
  • Object
show all
Includes:
Cast
Defined in:
lib/sheetah/types/scalars/date_string_cast.rb

Instance Method Summary collapse

Methods included from Cast

#==

Constructor Details

#initialize(date_fmt: DATE_FMT, accept_date: true) ⇒ DateStringCast

Returns a new instance of DateStringCast.



16
17
18
19
# File 'lib/sheetah/types/scalars/date_string_cast.rb', line 16

def initialize(date_fmt: DATE_FMT, accept_date: true, **)
  @date_fmt = date_fmt
  @accept_date = accept_date
end

Instance Method Details

#call(value, _messenger) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/sheetah/types/scalars/date_string_cast.rb', line 21

def call(value, _messenger)
  case value
  when ::Date
    return value if @accept_date
  when ::String
    date = parse_date_string(value)
    return date if date
  end

  throw :failure, Messaging::Messages::MustBeDate.new(code_data: { format: @date_fmt })
end