Module: Torc::InstanceMethods

Defined in:
lib/torc.rb

Instance Method Summary collapse

Instance Method Details

#recurse(*args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/torc.rb', line 14

def recurse(*args)
  return [:recurse, args] if instance_variable_defined? :@caller
  begin
    @caller = binding.of_caller(1).eval('__method__')
    caller_args = [:start, args]
    loop do
      caller_args = __send__ @caller, *caller_args.last
      return caller_args unless caller_args.respond_to? :first
      return caller_args unless caller_args.first == :recurse
    end
  ensure
    remove_instance_variable :@caller if instance_variable_defined? :@caller
  end
end