Ticket #4134: delegate_to_nil.patch
| File delegate_to_nil.patch, 1.2 kB (added by zapnap, 2 years ago) |
|---|
-
activesupport/test/core_ext/module_test.rb
old new 80 80 assert_equal "DAVID HANSSON", david.upcase 81 81 end 82 82 83 def test_delegation_to_nil 84 david = Someone.new("David", nil) 85 assert_equal nil, david.city 86 end 87 83 88 def test_missing_delegation_target 84 89 assert_raises(ArgumentError) { eval($nowhere) } 85 90 assert_raises(ArgumentError) { eval($noplace) } -
activesupport/lib/active_support/core_ext/module/delegation.rb
old new 33 33 methods.each do |method| 34 34 module_eval(<<-EOS, "(__DELEGATION__)", 1) 35 35 def #{method}(*args, &block) 36 #{to}.__send__( #{method.inspect}, *args, &block)36 #{to}.__send__("nil?") ? nil : #{to}.__send__(#{method.inspect}, *args, &block) 37 37 end 38 38 EOS 39 39 end