Module: TimeWrapper::TimeAttribute

Extended by:
ActiveSupport::Concern
Defined in:
lib/time_wrapper/time_attribute.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#time_attribute(*options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/time_wrapper/time_attribute.rb', line 5

def time_attribute(*options)
  options.each do |attribute|
    raise TypeError.new("'#{attribute}' is not of column-type datetime") unless columns.detect{|column| column.name == attribute.to_s}.type.to_s == 'datetime'

    include ClassMethods

    define_method "#{attribute}=" do |value| set_time_wrapper_attribute(attribute,value) end
    define_method attribute do get_time_wrapper_attribute(attribute) end
    define_method "#{attribute}_time_wrapper_validation" do validate_time_wrapper_attribute(attribute) end

    validate "#{attribute}_time_wrapper_validation".to_sym
  end
end