Module: Decors::DecoratorDefinition

Defined in:
lib/decors/decorator_definition.rb

Instance Method Summary collapse

Instance Method Details

#define_decorator(decorator_name, decorator_class, mixin: false) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/decors/decorator_definition.rb', line 9

def define_decorator(decorator_name, decorator_class, mixin: false)
  method_definer = mixin ? :define_method : :define_singleton_method

  send(method_definer, decorator_name) do |*args, **kwargs, &blk|
    extend(singleton_class? ? Decors::MethodAdded::SingletonListener : Decors::MethodAdded::StandardListener)

    declared_decorators << [decorator_class, args, kwargs, blk]
  end
end

#define_mixin_decorator(decorator_name, decorator_class) ⇒ Object



5
6
7
# File 'lib/decors/decorator_definition.rb', line 5

def define_mixin_decorator(decorator_name, decorator_class)
  define_decorator(decorator_name, decorator_class, mixin: true)
end