Method: Ezframe::DatetimeType#value=

Defined in:
lib/ezframe/column_type.rb

#value=(v) ⇒ Object



440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
# File 'lib/ezframe/column_type.rb', line 440

def value=(v)
  if v.nil?
    default = @attribute[:default]
    if default
      @value = default
    else
      @value = nil
    end
    return
  end
  if v.is_a?(String)
    if v.strip.empty?
      @value = nil
      return
    end
    begin
      @value = DateTime.parse(v)
    rescue => e
      EzLog.warn("date format error: #{self.key}=#{v}:#{e}")
      @value = nil
    end
    return
  end
  if v.is_a?(Date) || v.is_a?(Time) || v.is_a?(DateTime)
    @value = v
  else
    EzLog.info "[WARN] illegal value for date type: #{v.inspect}"
  end
end