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.



440
441
442
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 440

def initialize(target)
  @_target = target
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object



444
445
446
447
448
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 444

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

Class Method Details

.proxy_for(target, &block) ⇒ Object



429
430
431
432
433
434
435
436
437
438
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 429

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)


450
451
452
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 450

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