paleta 0.2.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b03ada62d667c325f97922bd22b05801aff9cccd
4
- data.tar.gz: cb7d2375cfcf0ac8cceb96719d1c9cdb13b5af23
3
+ metadata.gz: e2a306c36ae6e1a659170b8a0e45ef52cc0df8d4
4
+ data.tar.gz: eeaec953fa8e5a7d6b4d6205d153d464d1ea0e32
5
5
  SHA512:
6
- metadata.gz: 2a4cd1d750c2f78091b15b904d0d2e599dea95d91922a32b494ecd559bf5fa0eb504cb53e2ca735688efcab05195f573a5944eacaa37cef455d0430282873dbb
7
- data.tar.gz: 1eeac708731584488a6a1611a14f3ba7417f3de5693f5144602cee107c43fe6d3b48b296c8dbd411a04561b46cead354641d77262f2aa8608f7a0a299292ad57
6
+ metadata.gz: 6c8a0bfc98c27f9712446e4f0956ea04ee4efe29b364beb699152a6731479264ea0d2bedd52e0bbd7961a8e3f02f1e8f73dd6d69fb936d81bdbb2c721e03b72e
7
+ data.tar.gz: 0c30bb441600cc863bcee8f5d7190b502f3741d49f93d4e46e17999f8ff981224bbefe8dff850d43cd390b0355e82b16af52f6fe53e7b0ec5311c4de57bff26c
@@ -42,7 +42,15 @@ module Paleta
42
42
  end
43
43
  elsif args.length == 2 && args[0] == :hex && args[1].is_a?(String)
44
44
  # example: new(:hex, "336699")
45
- hex_init(args[1])
45
+ # example: new(:hex, "#336699")
46
+ # example: new(:hex, "#fff")
47
+ color_hex = args[1]
48
+ color_hex = color_hex[1..-1] if color_hex.start_with?('#')
49
+
50
+ # These are all string operations to make a "fea" into a "ffeeaa"
51
+ color_hex = color_hex[0] * 2 + color_hex[1] * 2 + color_hex[2] * 2 if color_hex.length == 3
52
+
53
+ hex_init(color_hex)
46
54
  elsif args.length == 3 && args[0].is_a?(Numeric) && args[1].is_a?(Numeric) && args[2].is_a?(Numeric)
47
55
  # example: new(235, 129, 74)
48
56
  rgb_init(args[0], args[1], args[2])
@@ -1,3 +1,3 @@
1
1
  module Paleta
2
- VERSION = '0.2.1'
2
+ VERSION = "0.2.2"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Paleta::Color do
4
4
  it "should initialize with RGB components in 0..255" do
@@ -7,14 +7,35 @@ describe Paleta::Color do
7
7
  color.green.should == 161
8
8
  color.blue.should == 235
9
9
  end
10
-
10
+
11
11
  it "should initialize with the :hex flag and a valid 6 character HEX string" do
12
12
  color = Paleta::Color.new(:hex, "5EA1EB")
13
13
  color.red.should == 94
14
14
  color.green.should == 161
15
15
  color.blue.should == 235
16
16
  end
17
-
17
+
18
+ it "should initialize with the :hex flag and a valid 7 character HEX string" do
19
+ color = Paleta::Color.new(:hex, "#5EA1EB")
20
+ color.red.should == 94
21
+ color.green.should == 161
22
+ color.blue.should == 235
23
+ end
24
+
25
+ it "should initialize with the :hex flag and a valid 3 character HEX string" do
26
+ color = Paleta::Color.new(:hex, "5EA")
27
+ color.red.should == 85
28
+ color.green.should == 238
29
+ color.blue.should == 170
30
+ end
31
+
32
+ it "should initialize with the :hex flag and a valid 4 character HEX string" do
33
+ color = Paleta::Color.new(:hex, "#5EA")
34
+ color.red.should == 85
35
+ color.green.should == 238
36
+ color.blue.should == 170
37
+ end
38
+
18
39
  it "should initialize with the :hsl flag, hue in 0..360, and saturation and lightness in 0..100" do
19
40
  color = Paleta::Color.new(:hsl, 0, 0, 100)
20
41
  color.hue.should == 0
@@ -25,38 +46,38 @@ describe Paleta::Color do
25
46
  color.blue.should == 255
26
47
  color.hex.should == "FFFFFF"
27
48
  end
28
-
49
+
29
50
  it "should initialize with the :rgb flag with RGB components in 0..255" do
30
51
  color = Paleta::Color.new(:rgb, 94, 161, 235)
31
52
  color.red.should == 94
