pigment 0.1.10 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/pigment.rb +18 -20
- metadata +8 -6
data/lib/pigment.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Pigment
|
2
|
-
VERSION = '0.
|
2
|
+
VERSION = '0.2.0'
|
3
3
|
|
4
4
|
class Color
|
5
5
|
|
@@ -27,20 +27,16 @@ module Pigment
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
# Selectors.
|
30
|
+
# Selectors and Setters.
|
31
31
|
%w'r g b a'.each_with_index do |m, i|
|
32
|
-
define_method("#{m}", ->() { color[i] })
|
32
|
+
define_method("#{m}", ->() { @color[i] })
|
33
|
+
define_method("#{m}=", ->(value) { @color[i] = value if value.is_a?(Float) && (0.0..1.0).include?(value) })
|
33
34
|
end
|
34
35
|
|
35
36
|
%w'h s l'.each_with_index do |m, i|
|
36
37
|
define_method("#{m}", ->() { hsl[i] })
|
37
38
|
end
|
38
39
|
|
39
|
-
# Set alpha value. Only accepts float values
|
40
|
-
# @param [Float] alpha
|
41
|
-
def a=(alpha)
|
42
|
-
@color[3] = alpha if alpha.is_a?(Float) && (0.0..1.0).include?(alpha)
|
43
|
-
end
|
44
40
|
|
45
41
|
# Returns an array with the rgb components
|
46
42
|
# @return [Array]
|
@@ -48,11 +44,6 @@ module Pigment
|
|
48
44
|
@color[0, 3]
|
49
45
|
end
|
50
46
|
|
51
|
-
def hsl
|
52
|
-
to_hsl unless @hsl
|
53
|
-
@hsl
|
54
|
-
end
|
55
|
-
|
56
47
|
# Return specified color by its name from the named_colors hash.
|
57
48
|
# @param [Symbol] name
|
58
49
|
# @return [Color]
|
@@ -179,6 +170,11 @@ module Pigment
|
|
179
170
|
color.is_a?(Color) && color.rgb == rgb
|
180
171
|
end
|
181
172
|
|
173
|
+
# @return [Color]
|
174
|
+
def dup
|
175
|
+
self.class.new(*@color)
|
176
|
+
end
|
177
|
+
|
182
178
|
# Converts a color to its grayscale correspondent
|
183
179
|
# @return [Color]
|
184
180
|
def grayscale
|
@@ -227,10 +223,11 @@ module Pigment
|
|
227
223
|
# @param [Array of Symbols] channels
|
228
224
|
# @return [Color]
|
229
225
|
def remove_channels(*channels)
|
230
|
-
|
231
|
-
g
|
232
|
-
|
233
|
-
|
226
|
+
color = self.class.new(r, g, b, a)
|
227
|
+
%w'r g b a'.each do |attr|
|
228
|
+
color.send("#{attr}=", 0) if channels.include? attr.to_sym
|
229
|
+
end
|
230
|
+
color
|
234
231
|
end
|
235
232
|
|
236
233
|
# Creates an instance variable to keep the HSL values of a RGB color.
|
@@ -269,21 +266,21 @@ module Pigment
|
|
269
266
|
# Returns an array of the color components. Alpha value is passed as well if with_alpha is set to true.
|
270
267
|
# @param [Boolean] with_alpha
|
271
268
|
# @return [Array]
|
272
|
-
def to_floats(with_alpha =
|
269
|
+
def to_floats(with_alpha = true)
|
273
270
|
with_alpha ? @color.dup : rgb
|
274
271
|
end
|
275
272
|
|
276
273
|
# Returns an array of the color components. Alpha value is passed as well if with_alpha is set to true.
|
277
274
|
# @param [Boolean] with_alpha
|
278
275
|
# @return [Array]
|
279
|
-
def to_ints(with_alpha =
|
276
|
+
def to_ints(with_alpha = true)
|
280
277
|
to_floats(with_alpha).map { |v| Integer(v * 255) }
|
281
278
|
end
|
282
279
|
|
283
280
|
# Returns an array of the color components. Alpha value is passed as well if with_alpha is set to true.
|
284
281
|
# @param [Boolean] with_alpha
|
285
282
|
# @return [Array]
|
286
|
-
def to_hex(with_alpha =
|
283
|
+
def to_hex(with_alpha = true)
|
287
284
|
to_ints(with_alpha).map { |v| '%02x' % v }.join
|
288
285
|
end
|
289
286
|
|
@@ -303,6 +300,7 @@ module Pigment
|
|
303
300
|
alias_method :to_a, :to_floats
|
304
301
|
alias_method :to_ary, :to_floats
|
305
302
|
alias_method :to_f, :to_floats
|
303
|
+
alias_method :to_hsl, :hsl
|
306
304
|
end
|
307
305
|
end
|
308
306
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pigment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-12-
|
13
|
+
date: 2012-12-28 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: A rgb color gem, with a list of 750 different colors defined within 869
|
16
16
|
names.
|
@@ -26,11 +26,13 @@ files:
|
|
26
26
|
- README.md
|
27
27
|
homepage: https://github.com/P3t3rU5/pigment
|
28
28
|
licenses: []
|
29
|
-
post_install_message: ! "
|
30
|
-
for choosing Pigment.\n\n
|
31
|
-
Changes:\n -
|
29
|
+
post_install_message: ! "+----------------------------------------------------------------------------+\n
|
30
|
+
\ Thanks for choosing Pigment.\n\n ==========================================================================\n
|
31
|
+
\ 0.2.0 Changes:\n - WARNING: Color#to_floats now returns alpha by default\n
|
32
|
+
\ - Added Color#dup\n - Dynamically defined setters for r, g and b\n - Removed
|
33
|
+
Color#hsl\n - Corrected Color#remove_channels\n ==========================================================================\n\n
|
32
34
|
\ If you like what you see, support us on Pledgie:\n http://www.pledgie.com/campaigns/18945\n\n
|
33
|
-
\ If you find any bugs, please report them on\n https://github.com/P3t3rU5/pigment/issues\n\n
|
35
|
+
\ If you find any bugs, please report them on\n https://github.com/P3t3rU5/pigment/issues\n\n+----------------------------------------------------------------------------+\n"
|
34
36
|
rdoc_options: []
|
35
37
|
require_paths:
|
36
38
|
- lib
|