Changeset 8855
- Timestamp:
- 02/10/08 22:46:31 (7 months ago)
- Files:
-
- trunk/activerecord/CHANGELOG (modified) (1 diff)
- trunk/activerecord/lib/active_record/base.rb (modified) (1 diff)
- trunk/activerecord/test/cases/base_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/CHANGELOG
r8847 r8855 1 1 *SVN* 2 3 * Multiparameter attributes for time columns fail over to DateTime when out of range of Time [Geoff Buesing] 2 4 3 5 * Base#instantiate_time_object uses Time.zone.local() [Geoff Buesing] trunk/activerecord/lib/active_record/base.rb
r8847 r8855 2473 2473 end 2474 2474 2475 # Includes an ugly hack for Time.local instead of Time.new because the latter is reserved by Time itself.2476 2475 def instantiate_time_object(name, values) 2477 2476 if Time.zone && !self.class.skip_time_zone_conversion_for_attributes.include?(name.to_sym) 2478 2477 Time.zone.local(*values) 2479 2478 else 2480 @@default_timezone == :utc ? Time.utc (*values) : Time.local(*values)2479 @@default_timezone == :utc ? Time.utc_time(*values) : Time.local_time(*values) 2481 2480 end 2482 2481 end trunk/activerecord/test/cases/base_test.rb
r8808 r8855 924 924 assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on 925 925 end 926 927 def test_multiparameter_attributes_on_time_with_old_date 928 attributes = { 929 "written_on(1i)" => "1850", "written_on(2i)" => "6", "written_on(3i)" => "24", 930 "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00" 931 } 932 topic = Topic.find(1) 933 topic.attributes = attributes 934 # testing against to_s(:db) representation because either a Time or a DateTime might be returned, depending on platform 935 assert_equal "1850-06-24 16:24:00", topic.written_on.to_s(:db) 936 end 926 937 927 938 def test_multiparameter_attributes_on_time_with_utc