lib/greenwich/conversion.rb in greenwich-1.0.0 vs lib/greenwich/conversion.rb in greenwich-2.0.0

- old
+ new

@@ -3,10 +3,11 @@ extend ActiveSupport::Concern module ClassMethods def time_with_time_zone(utc_time_field, options = {}) time_field = utc_time_field.to_s.gsub /_utc$/, '' + date_field = time_field.gsub(/_at\Z/, '_on') time_zone_field = options[:time_zone] || "#{time_field}_time_zone" class_eval do columns_hash[time_field] = ActiveRecord::ConnectionAdapters::Column.new(time_field, nil, "datetime") end @@ -31,9 +32,15 @@ time = ActiveSupport::TimeWithZone.new(nil, time_zone, time) if time && time_zone greenwich_time_fields_converted["#{time_field}_utc"] = true unless time_zone.nil? write_attribute(utc_time_field, time) + end + + define_method date_field do + return nil unless send(:"#{time_field}").respond_to? :to_date + + send(:"#{time_field}").to_date end time_zone time_zone_field.to_sym, :for => utc_time_field.to_sym end