
Security News
New Website “Is It Really FOSS?” Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
== Summary selectively include module methods with Kernel#import
== 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'
== WARNING! There is no way for Kernel#import to track dependencies between methods! To help with this, by default, all private methods from the module will be imported unless the option :import_private is set to false To write a module that works with this system well, your public methods should depend only on private methods. To use this on someone else's module, you should either import the full module or write tests or inspect the source code of the module you are importing.
== 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
FAQs
Unknown package
We found that module-import demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.