32
53
  color.green.should == 161
33
54
  color.blue.should == 235
34
55
  end
35
-
56
+
36
57
  it "should raise an error on an invalid format flag" do
37
58
  expect{ Paleta::Color.new(:something, 50, 50, 50) }.to raise_error(ArgumentError)
38
59
  end
39
-
60
+
40
61
  it "should raise an error on an invalid hex string" do
41
62
  expect{ Paleta::Color.new(:hex, "xkfjs") }.to raise_error(ArgumentError)
42
63
  end
43
-
64
+
44
65
  it "should raise an error on RGB components not in 0..255" do
45
66
  expect{ Paleta::Color.new(-74, 333, 4321) }.to raise_error(ArgumentError)
46
67
  end
47
-
68
+
48
69
  it "should raise an error on hue not in 0..360" do
49
70
  expect{ Paleta::Color.new(:hsl, 400, 50, 50) }.to raise_error(ArgumentError)
50
71
  end
51
-
72
+
52
73
  it "should raise an error on saturation not in 0..100" do
53
74
  expect{ Paleta::Color.new(:hsl, 200, 150, 50) }.to raise_error(ArgumentError)
54
75
  end
55
-
76
+
56
77
  it "should raise an error on lightness not in 0..100" do
57
78
  expect{ Paleta::Color.new(:hsl, 200, 50, 150) }.to raise_error(ArgumentError)
58
79
  end
59
-
80
+
60
81
  it "should determine its equality to another Color" do
61
82
  color1 = Paleta::Color.new(237, 172, 33)
62
83
  color2 = Paleta::Color.new(:hex, "EDAC21")
@@ -66,51 +87,51 @@ describe Paleta::Color do
66
87
  obj = Object.new
67
88
  (color1 == obj).should be_false
68
89
  end
69
-
90
+
70
91
  it "should calculate its HSL value on itialization" do
71
92
  color = Paleta::Color.new(237, 172, 33)
72
93
  color.hue.to_i.should == 40
73
94
  color.saturation.to_i.should == 85
74
95
  color.lightness.to_i.should == 52
75
96
  end
76
-
97
+
77
98
  it "should update its HSL value when its RGB value is updated" do
78
99
  color = Paleta::Color.new(237, 172, 33)
79
-
100
+
80
101
  color.red = 0
81
102
  color.hue.to_i.should == 131
82
103
  color.saturation.to_i.should == 100
83
104
  color.lightness.to_i.should == 33
84
-
105
+
85
106
  color.green = 123
86
107
  color.hue.to_i.should == 136
87
- color.saturation.to_i.should == 99
108
+ color.saturation.to_i.should == 100
88
109
  color.lightness.to_i.should == 24
89
-
110
+
90
111
  color.blue = 241
91
112
  color.hue.to_i.should == 209
92
113
  color.saturation.to_i.should == 100
93
114
  color.lightness.to_i.should == 47
94
115
  end
95
-
116
+
96
117
  it "should update its RGB value when its HSL value is updated" do
97
118
  color = Paleta::Color.new(0, 0, 255)
98
119
  color.hue = 120
99
120
  color.red.to_i.should == 0
100
121
  color.green.to_i.should == 255
101
122
  color.blue.to_i.should == 0
102
-
123
+
103
124
  color.saturation = 50
104
125
  color.red.to_i.should == 63
105
126
  color.green.to_i.should == 191
106
127
  color.blue.to_i.should == 63
107
-
128
+
108
129
  color.lightness = 80
109
130
  color.red.to_i.should == 178
110
131
  color.green.to_i.should == 229
111
132
  color.blue.to_i.should == 178
112
133
  end
113
-
134
+
114
135
  it "should lighten itself by a percentage" do
115
136
  color = Paleta::Color.new(94, 161, 235)
116
137
  lightness = color.lightness
@@ -120,7 +141,7 @@ describe Paleta::Color do
120
141
  color.lighten!(20)
121
142
  color.lightness.should == lightness + 20
122
143
  end
123
-
144
+
124
145
  it "should return a copy of itself, lightened by a percentage" do
125
146
  color = Paleta::Color.new(94, 161, 235)
126
147
  lightness = color.lightness
@@ -128,13 +149,13 @@ describe Paleta::Color do
128
149
  copy.lightness.should == lightness + 20
129
150
  color.lightness.should == lightness
130
151
  end
131
-
152
+
132
153
  it "should quietly maintain a maximum of 100 when lightening" do
133
154
  color = Paleta::Color.new(94, 161, 235)
134
155
  color.lighten!(300)
135
156
  color.lightness.should == 100
