class Icing::Decorator

Attributes

definition[R]

Public Class Methods

new(undecorated_object, definition) click to toggle source
Calls superclass method
# File lib/icing/decorator.rb, line 5
def initialize(undecorated_object, definition)
  super(undecorated_object)
  @definition = definition
  define_decorated_methods
end

Public Instance Methods

undecorated_object() click to toggle source
# File lib/icing/decorator.rb, line 11
def undecorated_object
  __getobj__
end

Private Instance Methods

define_decorated_methods() click to toggle source
# File lib/icing/decorator.rb, line 17
def define_decorated_methods
  definition.each do |method_name, decoration|
    define_singleton_method method_name do |*args, &block|
      decoration.decorated(undecorated_object, method_name, *args, &block)
    end
  end
end