Module: PlasticWrap
- Defined in:
- lib/plastic_wrap.rb,
lib/plastic_wrap/heavy.rb,
lib/plastic_wrap/light.rb,
lib/plastic_wrap/version.rb,
lib/plastic_wrap/cardboard_tube.rb
Defined Under Namespace
Modules: CardboardTube Classes: Heavy, Light
Constant Summary collapse
- VERSION =
"0.0.2"
Class Method Summary collapse
Class Method Details
.create_wrap(superclass, base_wrap = Heavy) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/plastic_wrap.rb', line 8 def self.create_wrap(superclass, base_wrap=Heavy) klass = Class.new(base_wrap) methods = superclass.instance_methods methods -= base_wrap.public_instance_methods methods -= [:to_s,:inspect,:=~,:!~,:===] klass.module_eval do methods.each do |method| define_method(method, Delegator.delegating_block(method)) end end klass.define_singleton_method :public_instance_methods do |all=true| super(all) - superclass.protected_instance_methods end klass.define_singleton_method :protected_instance_methods do |all=true| super(all) | superclass.protected_instance_methods end # UGLY but simple form really likes to know about associations klass.define_singleton_method :reflect_on_association do |association| superclass.reflect_on_association(association) end return klass end |