diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 20:50:26 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 20:50:26 +0000 |
commit | c99df461f45c514d434a6f0bcb368320b71fd0c8 (patch) | |
tree | 92fb1035099cdb40281800070b4aa8ba6ecb3e19 /activerecord | |
parent | 5130fc84c602001d31454a5631ee7b354d197663 (diff) | |
download | rails-c99df461f45c514d434a6f0bcb368320b71fd0c8.tar.gz rails-c99df461f45c514d434a6f0bcb368320b71fd0c8.tar.bz2 rails-c99df461f45c514d434a6f0bcb368320b71fd0c8.zip |
Fixed that default timezones for new / initialize should uphold utc setting (closes #5709) [daniluk@yahoo.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4670 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/CHANGELOG | 2 | ||||
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 2 | ||||
-rwxr-xr-x | activerecord/test/base_test.rb | 16 |
3 files changed, 19 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 550e5adb3a..614cb2a1c0 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed that default timezones for new / initialize should uphold utc setting #5709 [daniluk@yahoo.com] + * Fix announcement of very long migration names. #5722 [blake@near-time.com] * The exists? class method should treat a string argument as an id rather than as conditions. #5698 [jeremy@planetargon.com] diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 40dfb387ce..1d9f0175bd 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -1996,7 +1996,7 @@ module ActiveRecord #:nodoc: send(name + "=", nil) else begin - send(name + "=", Time == klass ? klass.local(*values) : klass.new(*values)) + send(name + "=", Time == klass ? (@@default_timezone == :utc ? klass.utc(*values) : klass.local(*values)) : klass.new(*values)) rescue => ex errors << AttributeAssignmentError.new("error on assignment #{values.inspect} to #{name}", ex, name) end diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb index d3f2840291..9518e0aca8 100755 --- a/activerecord/test/base_test.rb +++ b/activerecord/test/base_test.rb @@ -560,6 +560,22 @@ class BasicsTest < Test::Unit::TestCase Topic.default_timezone = :local end + def test_utc_as_time_zone_and_new + # Oracle and SQLServer do not have a TIME datatype. + return true if current_adapter?(:SQLServerAdapter, :OracleAdapter) + + Topic.default_timezone = :utc + attributes = { "bonus_time(1i)"=>"2000", + "bonus_time(2i)"=>"1", + "bonus_time(3i)"=>"1", + "bonus_time(4i)"=>"10", + "bonus_time(5i)"=>"35", + "bonus_time(6i)"=>"50" } + topic = Topic.new(attributes) + assert_equal Time.utc(2000, 1, 1, 10, 35, 50), topic.bonus_time + Topic.default_timezone = :local + end + def test_default_values_on_empty_strings topic = Topic.new topic.approved = nil |