module Medo::Support::Decorator
This module is intended to extend other (decorator) modules
Usage:
module MyDecorator extend Support::Decorator after_decorate do |arg1, arg2| @arg1, @arg2 = arg1, arg2 ... end #methods go here end decorated = Object.new MyDecorator.decorate(decorate, :foo, :bar)
:foo and :bar go to after_decorate
block, which is evaluated on decorated object
after_update block is optional
Public Instance Methods
after_decorate(&block)
click to toggle source
# File lib/medo/support/decorator.rb, line 35 def after_decorate(&block) @after_decorate_block = block end
decorate(base, *args)
click to toggle source
# File lib/medo/support/decorator.rb, line 29 def decorate(base, *args) base.extend(self) base.instance_exec(*args, &@after_decorate_block) if defined? @after_decorate_block base end