Sha256: a6d5727549d9ce510791d8a2e27613db075ed2e4b8b95fdeac1ece25c6baed8b
Contents?: true
Size: 816 Bytes
Versions: 1
Compression:
Stored size: 816 Bytes
Contents
module DateFlag VERSION = '0.0.1' def date_flag(field, options = { }) action = (options[:action] ? options[:action] : field.to_s.sub(/_at$/, '')).to_sym query = (options[:query] and options[:query].to_sym or action) define_method(:"#{action}=") do |value| unless (read_attribute(field)) case (value) when nil, false, '', '0': write_attribute(field, nil) when DateTime, Date, Time: write_attribute(field, value) else write_attribute(field, Time.now.utc) end end end define_method(:"#{action}?") do !!(read_attribute(field)) end define_method(:"#{action}!") do unless (read_attribute(field)) write_attribute(field, Time.now.utc) save! end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
theworkinggroup-date_flag-0.0.1 | lib/date_flag.rb |