pigment 0.3.0 → 0.3.1
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 +4 -4
- data/CHANGELOG.md +12 -0
- data/LICENSE.md +1 -1
- data/lib/pigment/color/hsl.rb +6 -2
- data/lib/pigment/color/rgb.rb +13 -9
- data/lib/pigment/float_snap.rb +1 -1
- data/lib/pigment/palette.rb +1 -0
- data/lib/pigment/version.rb +1 -1
- metadata +15 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79ec5aef1ab5b45b400c11d9b56cd5dda30e191962bff97a91bfa9ba461d28ed
|
4
|
+
data.tar.gz: f684c0abf44be4e7d466f9acdbb4317510bd3b334004b8168c440dda089c50db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aab005b7c4e84a23a9f1c515d27314f2f994a57c2f7bad76be1dbecc89285b3fe6793244fc414bf8786745212d6292e807a27062ace6be41c637dcc7a161a0be
|
7
|
+
data.tar.gz: 868457b116af47ae1c7601c5c541d43926cc5002e109823654ea67c7fb167660132c0fbad6f34ac55e1b0db0f52798f3eef727d27322df5117c3e60df36e658b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.3.1
|
2
|
+
- Fixes creating colors with approximation errors:
|
3
|
+
```ruby
|
4
|
+
# before 0.3.1
|
5
|
+
BrilliantLavender.analogous
|
6
|
+
# Invalid Format [0.8063725490196079, 1.0000000000000004, 0.8666666666666667, 1.0]
|
7
|
+
|
8
|
+
# after 0.3.1
|
9
|
+
BrilliantLavender.analogous
|
10
|
+
# RGB Color(red: 0.8063725490196079, green: 1.0, blue: 0.8666666666666667, alpha: 1.0)
|
11
|
+
```
|
12
|
+
|
1
13
|
# 0.3.0
|
2
14
|
- New classes per Color Format
|
3
15
|
- Pigment::Color::RGB
|
data/LICENSE.md
CHANGED
data/lib/pigment/color/hsl.rb
CHANGED
@@ -53,10 +53,14 @@ module Pigment
|
|
53
53
|
# @param [#to_f] saturation between 0.0 and 1.0
|
54
54
|
# @param [#to_f] lightness between 0.0 and 1.0
|
55
55
|
# @param [#to_f] alpha between 0.0 and 1.0
|
56
|
-
# @raise [InvalidColorFormatError]
|
57
56
|
# @return [Pigment::Color::HSL]
|
57
|
+
# @raise [InvalidColorFormatError]
|
58
58
|
def initialize(hue, saturation, lightness, alpha = 1.0)
|
59
|
-
@hue
|
59
|
+
@hue = hue % 1.0
|
60
|
+
@saturation = saturation.to_f.snap
|
61
|
+
@lightness = lightness.to_f.snap
|
62
|
+
@alpha = alpha.to_f.snap
|
63
|
+
|
60
64
|
color = to_f(with_alpha: true)
|
61
65
|
raise InvalidColorFormatError, color unless color.all? { |c| c.between?(0.0, 1.0) }
|
62
66
|
end
|
data/lib/pigment/color/rgb.rb
CHANGED
@@ -12,8 +12,8 @@ module Pigment
|
|
12
12
|
class << self
|
13
13
|
# Converts a color into RGB format from any possible format
|
14
14
|
# @param [Pigment::Color] color
|
15
|
-
# @raise [InvalidColorFormatError]
|
16
15
|
# @return [Pigment::Color]
|
16
|
+
# @raise [InvalidColorFormatError]
|
17
17
|
def convert(color)
|
18
18
|
case color
|
19
19
|
when RGB then color
|
@@ -23,9 +23,9 @@ module Pigment
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# Creates a Pigment::Color::RGB from an HTML Hex code String
|
26
|
-
# @param [String, Integer] hex
|
27
|
-
# @raise [InvalidColorFormatError]
|
26
|
+
# @param [String, Integer, Float] hex
|
28
27
|
# @return [Pigment::Color::RGB]
|
28
|
+
# @raise [InvalidColorFormatError]
|
29
29
|
def from_hex(hex)
|
30
30
|
case hex
|
31
31
|
when String then from_hex_string(hex)
|
@@ -40,8 +40,8 @@ module Pigment
|
|
40
40
|
# @param [Integer] green
|
41
41
|
# @param [Integer] blue
|
42
42
|
# @param [Integer] alpha
|
43
|
-
# @raise [InvalidColorFormatError]
|
44
43
|
# @return [Pigment::Color::RGB]
|
44
|
+
# @raise [InvalidColorFormatError]
|
45
45
|
def from_rgba_integers(red, green, blue, alpha = 255)
|
46
46
|
color = [red, green, blue, alpha]
|
47
47
|
raise InvalidColorFormatError, color unless color.all? do |c|
|
@@ -126,18 +126,22 @@ module Pigment
|
|
126
126
|
# @param [Float, Integer] green between 0.0 and 1.0
|
127
127
|
# @param [Float, Integer] blue between 0.0 and 1.0
|
128
128
|
# @param [Float, Integer] alpha between 0.0 and 1.0
|
129
|
-
# @raise [InvalidColorFormatError]
|
130
129
|
# @return [Pigment::Color::RGB]
|
130
|
+
# @raise [InvalidColorFormatError]
|
131
131
|
def initialize(red, green, blue, alpha = 1.0)
|
132
|
-
@red
|
132
|
+
@red = red.to_f.snap
|
133
|
+
@green = green.to_f.snap
|
134
|
+
@blue = blue.to_f.snap
|
135
|
+
@alpha = alpha.to_f
|
136
|
+
|
133
137
|
color = to_floats(with_alpha: true)
|
134
138
|
raise InvalidColorFormatError, color unless color.all? { |c| c.between?(0.0, 1.0) }
|
135
139
|
end
|
136
140
|
|
137
141
|
# Sums all the two colors components. If any component gets out of the 0 to 1.0 range it gets suppressed.
|
138
142
|
# @param [Pigment::Color] color
|
139
|
-
# @raise [InvalidColorFormatError]
|
140
143
|
# @return [Pigment::Color::RGB]
|
144
|
+
# @raise [InvalidColorFormatError]
|
141
145
|
def +(color)
|
142
146
|
raise InvalidColorFormatError, color unless color.is_a?(Pigment::Color)
|
143
147
|
color = color.into(self.class)
|
@@ -153,8 +157,8 @@ module Pigment
|
|
153
157
|
# Subtracts all the two color components. If any component gets out of the 0 to 1.0 range it gets suppressed.
|
154
158
|
# Tone component will be 0 if it gets lower than 0
|
155
159
|
# @param [Pigment::Color] color
|
156
|
-
# @raise [InvalidColorFormatError]
|
157
160
|
# @return [Pigment::Color::RGB]
|
161
|
+
# @raise [InvalidColorFormatError]
|
158
162
|
def -(color)
|
159
163
|
raise InvalidColorFormatError, color unless color.is_a?(Pigment::Color)
|
160
164
|
color = color.into(self.class)
|
@@ -209,8 +213,8 @@ module Pigment
|
|
209
213
|
# Interpolates two colors. Amount must be an float between -1.0 and 1.0
|
210
214
|
# @param [Pigment::Color] color
|
211
215
|
# @param [Float] amount
|
212
|
-
# @raise [InvalidColorFormatError]
|
213
216
|
# @return [Pigment::Color::RGB]
|
217
|
+
# @raise [InvalidColorFormatError]
|
214
218
|
def interpolate(color, amount = 0.5)
|
215
219
|
raise InvalidColorFormatError, color unless color.is_a?(Pigment::Color)
|
216
220
|
raise ArgumentError, "Amount must be an float between -1.0 and 1.0, got #{amount}" unless (-1.0..1.0).include?(amount)
|
data/lib/pigment/float_snap.rb
CHANGED
data/lib/pigment/palette.rb
CHANGED
@@ -36,6 +36,7 @@ module Pigment
|
|
36
36
|
# @param [Array] names
|
37
37
|
# @param [Pigment::Color] color
|
38
38
|
# @return [Pigment::Color]
|
39
|
+
# @raise ArgumentError
|
39
40
|
def []=(*names, color)
|
40
41
|
raise ArgumentError, "Expects Pigment::Color but got #{color.inspect}" unless color.is_a? Pigment::Color
|
41
42
|
names.each { |name| @colors[name] = color }
|
data/lib/pigment/version.rb
CHANGED
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.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- P3t3rU5
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '0
|
48
|
+
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '0
|
55
|
+
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rake
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,20 +106,16 @@ homepage: https://github.com/P3t3rU5/pigment
|
|
106
106
|
licenses:
|
107
107
|
- MIT
|
108
108
|
metadata: {}
|
109
|
-
post_install_message:
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
- New classes
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
--------------------------------------------------------------------------
|
120
|
-
If you find any bugs, please report them on
|
121
|
-
https://github.com/P3t3rU5/pigment/issues
|
122
|
-
+----------------------------------------------------------------------------+
|
109
|
+
post_install_message: "+----------------------------------------------------------------------------+\n
|
110
|
+
\ Thanks for choosing Pigment.\n --------------------------------------------------------------------------\n#
|
111
|
+
0.3.1\n- Fixes creating colors with approximation errors:\n```ruby\n# before 0.3.1\nBrilliantLavender.analogous\n#
|
112
|
+
Invalid Format [0.8063725490196079, 1.0000000000000004, 0.8666666666666667, 1.0]\n\n#
|
113
|
+
after 0.3.1 \nBrilliantLavender.analogous\n# RGB Color(red: 0.8063725490196079,
|
114
|
+
green: 1.0, blue: 0.8666666666666667, alpha: 1.0)\n```\n\n# 0.3.0\n- New classes
|
115
|
+
per Color Format\n - Pigment::Color::RGB\n - Pigment::Color::HSL\n- Base module
|
116
|
+
for Color Formats Pigment::Color\n- Palette class to handle a collection of colors\n
|
117
|
+
\ --------------------------------------------------------------------------\n If
|
118
|
+
you find any bugs, please report them on\n https://github.com/P3t3rU5/pigment/issues\n+----------------------------------------------------------------------------+\n"
|
123
119
|
rdoc_options: []
|
124
120
|
require_paths:
|
125
121
|
- lib
|
@@ -134,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
130
|
- !ruby/object:Gem::Version
|
135
131
|
version: '0'
|
136
132
|
requirements: []
|
137
|
-
rubygems_version: 3.
|
133
|
+
rubygems_version: 3.2.25
|
138
134
|
signing_key:
|
139
135
|
specification_version: 4
|
140
136
|
summary: A rgb color gem, with a list of 750 different colors.
|