In python, I could use "callable" to check if a variable could be called or not. like this:
# -*- coding: utf-8 -*-
print "hello world"
a = test
defined? gives you what is being called.
a = 1 def a; end b = 1 def c; end defined? a # => "local-variable" defined? a() # => "method" defined? b # => "local-variable" defined? c # => "method"