Changeset 52
- Timestamp:
- 11/27/07 12:24:50 (12 months ago)
- Location:
- trunk/vendor/plugins/tztime
- Files:
-
- 2 modified
-
lib/tz_time_helpers/active_record_methods.rb (modified) (1 diff)
-
test/active_record_methods_test.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/vendor/plugins/tztime/lib/tz_time_helpers/active_record_methods.rb
r51 r52 19 19 end 20 20 end 21 define_method "#{attribute}=" do |local_time| 22 fixed = (local_time.acts_like?(:time) || local_time.acts_like?(:date)) ? TzTime.at(local_time) : nil 23 write_attribute(attribute, fixed) 24 end 21 25 end 22 23 protected24 def fix_timezone25 tz_time_attributes.each do |attribute|26 time = read_attribute(attribute)27 fixed = (time.acts_like?(:time) || time.acts_like?(:date)) ? TzTime.at(time) : nil28 write_attribute(attribute, fixed)29 end30 end31 26 end 32 before_validation :fix_timezone33 27 end 34 28 end -
trunk/vendor/plugins/tztime/test/active_record_methods_test.rb
r51 r52 28 28 29 29 def test_should_access_utc_time_as_local_with_getter_method 30 @record. due_on = Time.utc(2006, 1, 1)30 @record.instance_variable_set(:@due_on, Time.utc(2006, 1, 1)) 31 31 assert_equal @record.due_on, TzTime.local(2005, 12, 31, 18) 32 32 end … … 34 34 def test_should_fix_timezones 35 35 @record.due_on = Time.utc(2006, 1, 1) 36 @record.send :fix_timezone37 36 assert_equal @record.due_on, TzTime.local(2006, 1, 1) 37 end 38 39 def test_should_only_fix_timezones_that_have_been_written 40 @record.instance_variable_set(:@due_on, Time.utc(2006, 1, 1)) 41 assert_equal TzTime.utc(2006, 1, 1), @record.due_on 38 42 end 39 43 end
