module_chain_method¶ ↑
Module::ChainMethod mixin to simplify method chain aliasing.
Example¶ ↑
require 'module/chain_method' # Module::ChainMethod
module MyMixin
def self.included target
super
$stderr.puts "MyMixin.included #{target}
end
include ::Module::ChainMethod
def foo
puts "MyMixin#foo"
foo_without_MyMixin
end
def bar
puts "MyMixin#bar"
end
# Prepares method #foo for chaining.
chain_method :foo
end
class Foo
def foo
puts "Foo#foo"
end
def bar
puts "Foo#bar"
super rescue nil
end
end
f = Foo.new
f.foo
f.bar
puts
Foo.send(:include, MyMixin)
f.foo
f.bar
Generates the following output:
> ruby -I lib example/ex01.rb Foo#foo Foo#bar MyMixin.included Foo MyMixin#foo Foo#foo Foo#bar MyMixin#bar
Note on Patches/Pull Requests¶ ↑
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright¶ ↑
Copyright © 2010 Kurt Stephens. See LICENSE for details.