aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/CHANGELOG2
-rw-r--r--activerecord/lib/active_record/timestamp.rb16
-rwxr-xr-xactiverecord/test/base_test.rb4
3 files changed, 17 insertions, 5 deletions
diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG
index 4177823180..9ea84c0fb6 100644
--- a/activerecord/CHANGELOG
+++ b/activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Changed the auto-timestamping feature to use ActiveRecord::Base.default_timezone instead of entertaining the parallel ActiveRecord::Base.timestamps_gmt method. The latter is now deprecated and will throw a warning on use (but still work) #710 [Jamis Buck]
+
* Added a OCI8-based Oracle adapter that has been verified to work with Oracle 8 and 9 #629 [Graham Jenkins]. Usage notes:
1. Key generation uses a sequence "rails_sequence" for all tables. (I couldn't find a simple
diff --git a/activerecord/lib/active_record/timestamp.rb b/activerecord/lib/active_record/timestamp.rb
index 01a9720f52..c3de93d552 100644
--- a/activerecord/lib/active_record/timestamp.rb
+++ b/activerecord/lib/active_record/timestamp.rb
@@ -19,7 +19,7 @@ module ActiveRecord
end
def create_with_timestamps #:nodoc:
- t = timestamps_gmt ? Time.now.gmtime : Time.now
+ t = ( self.class.default_timezone == :utc ? Time.now.utc : Time.now )
write_attribute("created_at", t) if record_timestamps && respond_to?(:created_at) && created_at.nil?
write_attribute("created_on", t) if record_timestamps && respond_to?(:created_on) && created_on.nil?
@@ -30,7 +30,7 @@ module ActiveRecord
end
def update_with_timestamps #:nodoc:
- t = timestamps_gmt ? Time.now.gmtime : Time.now
+ t = ( self.class.default_timezone == :utc ? Time.now.utc : Time.now )
write_attribute("updated_at", t) if record_timestamps && respond_to?(:updated_at)
write_attribute("updated_on", t) if record_timestamps && respond_to?(:updated_on)
@@ -44,7 +44,17 @@ module ActiveRecord
# if the table has columns of either of these names. This feature is turned on by default.
@@record_timestamps = true
cattr_accessor :record_timestamps
+
+ # deprecated: use ActiveRecord::Base.default_timezone instead.
@@timestamps_gmt = false
- cattr_accessor :timestamps_gmt
+ def self.timestamps_gmt=( gmt ) #:nodoc:
+ warn "timestamps_gmt= is deprecated. use default_timezone= instead"
+ self.default_timezone = ( gmt ? :utc : :local )
+ end
+
+ def self.timestamps_gmt #:nodoc:
+ warn "timestamps_gmt is deprecated. use default_timezone instead"
+ self.default_timezone == :utc
+ end
end
end
diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb
index b232949a25..2a704424b1 100755
--- a/activerecord/test/base_test.rb
+++ b/activerecord/test/base_test.rb
@@ -709,13 +709,13 @@ class BasicsTest < Test::Unit::TestCase
def test_define_attr_method_with_value
k = Class.new( ActiveRecord::Base )
- k.define_attr_method :table_name, "foo"
+ k.send(:define_attr_method, :table_name, "foo")
assert_equal "foo", k.table_name
end
def test_define_attr_method_with_block
k = Class.new( ActiveRecord::Base )
- k.define_attr_method( :primary_key ) { "sys_" + original_primary_key }
+ k.send(:define_attr_method, :primary_key) { "sys_" + original_primary_key }
assert_equal "sys_id", k.primary_key
end