From 3ef35cdf4fd699cce93a51b1167d765324a213bd Mon Sep 17 00:00:00 2001 From: Mario Visic Date: Thu, 27 Dec 2018 21:30:58 +0800 Subject: Allow color to initialize from an existing color object Setting a 2d object's color to be random is great, however it's difficult to re-use that color without manually extracting out the rgba values from that color object. Ideally it would be convenient to be able to do this: ```ruby square = Square.new(color: 'random') square_two = Square.new(color: square.color) ``` This patch allows this behavior from any 2d shape, making it much easier to reuse those random colors :) --- test/color_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test') diff --git a/test/color_spec.rb b/test/color_spec.rb index 4f0ec35..e22c2c5 100644 --- a/test/color_spec.rb +++ b/test/color_spec.rb @@ -24,6 +24,17 @@ RSpec.describe Ruby2D::Color do it "raises error on bad color" do expect { Ruby2D::Color.new 42 }.to raise_error Ruby2D::Error end + + it "accepts an existing color object" do + expect { Ruby2D::Color.new(Ruby2D::Color.new('red')) }.to_not raise_error Ruby2D::Error + end + + it "assigns rgba from an existing color" do + c1 = Ruby2D::Color.new([20, 60, 80, 100]) + c2 = Ruby2D::Color.new(c1) + + expect([c2.r, c2.g, c2.b, c2.a]).to eq([20, 60, 80, 100]) + end end describe "#opacity" do -- cgit v1.2.3