Class: Adhearsion::Asterisk::CallControllerMethods::GenerateSilenceProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/adhearsion/asterisk/call_controller_methods.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target) ⇒ GenerateSilenceProxy

Returns a new instance of GenerateSilenceProxy.



427
428
429
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 427

def initialize(target)
  @_target = target
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object



431
432
433
434
435
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 431

def method_missing(*args)
  @_target.send(*args).tap do
    @_target.generate_silence
  end
end

Class Method Details

.proxy_for(target, &block) ⇒ Object



416
417
418
419
420
421
422
423
424
425
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 416

def self.proxy_for(target, &block)
  proxy = new(target)
  ivs = target.instance_variables
  ivs.each { |iv| proxy.instance_variable_set iv, target.instance_variable_get(iv) }

  proxy.instance_eval(&block).tap do
    ivs = proxy.instance_variables - [:@_target]
    ivs.each { |iv| target.instance_variable_set iv, proxy.instance_variable_get(iv) }
  end
end

Instance Method Details

#respond_to_missing?(*args) ⇒ Boolean

Returns:

  • (Boolean)


437
438
439
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 437

def respond_to_missing?(*args)
  @_target.respond_to?(*args)
end