Methods
- S
- T
Instance Public methods
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 135 def setup Object.const_set(:FooClassWithBarMethod, Class.new) FooClassWithBarMethod.send(:define_method, 'bar', Proc.new { 'bar' }) @instance = FooClassWithBarMethod.new end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 141 def teardown Object.send(:remove_const, :FooClassWithBarMethod) end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 145 def test_alias_method_chain assert @instance.respond_to?(:bar) feature_aliases = [:bar_with_baz, :bar_without_baz] feature_aliases.each do |method| assert !@instance.respond_to?(method) end assert_equal 'bar', @instance.bar FooClassWithBarMethod.send(:include, BarMethodAliaser) feature_aliases.each do |method| assert @instance.respond_to?(method) end assert_equal 'bar_with_baz', @instance.bar assert_equal 'bar', @instance.bar_without_baz end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 203 def test_alias_method_chain_with_feature_punctuation FooClassWithBarMethod.send(:define_method, 'quux', Proc.new { 'quux' }) FooClassWithBarMethod.send(:define_method, 'quux?', Proc.new { 'quux?' }) FooClassWithBarMethod.send(:include, BarMethodAliaser) FooClassWithBarMethod.alias_method_chain :quux, :baz! assert_nothing_raised do assert_equal 'quux_with_baz', @instance.quux_with_baz! end assert_raise(NameError) do FooClassWithBarMethod.alias_method_chain :quux?, :baz! end end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 165 def test_alias_method_chain_with_punctuation_method FooClassWithBarMethod.send(:define_method, 'quux!', Proc.new { 'quux' }) assert !@instance.respond_to?(:quux_with_baz!) FooClassWithBarMethod.send(:include, BarMethodAliaser) FooClassWithBarMethod.alias_method_chain :quux!, :baz assert @instance.respond_to?(:quux_with_baz!) assert_equal 'quux_with_baz', @instance.quux! assert_equal 'quux', @instance.quux_without_baz! end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 176 def test_alias_method_chain_with_same_names_between_predicates_and_bang_methods FooClassWithBarMethod.send(:define_method, 'quux!', Proc.new { 'quux!' }) FooClassWithBarMethod.send(:define_method, 'quux?', Proc.new { true }) FooClassWithBarMethod.send(:define_method, 'quux=', Proc.new { 'quux=' }) assert !@instance.respond_to?(:quux_with_baz!) assert !@instance.respond_to?(:quux_with_baz?) assert !@instance.respond_to?(:quux_with_baz=) FooClassWithBarMethod.send(:include, BarMethodAliaser) assert @instance.respond_to?(:quux_with_baz!) assert @instance.respond_to?(:quux_with_baz?) assert @instance.respond_to?(:quux_with_baz=) FooClassWithBarMethod.alias_method_chain :quux!, :baz assert_equal 'quux!_with_baz', @instance.quux! assert_equal 'quux!', @instance.quux_without_baz! FooClassWithBarMethod.alias_method_chain :quux?, :baz assert_equal false, @instance.quux? assert_equal true, @instance.quux_without_baz? FooClassWithBarMethod.alias_method_chain :quux=, :baz assert_equal 'quux=_with_baz', @instance.send(:quux=, 1234) assert_equal 'quux=', @instance.send(:quux_without_baz=, 1234) end
Source: show
# File rails/activesupport/test/core_ext/module_test.rb, line 218 def test_alias_method_chain_yields_target_and_punctuation FooClassWithBarMethod.send(:define_method, :quux?, Proc.new { }) FooClassWithBarMethod.send :include, BarMethods block_called = false FooClassWithBarMethod.alias_method_chain :quux?, :baz do |target, punctuation| block_called = true assert_equal 'quux', target assert_equal '?', punctuation end assert block_called end