Class: MethodDecorator::Repositories::CallsRepository
- Inherits:
-
Object
- Object
- MethodDecorator::Repositories::CallsRepository
- Defined in:
- lib/method_decorator/repositories/calls_repository.rb
Instance Attribute Summary collapse
Class Method Summary collapse
Instance Method Summary collapse
- #add(klass, method_name, *args, &block) ⇒ Object
- #find_call(klass) ⇒ Object
- #push_new_call(klass, method_name, *args, &block) ⇒ Object
- #update_existing_call(call, method_name, *args, &block) ⇒ Object
Instance Attribute Details
#calls ⇒ Object
34 35 36 |
# File 'lib/method_decorator/repositories/calls_repository.rb', line 34 def calls @calls ||= [] end |
Class Method Details
.singleton ⇒ Object
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 |