require 'test/unit' require 'carat/dynamic-mixin' # fixture module Mixin extend DynamicMixin def self.default_options { :name => "D" } end def hello "#{dynamic_options[:name]}" end end module Mixin2 extend DynamicMixin include Mixin[ :name => "Q" ] end class T include Mixin[ :name => "T" ] end class S include Mixin[ :name => "S" ] end class R include Mixin2[ :name => "R" ] end class Q include Mixin2 end # test class TC_DynamicMixin < Test::Unit::TestCase def setup @t = T.new @s = S.new @r = R.new @q = Q.new end def test_T assert_equal( 'T', @t.hello ) end def test_S assert_equal( 'S', @s.hello ) end def test_R assert_equal( 'R', @r.hello ) end def test_Q assert_equal( 'Q', @q.hello ) end end