diff options
| author | rick <technoweenie@gmail.com> | 2008-05-23 16:21:45 -0700 |
|---|---|---|
| committer | rick <technoweenie@gmail.com> | 2008-05-23 16:21:45 -0700 |
| commit | 4d0cb9feb1add40a6e305abed1b8631752ef82ec (patch) | |
| tree | 40c918109392cf688e347110d54056731ab04f3b | |
| parent | 177276643fce38c752004fd81614b8af5ac1587f (diff) | |
| parent | 7164b71f592a9de0fe1d396611e30c54a8226f2e (diff) | |
Merge branch 'master' of git://github.com/asacalow/acts_as_versioned
| -rw-r--r-- | lib/acts_as_versioned.rb | 20 | ||||
| -rw-r--r-- | test/abstract_unit.rb | 2 | ||||
| -rw-r--r-- | test/migration_test.rb | 13 | ||||
| -rw-r--r-- | test/versioned_test.rb | 12 |
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 |
