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.



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

def initialize(target)
  @_target = target
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(*args) ⇒ Object



454
455
456
457
458
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 454

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

Class Method Details

.proxy_for(target, &block) ⇒ Object



439
440
441
442
443
444
445
446
447
448
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 439

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)


460
461
462
# File 'lib/adhearsion/asterisk/call_controller_methods.rb', line 460

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