aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrick <technoweenie@gmail.com>2008-05-23 16:21:45 -0700
committerrick <technoweenie@gmail.com>2008-05-23 16:21:45 -0700
commit4d0cb9feb1add40a6e305abed1b8631752ef82ec (patch)
tree40c918109392cf688e347110d54056731ab04f3b
parent177276643fce38c752004fd81614b8af5ac1587f (diff)
parent7164b71f592a9de0fe1d396611e30c54a8226f2e (diff)
Merge branch 'master' of git://github.com/asacalow/acts_as_versioned
-rw-r--r--lib/acts_as_versioned.rb20
-rw-r--r--test/abstract_unit.rb2
-rw-r--r--test/migration_test.rb13
-rw-r--r--test/versioned_test.rb12
4 files changed, 26 insertions, 21 deletions
diff --git a/lib/acts_as_versioned.rb b/lib/acts_as_versioned.rb
index 253c0f019..bba10c437 100644
--- a/lib/acts_as_versioned.rb
+++ b/lib/acts_as_versioned.rb
@@ -66,7 +66,7 @@ module ActiveRecord #:nodoc:
#
# See ActiveRecord::Acts::Versioned::ClassMethods#acts_as_versioned for configuration options
module Versioned
- CALLBACKS = [:set_new_version, :save_version_on_create, :save_version?, :clear_changed_attributes]
+ CALLBACKS = [:set_new_version, :save_version_on_create, :save_version?, :clear_altered_attributes]
def self.included(base) # :nodoc:
base.extend ClassMethods
end
@@ -174,7 +174,7 @@ module ActiveRecord #:nodoc:
send :include, ActiveRecord::Acts::Versioned::ActMethods
cattr_accessor :versioned_class_name, :versioned_foreign_key, :versioned_table_name, :versioned_inheritance_column,
- :version_column, :max_version_limit, :track_changed_attributes, :version_condition, :version_sequence_name, :non_versioned_columns,
+ :version_column, :max_version_limit, :track_altered_attributes, :version_condition, :version_sequence_name, :non_versioned_columns,
:version_association_options
# legacy
@@ -186,7 +186,7 @@ module ActiveRecord #:nodoc:
alias_method :non_versioned_fields=, :non_versioned_columns=
end
- send :attr_accessor, :changed_attributes
+ send :attr_accessor, :altered_attributes
self.versioned_class_name = options[:class_name] || "Version"
self.versioned_foreign_key = options[:foreign_key] || self.to_s.foreign_key
@@ -228,10 +228,10 @@ module ActiveRecord #:nodoc:
after_create :save_version_on_create
after_update :save_version
after_save :clear_old_versions
- after_save :clear_changed_attributes
+ after_save :clear_altered_attributes
unless options[:if_changed].nil?
- self.track_changed_attributes = true
+ self.track_altered_attributes = true
options[:if_changed] = [options[:if_changed]] unless options[:if_changed].is_a?(Array)
options[:if_changed].each do |attr_name|
define_method("#{attr_name}=") do |value|
@@ -364,8 +364,8 @@ module ActiveRecord #:nodoc:
# If called with a single parameter, gets whether the parameter has changed.
def changed?(attr_name = nil)
attr_name.nil? ?
- (!self.class.track_changed_attributes || (changed_attributes && changed_attributes.length > 0)) :
- (changed_attributes && changed_attributes.include?(attr_name.to_s))
+ (!self.class.track_altered_attributes || (altered_attributes && altered_attributes.length > 0)) :
+ (altered_attributes && altered_attributes.include?(attr_name.to_s))
end
# keep old dirty? method
@@ -437,14 +437,14 @@ module ActiveRecord #:nodoc:
end
# clears current changed attributes. Called after save.
- def clear_changed_attributes
- self.changed_attributes = []
+ def clear_altered_attributes
+ self.altered_attributes = []
end
def write_changed_attribute(attr_name, attr_value)
# Convert to db type for comparison. Avoids failing Float<=>String comparisons.
attr_value_for_db = self.class.columns_hash[attr_name.to_s].type_cast(attr_value)
- (self.changed_attributes ||= []) << attr_name.to_s unless self.changed?(attr_name) || self.send(attr_name) == attr_value_for_db
+ (self.altered_attributes ||= []) << attr_name.to_s unless self.changed?(attr_name) || self.send(attr_name) == attr_value_for_db
write_attribute(attr_name, attr_value_for_db)
end
diff --git a/test/abstract_unit.rb b/test/abstract_unit.rb
index 86df5e136..86f50620c 100644
--- a/test/abstract_unit.rb
+++ b/test/abstract_unit.rb
@@ -14,7 +14,7 @@ require 'acts_as_versioned'
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
-ActiveRecord::Base.configurations = {'test' => config[ENV['DB'] || 'sqlite']}
+ActiveRecord::Base.configurations = {'test' => config[ENV['DB'] || 'sqlite3']}
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['test'])
load(File.dirname(__FILE__) + "/schema.rb")
diff --git a/test/migration_test.rb b/test/migration_test.rb
index 3cef74195..47a7537ce 100644
--- a/test/migration_test.rb
+++ b/test/migration_test.rb
@@ -8,10 +8,15 @@ if ActiveRecord::Base.connection.supports_migrations?
class MigrationTest < Test::Unit::TestCase
self.use_transactional_fixtures = false
- def teardown
- ActiveRecord::Base.connection.initialize_schema_information
- ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
-
+ def teardown
+ if ActiveRecord::Base.connection.respond_to?(:initialize_schema_information)
+ ActiveRecord::Base.connection.initialize_schema_information
+ ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
+ else
+ ActiveRecord::Base.connection.initialize_schema_migrations_table
+ ActiveRecord::Base.connection.assume_migrated_upto_version(0)
+ end
+
Thing.connection.drop_table "things" rescue nil
Thing.connection.drop_table "thing_versions" rescue nil
Thing.reset_column_information
diff --git a/test/versioned_test.rb b/test/versioned_test.rb
index 60427ff67..a7bc2082b 100644
--- a/test/versioned_test.rb
+++ b/test/versioned_test.rb
@@ -201,10 +201,10 @@ class VersionedTest < Test::Unit::TestCase
end
end
- def test_track_changed_attributes_default_value
- assert !Page.track_changed_attributes
- assert LockedPage.track_changed_attributes
- assert SpecialLockedPage.track_changed_attributes
+ def test_track_altered_attributes_default_value
+ assert !Page.track_altered_attributes
+ assert LockedPage.track_altered_attributes
+ assert SpecialLockedPage.track_altered_attributes
end
def test_version_order
@@ -212,7 +212,7 @@ class VersionedTest < Test::Unit::TestCase
assert_equal 24, pages(:welcome).versions.last.version
end
- def test_track_changed_attributes
+ def test_track_altered_attributes
p = LockedPage.create! :title => "title"
assert_equal 1, p.lock_version
assert_equal 1, p.versions(true).size
@@ -311,7 +311,7 @@ class VersionedTest < Test::Unit::TestCase
assert_equal page, page_version.page
end
- def test_unchanged_attributes
+ def test_unaltered_attributes
landmarks(:washington).attributes = landmarks(:washington).attributes.except("id")
assert !landmarks(:washington).changed?
end