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, data) ⇒ Object



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

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