class ParameterTransformers::Proxy

Public Class Methods

new(target, transformers={}) click to toggle source
# File lib/parameter_transformers.rb, line 11
def initialize(target, transformers={})
  @target, @transformers = target, transformers
end

Public Instance Methods

method_missing(m, *args, &block) click to toggle source
# File lib/parameter_transformers.rb, line 19
def method_missing(m, *args, &block)
  params = @target.method(m).parameters.map(&:last)
  t_args = args.dup
  params.each_with_index do |param, ix|
    if @transformers[[m, param]] &&
      @transformers[[m, param]].kind_of?(Proc)
        t_args[ix] =
          @transformers[[m, param]].call(t_args[ix])
    end
  end
  @target.send(m, *t_args, &block)
end
respond_to?(symbol, include_priv=false) click to toggle source
# File lib/parameter_transformers.rb, line 15
def respond_to?(symbol, include_priv=false)
  @target.respond_to?(symbol, include_priv)
end