introspection/instance_variable_queries.rb

tests/_examples/introspection/instance_variable_queries.rb in the metorex repository.

class Greeter
  def initialize
    @greeting = "hello"
  end
end

module Marker
end

greeter = Greeter.new

puts greeter.instance_variable_defined?("@greeting")
puts greeter.instance_variable_defined?(:@greeting)
puts greeter.instance_variable_defined?("@goodbye")
puts greeter.instance_variable_defined?(:@goodbye)

begin
  greeter.instance_variable_defined?(Object.new)
rescue TypeError => error
  puts error.class
end

puts nil.instance_variable_defined?("@goodbye")
puts 1.instance_variable_defined?("@goodbye")
puts "text".instance_variable_defined?("@goodbye")

puts greeter.instance_of?(Greeter)
puts greeter.instance_of?(Object)
puts greeter.instance_of?(Marker)
puts greeter.instance_of?(Comparable)

Output:

true
true
false
false
TypeError
false
false
false
true
false
false
false