 
 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 | ||
|---|---|---|
| Code | Expected | Actual | 
| 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 |