defined?

変数が定義されているかどうかは、defined?演算子で調べられます。defined?はメソッドではありません。

if defined?(x)
    print "x is defined.\n"
else
    print "x is not defined.\n"     # こちら
end

x = nil

if defined?(x)
    print "x is defined.\n"         # こちら
else
    print "x is not defined.\n"
end

最後は受けねらいです。

puts defined?(nil)      # => nil
puts defined?(true)     # => true
puts defined?(false)    # => false
puts defined?(Integer)  # => constant
puts defined?(3)        # => expression
puts defined?(String)   # => constant
puts defined?("String") # => expression
puts defined?(xxxx)     # => nil
puts defined?(puts)     # => method
puts defined?(defined?)
# parse error, unexpected ')'