Class: MethodDecorator::Repositories::CallsRepository

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#callsObject



34
35
36
# File 'lib/method_decorator/repositories/calls_repository.rb', line 34

def calls
  @calls ||= []
end

Class Method Details

.singletonObject



39
40
41
# File 'lib/method_decorator/repositories/calls_repository.rb', line 39

def singleton
  @singleton ||= new
end

Instance Method Details

#add(klass, method_name, *args, &block) ⇒ Object



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

def add(klass, method_name, *args, &block)
  call = find_call(klass)
  if call
    update_existing_call(call, method_name, *args, &block)
  else
    push_new_call(klass, method_name, *args, &block)
  end
end

#find_call(klass) ⇒ Object



19
20
21
# File 'lib/method_decorator/repositories/calls_repository.rb', line 19

def find_call(klass)
  calls.find { |call| call.klass.eql?(klass) }
end

#push_new_call(klass, method_name, *args, &block) ⇒ Object



30
31
32
# File 'lib/method_decorator/repositories/calls_repository.rb', line 30

def push_new_call(klass, method_name, *args, &block)
  calls.push(MethodDecorator::Models::Call.new(klass, method_name, *args, &block))
end

#update_existing_call(call, method_name, *args, &block) ⇒ Object



23
24
25
26
27
28
# File 'lib/method_decorator/repositories/calls_repository.rb', line 23

def update_existing_call(call, method_name, *args, &block)
  call.method_name = method_name
  call.args = *args
  call.block = block
  call
end