Module: TimeWrapper::TimeAttribute::ClassMethods

Defined in:
lib/time_wrapper/time_attribute.rb

Instance Method Summary collapse

Instance Method Details

#get_time_wrapper_attribute(attribute) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/time_wrapper/time_attribute.rb', line 33

def get_time_wrapper_attribute(attribute)
  if instance_variable_get("@#{attribute}_time_wrapper_validation")
    instance_variable_get("@#{attribute}_wrong_value")
  else
    Time.current.change({hour: self[attribute].hour, min: self[attribute].min}) if self[attribute]
  end
end

#set_time_wrapper_attribute(attribute, value) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/time_wrapper/time_attribute.rb', line 20

def set_time_wrapper_attribute(attribute,value)
  begin
    if value.kind_of? Time
      self[attribute] = value.utc
    else
      self[attribute] = Time.zone.parse(value)
    end
  rescue ArgumentError, NoMethodError
    instance_variable_set("@#{attribute}_time_wrapper_validation", true)
    instance_variable_set("@#{attribute}_wrong_value", value)
  end
end

#validate_time_wrapper_attribute(attribute) ⇒ Object



41
42
43
# File 'lib/time_wrapper/time_attribute.rb', line 41

def validate_time_wrapper_attribute(attribute)
  errors.add(attribute,:wrong_time_format) unless send(attribute).blank? if instance_variable_get("@#{attribute}_time_wrapper_validation")
end