Skip to content

Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →

instance method

Object#instance_variable_defined?

obj.instance_variable_defined?(symbol) → true or false
obj.instance_variable_defined?(string) → true or false

Returns true if the given instance variable is defined in obj. String arguments are converted to symbols.

Example
class Fred
  def initialize(p1, p2)
    @a, @b = p1, p2
  end
end
fred = Fred.new('cat', 99)
fred.instance_variable_defined?(:@a)    #=> true
fred.instance_variable_defined?("@b")   #=> true
fred.instance_variable_defined?("@c")   #=> false