Sha256: ca21f84cfd765c29d0c48f1d252c885283377a71f2126216e58a521169c40208
Contents?: true
Size: 1.51 KB
Versions: 4
Compression:
Stored size: 1.51 KB
Contents
== Summary selectively include module methods == Author and License Copyright (c) 2008 Greg Weber, http://gregweber.info Licensed under the MIT license == Usage require 'rubygems' require 'module-import' module Foo def foo; 'foo' end def bar; 'bar' end end class Importer import Foo, :bar end Importer.new.bar # => 'bar' Importer.new.foo # => # NoMethodError class Importer import Foo, :not_defined # => #not_defined not found in Foo (ImportError) end Giving no methods (or all methods) should behave the same as a normal include class Importer2 import Foo # same as import Foo, :foo, :bar end Importer2.new.bar # => 'bar' Importer2.new.foo # => 'foo' However, there is one important difference. New changes in the included module will not effect the class. module Foo undef_method :foo def bar; fail end end Importer2.new.bar # => 'bar' Importer2.new.foo # => 'foo' == Install gem install module-import == Source === browser http://github.com/gregwebs/module-import/tree/master === repository git clone git://github.com/gregwebs/module-import.git == Homepage http://gregweber.info/projects/module-import.html == RDoc documentation included with the gem == Notes === Testing 4:1 test:code ratio, I think I have all the corner cases covered. In particular, this does not break inheritance and everything works the same for importing into a module as it does for importing into class. === Implementation Includes a duplicate of the module that has methods removed
Version data entries
4 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
module-import-0.2.2 | README |
module-import-0.2.2 | ./README |
module-import-0.3.0 | ./README |
module-import-0.3.0 | README |