module Dekoden::Decoratable

Public Class Methods

extended(mojule) click to toggle source
# File lib/dekoden.rb, line 81
def self.extended(mojule)
  mojule.singleton_class.prepend(SingletonPrependMethods)
end
included(mojule) click to toggle source
# File lib/dekoden.rb, line 85
def self.included(mojule)
  mojule.prepend(SingletonPrependMethods)
end

Public Instance Methods

decorated_methods() click to toggle source
# File lib/dekoden.rb, line 63
def decorated_methods
  unless const_defined?(:DecoratedMethods, false)
    mojule = Module.new
    self.prepend(mojule)
    self.const_set(:DecoratedMethods, mojule)
  end
  self.const_get(:DecoratedMethods)
end
decorated_singleton_methods() click to toggle source
# File lib/dekoden.rb, line 72
def decorated_singleton_methods
  unless const_defined?(:DecoratedSingletonMethods, false)
    mojule = Module.new
    self.singleton_class.prepend(mojule)
    self.const_set(:DecoratedSingletonMethods, mojule)
  end
  self.const_get(:DecoratedSingletonMethods)
end
decorators(*mojules) click to toggle source
# File lib/dekoden.rb, line 37
def decorators(*mojules)
  mojules.each do |mojule|
    mojule.constants.each do |constant|
      decorator_klass = mojule.const_get(constant)
      define_singleton_method(constant) do |*args, &blk|
        unbound_decorators << decorator_klass.new(*args, &blk)
      end
    end
  end
end
singleton_decorators(*mojules) click to toggle source
# File lib/dekoden.rb, line 48
def singleton_decorators(*mojules)
  mojules.each do |mojule|
    mojule.constants.each do |constant|
      decorator_klass = mojule.const_get(constant)
      define_method(constant) do |*args, &blk|
        unbound_decorators << decorator_klass.new(*args, &blk)
      end
    end
  end
end
unbound_decorators() click to toggle source
# File lib/dekoden.rb, line 59
def unbound_decorators
  @unbound_decorators ||= []
end