Class: MethodDecorator::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/method_decorator/repository.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.decorationsObject



27
# File 'lib/method_decorator/repository.rb', line 27

def decorations; @decorations ||= [] end

Class Method Details

.add(target_class, target_method_name, target_method, &decoration) ⇒ Object



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

def add(target_class, target_method_name, target_method, &decoration)
  exists = original_target_method_of target_class, target_method_name

  self.decorations.push(
    Decoration.new target_class, target_method_name, target_method, &decoration
  ) unless exists

  not exists
end

.original_target_method_of(target_class, target_method_name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/method_decorator/repository.rb', line 19

def original_target_method_of(target_class, target_method_name)
  decoration = self.decorations.select do
    |d| d.target_class.eql?(target_class) and d.target_method_name.eql?(target_method_name)
  end.first

  decoration ? decoration.target_method : nil
end