colormath 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,17 +3,6 @@ module ColorMath
3
3
  # Color can be mixed into any class that responds to red, green, and blue, where 0 <= c <= 1
4
4
  #
5
5
  module Color
6
- EPSILON = 1/256.0
7
-
8
- # Returns true if the RGB components of the two colours differ by less than EPSILON,
9
- # i.e. they are the same when represented in 8 bits.
10
- #
11
- def ==(other)
12
- deltas = [ other.red - self.red,
13
- other.green - self.green,
14
- other.blue - self.blue ].map{ |e| e.abs }
15
- deltas.max < EPSILON
16
- end
17
6
 
18
7
  # The six-digit hexadecimal representation of the colour, e.g. "#cafe66"
19
8
  #
@@ -21,6 +10,17 @@ module ColorMath
21
10
  "#%02x%02x%02x" % [red * 0xff, green * 0xff, blue * 0xff]
22
11
  end
23
12
 
13
+ # The hexadecimal representation of the colour, using 3 digits if possible
14
+ #
15
+ def compact_hex
16
+ case h = hex
17
+ when /^#(.)\1(.)\2(.)\3$/
18
+ "##$1#$2#$3"
19
+ else
20
+ h
21
+ end
22
+ end
23
+
24
24
  def inspect(*args)
25
25
  "<%s r=%0.3f g=%0.3f b=%0.3f>" % [self.class.to_s, red, green, blue]
26
26
  end
@@ -2,7 +2,7 @@ module ColorMath
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -0,0 +1,30 @@
1
+
2
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
3
+ require "test/unit"
4
+ require "shoulda"
5
+ require "colormath"
6
+
7
+ class HexEncodingTest < Test::Unit::TestCase
8
+
9
+ should "generate hex code" do
10
+ %w[ #123456 #abcdef #000000 #ffffff #112233 #aabbcc ].each do |hex|
11
+ assert_equal hex, ColorMath::hex_color(hex).hex
12
+ end
13
+ end
14
+
15
+ context "when generating short hex code" do
16
+ should "use three digits if possible" do
17
+ assert_equal "#000", ColorMath::hex_color("#000000").compact_hex
18
+ assert_equal "#fff", ColorMath::hex_color("#ffffff").compact_hex
19
+ assert_equal "#123", ColorMath::hex_color("#112233").compact_hex
20
+ assert_equal "#abc", ColorMath::hex_color("#aabbcc").compact_hex
21
+ end
22
+
23
+ should "use six digits if not possible" do
24
+ %w[ #123456 #abcdef ].each do |hex|
25
+ assert_equal hex, ColorMath::hex_color(hex).compact_hex
26
+ end
27
+ end
28
+ end
29
+
30
+ end
@@ -4,14 +4,6 @@ require "shoulda"
4
4
  require "colormath"
5
5
 
6
6
  class HSLTest < Test::Unit::TestCase
7
- should "be equal if initialized with same values" do
8
- assert_equal ColorMath::HSL.new(123, 0.5, 0.7), ColorMath::HSL.new(123, 0.5, 0.7)
9
- end
10
-
11
- should "not be equal if initialized with different values" do
12
- assert_not_equal ColorMath::HSL.new(124, 0.4, 0.8), ColorMath::HSL.new(123, 0.5, 0.7)
13
- end
14
-
15
7
  should "force hue >= 0" do
16
8
  c = ColorMath::HSL.new(-2, 0, 0)
17
9
  assert_equal 358, c.hue
@@ -4,14 +4,6 @@ require "shoulda"
4
4
  require "colormath"
5
5
 
6
6
  class RGBTest < Test::Unit::TestCase
7
- should "be equal if initialized with same values" do
8
- assert_equal ColorMath::RGB.new(0.3, 0.5, 0.7), ColorMath::RGB.new(0.3, 0.5, 0.7)
9
- end
10
-
11
- should "not be equal if initialized with different values" do
12
- assert_not_equal ColorMath::RGB.new(0.5, 0.4, 0.8), ColorMath::RGB.new(0.3, 0.5, 0.7)
13
- end
14
-
15
7
  should "force red >= 0" do
16
8
  c = ColorMath::HSL.new(-2, 0, 0)
17
9
  assert_equal 0, c.red
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colormath
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Battley
@@ -36,6 +36,7 @@ files:
36
36
  - test/blend_test.rb
37
37
  - test/conversion_test.rb
38
38
  - test/hex_decoding_test.rb
39
+ - test/hex_encoding_test.rb
39
40
  - test/hsl_test.rb
40
41
  - test/rgb_test.rb
41
42
  - lib/colormath/adjust.rb