ruby - Get the calling object of a block -


if have class object1 method method1 , "global" method2 inside kernel module.

method1 run block transforming proc , call it.

if have :

obj1 = new object1 obj1.method1(arg1,arg2){ method2() } 

is possible in method2 know obj1 called block ?

assume want method2 global method. get the access calling object passing binding. more simpler way pass caller object it:

example:

def method2(o)   #puts this.object_id   puts "inside method2()"   puts "#{o.object_id}" end   class object1   def method1     method2(self)   end end  obj1 = object1.new  puts obj1.object_id  obj1.method1() 

output:

23644040 inside method2() 23644040 

Comments

Popular posts from this blog

javascript - Confirm a form & display message if form is valid with JQuery -

Retrieving ETA (estimated time of arrival) with Google Distance Matrix API and public transit as transport mode -

ionic framework - Meteor - Error: Failed to execute 'insertBefore' on 'Node' -