colir 0.0.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.
@@ -0,0 +1,10 @@
1
+ require 'bacon'
2
+ require 'pry'
3
+
4
+ require_relative '../lib/colir'
5
+
6
+ puts "Ruby: #{ RUBY_VERSION }; Colir version: #{ Colir::VERSION }"
7
+
8
+ def kind_of(klass)
9
+ lambda { |obj| obj.kind_of?(klass) }
10
+ end
@@ -0,0 +1,69 @@
1
+ require_relative '../helper'
2
+
3
+ describe Colir::HSLRGB::HSL do
4
+
5
+ describe "::valid_hsl?" do
6
+ describe "parameters" do
7
+ it "returns false if it's too long" do
8
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0, 0, 0]).should.be.equal false
9
+ end
10
+
11
+ it "returns false if it's too short" do
12
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0]).should.be.equal false
13
+ end
14
+
15
+ describe "H" do
16
+ it "returns true if it's coverd by the range" do
17
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0, 0]).should.be.equal true
18
+ Colir::HSLRGB::HSL.valid_hsl?([360, 0.9, 0.9]).should.be.equal true
19
+ end
20
+
21
+ it "returns false if it's too low" do
22
+ Colir::HSLRGB::HSL.valid_hsl?([-1, 0, 0]).should.be.equal false
23
+ end
24
+
25
+ it "returns false if it's too high" do
26
+ Colir::HSLRGB::HSL.valid_hsl?([361, 1, 1]).should.be.equal false
27
+ end
28
+
29
+ it "returns false if it's not integer" do
30
+ Colir::HSLRGB::HSL.valid_hsl?([359.1, 0, 0]).should.be.equal false
31
+ Colir::HSLRGB::HSL.valid_hsl?(
32
+ [Rational(3591, 10), 0, 0]
33
+ ).should.be.equal false
34
+ end
35
+ end
36
+
37
+ describe "S" do
38
+ it "returns true if it's coverd by the range" do
39
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0, 0]).should.be.equal true
40
+ Colir::HSLRGB::HSL.valid_hsl?([360, 0.9, 0.9]).should.be.equal true
41
+ end
42
+
43
+ it "returns false if it's too low" do
44
+ Colir::HSLRGB::HSL.valid_hsl?([0, -0.1, 0]).should.be.equal false
45
+ end
46
+
47
+ it "returns false if it's too high" do
48
+ Colir::HSLRGB::HSL.valid_hsl?([360, 1.1, 1]).should.be.equal false
49
+ end
50
+ end
51
+
52
+ describe "L" do
53
+ it "returns true if it's coverd by the range" do
54
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0, 0]).should.be.equal true
55
+ Colir::HSLRGB::HSL.valid_hsl?([360, 0.9, 0.9]).should.be.equal true
56
+ end
57
+
58
+ it "returns false if it's too low" do
59
+ Colir::HSLRGB::HSL.valid_hsl?([0, 0, -0.1]).should.be.equal false
60
+ end
61
+
62
+ it "returns false if it's too high" do
63
+ Colir::HSLRGB::HSL.valid_hsl?([360, 1, 1.1]).should.be.equal false
64
+ end
65
+ end
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,80 @@
1
+ require_relative '../helper'
2
+
3
+ describe Colir::HSLRGB::RGB do
4
+
5
+ describe "::valid_rgb?" do
6
+ describe "parameters" do
7
+ it "returns false if it's too long" do
8
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 255, 255]).should.be.equal false
9
+ end
10
+
11
+ it "returns false if it's too short" do
12
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255]).should.be.equal false
13
+ end
14
+
15
+ describe "R" do
16
+ it "returns true if it's coverd by the range" do
17
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 255]).should.be.equal true
18
+ end
19
+
20
+ it "returns false if it's too low" do
21
+ Colir::HSLRGB::RGB.valid_rgb?([-1, 0, 0]).should.be.equal false
22
+ end
23
+
24
+ it "returns false if it's too high" do
25
+ Colir::HSLRGB::RGB.valid_rgb?([256, 255, 255]).should.be.equal false
26
+ end
27
+
28
+ it "returns false if it's not integer" do
29
+ Colir::HSLRGB::RGB.valid_rgb?([254.1, 255, 255]).should.be.equal false
30
+ Colir::HSLRGB::RGB.valid_rgb?(
31
+ [Rational(2541, 10), 255, 255]
32
+ ).should.be.equal false
33
+ end
34
+ end
35
+
36
+ describe "G" do
37
+ it "returns true if it's coverd by the range" do
38
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 255]).should.be.equal true
39
+ end
40
+
41
+ it "returns false if it's too low" do
42
+ Colir::HSLRGB::RGB.valid_rgb?([0, -1, 0]).should.be.equal false
43
+ end
44
+
45
+ it "returns false if it's too high" do
46
+ Colir::HSLRGB::RGB.valid_rgb?([255, 256, 255]).should.be.equal false
47
+ end
48
+
49
+ it "returns false if it's not integer" do
50
+ Colir::HSLRGB::RGB.valid_rgb?([255, 254.1, 255]).should.be.equal false
51
+ Colir::HSLRGB::RGB.valid_rgb?(
52
+ [255, Rational(2541, 10), 255]
53
+ ).should.be.equal false
54
+ end
55
+ end
56
+
57
+ describe "B" do
58
+ it "returns true if it's coverd by the range" do
59
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 255]).should.be.equal true
60
+ end
61
+
62
+ it "returns false if it's too low" do
63
+ Colir::HSLRGB::RGB.valid_rgb?([0, 0, -1]).should.be.equal false
64
+ end
65
+
66
+ it "returns false if it's too high" do
67
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 256]).should.be.equal false
68
+ end
69
+
70
+ it "returns false if it's not integer" do
71
+ Colir::HSLRGB::RGB.valid_rgb?([255, 255, 254.1]).should.be.equal false
72
+ Colir::HSLRGB::RGB.valid_rgb?(
73
+ [255, 255, Rational(2541, 10)]
74
+ ).should.be.equal false
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ end
@@ -0,0 +1,206 @@
1
+ require_relative 'helper'
2
+
3
+ describe Colir::HSLRGB do
4
+
5
+ describe "::rgb_to_hsl" do
6
+ it "converts black RGB colour to its HSL equivalent" do
7
+ Colir::HSLRGB.rgb_to_hsl(0x00, 0x00, 0x00).should == [0, 0, 0]
8
+ end
9
+
10
+ it "converts white RGB colour to its HSL equivalent" do
11
+ Colir::HSLRGB.rgb_to_hsl(0xff, 0xff, 0xff).should == [0, 0, 1]
12
+ end
13
+
14
+ it "converts reddish RGB colour to its HSL equivalent" do
15
+ Colir::HSLRGB.rgb_to_hsl(0x99, 0x00, 0x00).should == [0, 1.0, 0.3]
16
+ end
17
+
18
+ it "converts orangish RGB colour to its HSL equivalent" do
19
+ hsl = Colir::HSLRGB.rgb_to_hsl(0xff, 0xa3, 0x19)
20
+ hsl[0].should == 36
21
+ hsl[1].should == 1.0
22
+ hsl[2].round(2).should == 0.55
23
+ end
24
+
25
+ it "converts yellowish RGB colour to its HSL equivalent" do
26
+ hsl = Colir::HSLRGB.rgb_to_hsl(0xff, 0xff, 0x19)
27
+ hsl[0].should == 60
28
+ hsl[1].should == 1.0
29
+ hsl[2].round(2).should == 0.55
30
+ end
31
+
32
+ it "converts greenish RGB colour to its HSL equivalent" do
33
+ Colir::HSLRGB.rgb_to_hsl(0x33, 0xcc, 0x33).should == [120, 0.6, 0.5]
34
+ end
35
+
36
+ it "converts bluish RGB colour to its HSL equivalent" do
37
+ hsl = Colir::HSLRGB.rgb_to_hsl(0x19, 0xff, 0xff)
38
+ hsl[0].should == 180
39
+ hsl[1].should == 1.0
40
+ hsl[2].round(2) == 0.55
41
+ end
42
+
43
+ it "converts indigish RGB colour to its HSL equivalent" do
44
+ Colir::HSLRGB.rgb_to_hsl(0x00, 0x66, 0xff).should == [216, 1.0, 0.5]
45
+ end
46
+
47
+ it "converts violetish RGB colour to its HSL equivalent" do
48
+ Colir::HSLRGB.rgb_to_hsl(0x99, 0x33, 0xff).should == [270, 1.0, 0.6]
49
+ end
50
+
51
+ describe "return value" do
52
+ before do
53
+ @hsl = Colir::HSLRGB.rgb_to_hsl(0xaf, 0xfe, 0x39)
54
+ end
55
+
56
+ it "should be Array" do
57
+ @hsl.should.be kind_of(Array)
58
+ end
59
+
60
+ it "returns an integer hue" do
61
+ @hsl[0].should.be kind_of(Integer)
62
+ end
63
+
64
+ it "returns a BigDecimal saturation" do
65
+ @hsl[1].should.be kind_of(BigDecimal)
66
+ end
67
+
68
+ it "returns a BigDecimal lightness" do
69
+ @hsl[2].should.be kind_of(BigDecimal)
70
+ end
71
+ end
72
+
73
+ describe "parameters" do
74
+ describe "R" do
75
+ it "raises RangeError if it's too low" do
76
+ should.raise(RangeError) {
77
+ Colir::HSLRGB.rgb_to_hsl(-1, 0, 0)
78
+ }.message =~ /out of allowed RGB values \(0-255\)/
79
+ end
80
+
81
+ it "raises RangeError if it's too high" do
82
+ should.raise(RangeError) {
83
+ Colir::HSLRGB.rgb_to_hsl(256, 255, 255)
84
+ }.message =~ /out of allowed RGB values \(0-255\)/
85
+ end
86
+ end
87
+
88
+ describe "G" do
89
+ it "raises RangeError if it's too low" do
90
+ should.raise(RangeError) {
91
+ Colir::HSLRGB.rgb_to_hsl(0, -1, 0)
92
+ }.message =~ /out of allowed RGB values \(0-255\)/
93
+ end
94
+
95
+ it "raises RangeError if it's too high" do
96
+ should.raise(RangeError) {
97
+ Colir::HSLRGB.rgb_to_hsl(255, 256, 255)
98
+ }.message =~ /out of allowed RGB values \(0-255\)/
99
+ end
100
+
101
+ end
102
+
103
+ describe "B" do
104
+ it "raises RangeError if it's too low" do
105
+ should.raise(RangeError) {
106
+ Colir::HSLRGB.rgb_to_hsl(0, 0, -1)
107
+ }.message =~ /out of allowed RGB values \(0-255\)/
108
+ end
109
+
110
+ it "raises RangeError if it's too high" do
111
+ should.raise(RangeError) {
112
+ Colir::HSLRGB.rgb_to_hsl(255, 255, 256)
113
+ }.message =~ /out of allowed RGB values \(0-255\)/
114
+ end
115
+ end
116
+ end
117
+ end
118
+
119
+ describe "::hsl_to_rgb" do
120
+ it "converts black HSL colour to its RGB equivalent" do
121
+ Colir::HSLRGB.hsl_to_rgb(0, 0, 0).should == [0, 0, 0]
122
+ end
123
+
124
+ it "converts white HSL colour to its RGB equivalent" do
125
+ Colir::HSLRGB.hsl_to_rgb(0, 0, 1.0).should == [0xff, 0xff, 0xff]
126
+ end
127
+
128
+ it "converts greyish HSL colour to its RGB equivalent" do
129
+ Colir::HSLRGB.hsl_to_rgb(360, 0, 0.8).should == [0xcc, 0xcc, 0xcc]
130
+ end
131
+
132
+ it "converts reddish HSL colour to its RGB equivalent" do
133
+ Colir::HSLRGB.hsl_to_rgb(0, 1.0, 0.3).should == [0x99, 0x00, 0x00]
134
+ end
135
+
136
+ it "converts orangish HSL colour to its RGB equivalent" do
137
+ Colir::HSLRGB.hsl_to_rgb(36, 1.0, 0.55).should == [0xff, 0xa3, 0x1a]
138
+ end
139
+
140
+ it "converts yellowish HSL colour to its RGB equivalent" do
141
+ Colir::HSLRGB.hsl_to_rgb(60, 1.0, 0.55).should == [0xff, 0xff, 0x1a]
142
+ end
143
+
144
+ it "converts greenish HSL colour to its RGB equivalent" do
145
+ Colir::HSLRGB.hsl_to_rgb(120, 0.6, 0.5).should == [0x33, 0xcc, 0x33]
146
+ end
147
+
148
+ it "converts bluish HSL colour to its RGB equivalent" do
149
+ Colir::HSLRGB.hsl_to_rgb(180, 1.0, 0.55).should == [0x1a, 0xff, 0xff]
150
+ end
151
+
152
+ it "converts indigish HSL colour to its RGB equivalent" do
153
+ Colir::HSLRGB.hsl_to_rgb(216, 1.0, 0.5).should == [0x00, 0x66, 0xff]
154
+ end
155
+
156
+ it "converts violetish HSL colour to its RGB equivalent" do
157
+ Colir::HSLRGB.hsl_to_rgb(270, 1.0, 0.6).should == [0x99, 0x33, 0xff]
158
+ end
159
+
160
+ describe "parameters" do
161
+ describe "H" do
162
+ it "raises RangeError if it's too low" do
163
+ should.raise(RangeError) {
164
+ Colir::HSLRGB.hsl_to_rgb(-1, 0, 0)
165
+ }.message =~ /out of allowed HSL values/
166
+ end
167
+
168
+ it "raises RangeError if it's too high" do
169
+ should.raise(RangeError) {
170
+ Colir::HSLRGB.hsl_to_rgb(361, 1, 1)
171
+ }.message =~ /out of allowed HSL values/
172
+ end
173
+ end
174
+
175
+ describe "S" do
176
+ it "raises RangeError if it's too low" do
177
+ should.raise(RangeError) {
178
+ Colir::HSLRGB.hsl_to_rgb(0, -0.1, 0)
179
+ }.message =~ /out of allowed HSL values/
180
+ end
181
+
182
+ it "raises RangeError if it's too high" do
183
+ should.raise(RangeError) {
184
+ Colir::HSLRGB.hsl_to_rgb(360, 1.1, 1)
185
+ }.message =~ /out of allowed HSL values/
186
+ end
187
+
188
+ end
189
+
190
+ describe "L" do
191
+ it "raises RangeError if it's too low" do
192
+ should.raise(RangeError) {
193
+ Colir::HSLRGB.hsl_to_rgb(0, 1, -0.1)
194
+ }.message =~ /out of allowed HSL values/
195
+ end
196
+
197
+ it "raises RangeError if it's too high" do
198
+ should.raise(RangeError) {
199
+ Colir::HSLRGB.hsl_to_rgb(360, 1, 1.1)
200
+ }.message =~ /out of allowed HSL values/
201
+ end
202
+ end
203
+ end
204
+ end
205
+ end
206
+
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: colir
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kyrylo Silin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bacon
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: This library is about HEX colours.
56
+ email: kyrylosilin@gmail.com
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - .gitignore
62
+ - .travis.yml
63
+ - CHANGELOG.md
64
+ - Gemfile
65
+ - LICENCE
66
+ - README.md
67
+ - Rakefile
68
+ - VERSION
69
+ - colir.gemspec
70
+ - lib/colir.rb
71
+ - lib/colir/hslrgb.rb
72
+ - spec/colir_spec.rb
73
+ - spec/helper.rb
74
+ - spec/hslrgb/hsl_spec.rb
75
+ - spec/hslrgb/rgb_spec.rb
76
+ - spec/hslrgb_spec.rb
77
+ homepage: https://github.com/kyrylo/colir
78
+ licenses:
79
+ - zlib
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 2.0.3
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: Colir means colour in Ukrainan. In Ruby it means HEX colour
101
+ test_files: []
102
+ has_rdoc: