Methods
S
T
Instance Public methods
setup()
# 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
teardown()
# File rails/activesupport/test/core_ext/module_test.rb, line 141
def teardown
  Object.send(:remove_const, :FooClassWithBarMethod)
end
test_alias_method_chain()
# 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
test_alias_method_chain_with_feature_punctuation()
# 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
test_alias_method_chain_with_punctuation_method()
# 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
test_alias_method_chain_with_same_names_between_predicates_and_bang_methods()
# 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
test_alias_method_chain_yields_target_and_punctuation()
# 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