Module: RGen::MethodDelegation

Defined in:
lib/rgen/method_delegation.rb

Class Method Summary collapse

Class Method Details

.registerDelegate(delegate, object, method) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/rgen/method_delegation.rb', line 7

def registerDelegate(delegate, object, method)
  method = method.to_sym
  createDelegateStore(object)
  if object._methodDelegates[method]
    object._methodDelegates[method] << delegate
  else
    object._methodDelegates[method] = [delegate]
    createDelegatingMethod(object, method)
  end
end

.unregisterDelegate(delegate, object, method) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rgen/method_delegation.rb', line 18

def unregisterDelegate(delegate, object, method)
  method = method.to_sym
  return unless object.respond_to?(:_methodDelegates)
  return unless object._methodDelegates[method]
  object._methodDelegates[method].delete(delegate)
  if object._methodDelegates[method].empty?
    object._methodDelegates[method] = nil
    removeDelegatingMethod(object, method)
    removeDelegateStore(object)
  end
end