== Description
The 'use' library allows you to selectively mixin methods from a given
module and alias them on the fly if desired.
== Prerequisites
structured_warnings 0.3.0 or later
== Installation
gem install use
== Synopsis
require 'use'
module Foo
def bar
puts "hello"
end
def baz
puts "world"
end
end
module Test
def bar
puts "goodbye"
end
def blah
puts "new york"
end
end
class Zap
use Foo, :bar
use Test, :blah
end
z = Zap.new
z.bar # => "hello"
z.blah # => "new york"
z.baz # => NoMethodError
Using the new keywords
class MyKlass
use Foo, :alias => {:bar => :test}
end
m = MyKlass.new
m.test # => "hello"
m.bar # => NoMethodError
== Constants
USE_VERSION
The version of this library. This is a string.
== Notes
In $VERBOSE mode this library will issue a MethodRedefinedWarning if you
shadow an existing method. See the documentation for structured_warnings
for more details.
== Acknowledgements
Thanks go to Ara Howard for providing the original solution and to
Mauricio Fernandez, whose blog I plagiarized (and with whom I communicated)
in order to implement fine-grained mixins.
== Known Bugs
Some versions of Ruby 1.9.x may emit a warning in verbose mode. This is a
bug in Ruby 1.9.x and can be ignored.
If you find any bugs please log them on the project page at
https://github.com/djberg96/use
== License
Apache-2.0
== Copyright
(C) 2005-2019, Daniel J. Berger
All Rights Reserved
== Author
Daniel J. Berger