Permalink
Browse files

Merge pull request #11020 from fredwu/master-activemodel-inclusion-ch…

…ain-fix-iii

ActiveModel::Model inclusion chain backward compatibility
  • Loading branch information...
2 parents 4c5e166 + 85750d4 commit 7c69a829a311a31109939cff19b700b36b97d5c4 @rafaelfranca rafaelfranca committed Jun 20, 2013
Showing with 16 additions and 6 deletions.
  1. +1 −1 activemodel/lib/active_model/model.rb
  2. +15 −5 activemodel/test/cases/model_test.rb
@@ -80,7 +80,7 @@ def initialize(params={})
self.public_send("#{attr}=", value)
end if params
- super(*params)
+ super()
end
# Indicates if the model is persisted. Default is +false+.
@@ -10,6 +10,7 @@ def self.included(klass)
def initialize(*args)
@attr ||= 'default value'
+ super
end
end
@@ -19,8 +20,15 @@ class BasicModel
attr_accessor :attr
end
+ class BasicModelWithReversedMixins
+ include ActiveModel::Model
+ include DefaultValue
+ attr_accessor :attr
+ end
+
class SimpleModel
include ActiveModel::Model
+ attr_accessor :attr
end
def setup
@@ -32,11 +40,17 @@ def test_initialize_with_params
assert_equal "value", object.attr
end
+ def test_initialize_with_params_and_mixins_reversed
+ object = BasicModelWithReversedMixins.new(attr: "value")
+ assert_equal "value", object.attr
+ end
+
def test_initialize_with_nil_or_empty_hash_params_does_not_explode
assert_nothing_raised do
BasicModel.new()
- BasicModel.new nil
+ BasicModel.new(nil)
BasicModel.new({})
+ SimpleModel.new(attr: 'value')
end
end
@@ -58,8 +72,4 @@ def test_mixin_initializer_when_args_exist
def test_mixin_initializer_when_args_dont_exist
assert_raises(NoMethodError) { SimpleModel.new(hello: 'world') }
end
-
- def test_mixin_when_no_ancestors
- assert SimpleModel.new
- end
end

0 comments on commit 7c69a82

Please sign in to comment.