136
157
  end
137
-
158
+
138
159
  it "should darken by a percentage" do
139
160
  color = Paleta::Color.new(94, 161, 235)
140
161
  lightness = color.lightness
@@ -144,7 +165,7 @@ describe Paleta::Color do
144
165
  color.darken!(20)
145
166
  color.lightness.should == lightness - 20
146
167
  end
147
-
168
+
148
169
  it "should return a copy of itself, darkened by a percentage" do
149
170
  color = Paleta::Color.new(94, 161, 235)
150
171
  lightness = color.lightness
@@ -152,13 +173,13 @@ describe Paleta::Color do
152
173
  copy.lightness.should == lightness - 20
153
174
  color.lightness.should == lightness
154
175
  end
155
-
176
+
156
177
  it "should quietly maintain a minimum of 0 when darkening" do
157
178
  color = Paleta::Color.new(94, 161, 235)
158
179
  color.darken!(300)
159
180
  color.lightness.should == 0
160
181
  end
161
-
182
+
162
183
  it "should invert" do
163
184
  color = Paleta::Color.new(94, 161, 235)
164
185
  color.invert!
@@ -166,7 +187,7 @@ describe Paleta::Color do
166
187
  color.green.should == 94
167
188
  color.blue.should == 20
168
189
  end
169
-
190
+
170
191
  it "should return an inverted copy of itself" do
171
192
  color = Paleta::Color.new(94, 161, 235)
172
193
  copy = color.invert
@@ -177,7 +198,7 @@ describe Paleta::Color do
177
198
  color.green.should == 161
178
199
  color.blue.should == 235
179
200
  end
180
-
201
+
181
202
  it "should desaturate" do
182
203
  color = Paleta::Color.new(94, 161, 235)
183
204
  color.desaturate!
@@ -186,7 +207,7 @@ describe Paleta::Color do
186
207
  color.green.to_i.should == 164
187
208
  color.blue.to_i.should == 164
188
209
  end
189
-
210
+
190
211
  it "should return a desaturated copy of itself" do
191
212
  color = Paleta::Color.new(94, 161, 235)
192
213
  copy = color.desaturate
@@ -199,38 +220,38 @@ describe Paleta::Color do
199
220
  color.green.should == 161
200
221
  color.blue.should == 235
201
222
  end
202
-
223
+
203
224
  it "should become its complement" do
204
225
  color = Paleta::Color.new(:hsl, 90, 50, 50)
205
226
  color.complement!
206
227
  color.hue.to_i.should == 270
207
228
  end
208
-
229
+
209
230
  it "should return its complement Color" do
210
231
  color = Paleta::Color.new(:hsl, 90, 50, 50)
211
232
  complement = color.complement
212
233
  complement.hue.to_i.should == 270
213
234
  end
214
-
235
+
215
236
  it "should calculate its similarity to another Color" do
216
237
  color1 = Paleta::Color.new(94, 161, 235)
217
238
  color2 = Paleta::Color.new(237, 172, 33)
218
239
  color1.similarity(color2).round(5).should == 0.56091
219
-
240
+
220
241
  color1 = Paleta::Color.new(237, 172, 33)
221
242
  color2 = Paleta::Color.new(237, 172, 33)
222
243
  color1.similarity(color2).should == 0
223
-
244
+
224
245
  color1 = Paleta::Color.new(0, 0, 0)
225
246
  color2 = Paleta::Color.new(255, 255, 255)
226
247
  color1.similarity(color2).should == 1
227
248
  end
228
-
249
+
229
250
  it "should maintain its HEX value" do
230
251
  color = Paleta::Color.new(94, 161, 235)
231
252
  color.hex.should == "5EA1EB"
232
253
  end
233
-
254
+
234
255
  it "should update its HSB and RGB components when its HEX value is updated" do
235
256
  color = Paleta::Color.new(100, 100, 100)
236
257
  color.hex = "ffffff"
@@ -241,7 +262,7 @@ describe Paleta::Color do
241
262
  color.saturation.should == 0
242
263
  color.lightness.should == 100
243
264
  end
244
-
265
+
245
266
  it "should return an array of component values" do
246
267
  c = Paleta::Color.new(30, 90, 120)
247
268
  rgb_array = [c.red, c.green, c.blue]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paleta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Stephens
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-23 00:00:00.000000000 Z
11
+ date: 2015-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  version: '0'
93
93
  requirements: []
94
94
  rubyforge_project:
95
- rubygems_version: 2.2.2
95
+ rubygems_version: 2.4.5
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: A little library for creating, manipulating and comparing colors and color