Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Object
- def chain_method(with_symbol, &new_method)
- old_method = method with_symbol
- eigenclass = class << self; self; end
- eigenclass.class_eval do
- define_method with_symbol do |*args| new_method[old_method, *args] end
- end
- end
- end
- def foo(arg)
- print 'in foo: ', arg, "\n"
- end
- puts
- foo 'first call'
- chain_method :foo do |old_method, arg |
- puts 'in first block_eval'
- old_method.call arg
- end
- puts
- foo 'second call'
- chain_method :foo do |old_method, arg|
- puts 'in second block_eval'
- old_method.call arg
- end
- puts
- foo 'third call'
Add Comment
Please, Sign In to add comment