Module: Putter::MethodCreator

Included in:
Follower, Watcher
Defined in:
lib/putter/method_creator.rb

Instance Method Summary collapse

Instance Method Details

#add_putter_method_to_proxy(proxy, eval_method, data) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/putter/method_creator.rb', line 3

def add_putter_method_to_proxy(proxy, eval_method, data)
  proxy.send(eval_method, data) do |data|
    define_method(data.method) do |*proxy_args, &blk|
      line = caller.find {|call| call.match(data.stack_trace_ignore_regex)}
      line = line.split(::Dir.pwd)[1]
      args_string = proxy_args.to_s
      result = super *proxy_args, &blk
      ::Putter.configuration.print_strategy.call data.label, line, data.method, args_string, result
      result
    end
  end
end