class RubyJmeter::FallbackContextProxy

Constants

NON_PROXIED_INSTANCE_VARIABLES
NON_PROXIED_METHODS

Public Class Methods

new(receiver, fallback) click to toggle source
# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 18
def initialize(receiver, fallback)
  @__receiver__ = receiver
  @__fallback__ = fallback
end

Public Instance Methods

__proxy_method__(method, *args, &block) click to toggle source
# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 42
def __proxy_method__(method, *args, &block)
  begin
    @__receiver__.__send__(method.to_sym, *args, &block)
  rescue ::NoMethodError => e
    begin
      @__fallback__.__send__(method.to_sym, *args, &block)
    rescue ::NoMethodError
      raise(e)
    end
  end
end
id() click to toggle source
# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 23
def id
  @__receiver__.__send__(:id)
end
instance_variables() click to toggle source

Special case to allow proxy instance variables

Calls superclass method
# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 33
def instance_variables
  # Ruby 1.8.x returns string names, convert to symbols
  super.map(&:to_sym) - NON_PROXIED_INSTANCE_VARIABLES.to_a
end
method_missing(method, *args, &block) click to toggle source
# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 38
def method_missing(method, *args, &block)
  __proxy_method__(method, *args, &block)
end
sub(*args, &block) click to toggle source

Special case due to `Kernel#sub`'s existence

# File lib/ruby-jmeter/helpers/fallback_content_proxy.rb, line 28
def sub(*args, &block)
  __proxy_method__(:sub, *args, &block)
end