This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Automatically Initializing Instance Variables
CodeExpectedActual
class RGBColor(red=0, green=0, blue=0)
  @red = red
  @green = green
  @blue = blue
end
class Object
  private
  def set_instance_variables(binding, *variables)
    variables.each do |var| 
      eval("@#{var} = #{var}", binding)
    end
	#instance_variable_set("@#{var}", var)
  end
end 
class RGBColor
  def initialize(red=0, green=0, blue=0)
    set_instance_variables(binding, *local_variables)
  end
end
RGBColor.new(10, 200, 300)
#<RGBColor:0xb7c22fc8 @red=10, @blue=300, @green=200> #<RGBColor:0xb7c22fc8 @red=10, @blue=300, @green=200>
class RGBColor
  def initialize(red=0, green=0, blue=0, debug=false)
    set_instance_variables(binding, *local_variables-['debug'])
    puts "Color: #{red}/#{green}/#{blue}" if debug
  end
end
RGBColor.new(10, 200, 255, true)
Color: 10/200/255
Color: 10/200/255