colorname 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +27 -7
- data/lib/colorname/base.rb +8 -9
- data/lib/colorname/find.rb +24 -3
- data/lib/colorname/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c65562e11219849f7464cd32a0f6e94b016b12ec
|
4
|
+
data.tar.gz: bf22917f61d895f4ac42fe18375e2ffe18c63fbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aef8509f8235dc9eec72f3b9be349cb817a50a70ac08ffc4554d122d84dd7a246254a8eaaf78ee45d0fab726b4478c859e735ac8ce5c2075c9242ee21aad6f60
|
7
|
+
data.tar.gz: 785559f562ccd0cef2de79ae6175604eaae2b131724139e065f120e2820ebb399def2d46df1cfd2a4183fccd9bc6f5d00cae13955a81ac1a30e8f9c753dd46d7
|
data/README.md
CHANGED
@@ -6,6 +6,13 @@ Ruby Gem for decide name of a given color.
|
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
+
### Easy Gem Installation
|
10
|
+
|
11
|
+
```shell
|
12
|
+
$ gem install colorname
|
13
|
+
```
|
14
|
+
### Gemfile Integration
|
15
|
+
|
9
16
|
Add this line to your application's Gemfile:
|
10
17
|
|
11
18
|
```ruby
|
@@ -16,16 +23,29 @@ And then execute:
|
|
16
23
|
```
|
17
24
|
$ bundle
|
18
25
|
```
|
19
|
-
Or install it yourself as:
|
20
|
-
```
|
21
|
-
$ gem install colorname
|
22
|
-
```
|
23
26
|
## Usage
|
24
27
|
|
25
28
|
```ruby
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
+
Colorname.find 'f0f8ff' # [:aliceblue]
|
30
|
+
|
31
|
+
Colorname.find '#00ffff' # [:aqua, :cyan]
|
32
|
+
|
33
|
+
Colorname.find 143, 188, 143 # [:darkseagreen]
|
34
|
+
|
35
|
+
Colorname.find Color::RGB.new(255, 0, 255) # [:fuchsia, :magenta]
|
36
|
+
```
|
37
|
+
|
38
|
+
To find dominant base color name
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
Colorname.base '32cd32' # [:green]
|
42
|
+
|
43
|
+
Colorname.base '#FF00CC' # [:red]
|
44
|
+
|
45
|
+
Colorname.base 25, 150, 255 # [:blue]
|
46
|
+
|
47
|
+
Colorname.base Color::RGB.new(255, 0, 255) # [:red, :blue]
|
48
|
+
|
29
49
|
```
|
30
50
|
|
31
51
|
## Contributing
|
data/lib/colorname/base.rb
CHANGED
@@ -2,29 +2,28 @@
|
|
2
2
|
module Colorname
|
3
3
|
class << self
|
4
4
|
def base(*cc)
|
5
|
-
|
6
|
-
base.is_a?(Array) ? base.join(' ') : base
|
5
|
+
base_color make_color *cc
|
7
6
|
end
|
8
7
|
|
9
8
|
private
|
10
9
|
def base_color(cc)
|
11
10
|
if cc.red == cc.green && cc.green == cc.blue
|
12
11
|
# XXX Should add grey?
|
13
|
-
cc.red < 127 ? :
|
12
|
+
cc.red < 127 ? :black : :white
|
14
13
|
elsif cc.red == cc.green && cc.red > cc.blue
|
15
|
-
[:
|
14
|
+
[:red, :green]
|
16
15
|
elsif cc.red == cc.blue && cc.red > cc.green
|
17
|
-
[:
|
16
|
+
[:red, :blue]
|
18
17
|
elsif cc.green == cc.blue && cc.green > cc.red
|
19
|
-
[:
|
18
|
+
[:green, :blue]
|
20
19
|
else
|
21
20
|
case [cc.red, cc.green, cc.blue].each_with_index.max[1]
|
22
21
|
when 0
|
23
|
-
:
|
22
|
+
[:red]
|
24
23
|
when 1
|
25
|
-
:
|
24
|
+
[:green]
|
26
25
|
when 2
|
27
|
-
:
|
26
|
+
[:blue]
|
28
27
|
end
|
29
28
|
end
|
30
29
|
end
|
data/lib/colorname/find.rb
CHANGED
@@ -2,12 +2,33 @@
|
|
2
2
|
module Colorname
|
3
3
|
class << self
|
4
4
|
def find(*cc)
|
5
|
-
|
5
|
+
decide make_color *cc
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
|
-
def
|
10
|
-
VALUES.select{|_, val| val == [cc.red, cc.green, cc.blue]}.keys
|
9
|
+
def decide(cc)
|
10
|
+
result = VALUES.select{|_, val| val == [cc.red, cc.green, cc.blue]}.keys
|
11
|
+
result.empty? ? (closest(cc)) : result
|
12
|
+
end
|
13
|
+
|
14
|
+
def closest(cc)
|
15
|
+
diff = 100
|
16
|
+
similar = :undefined
|
17
|
+
VALUES.each do |key, val|
|
18
|
+
new_diff = cdiff(cc,val)
|
19
|
+
if new_diff < diff
|
20
|
+
diff = new_diff
|
21
|
+
similar = key
|
22
|
+
end
|
23
|
+
end
|
24
|
+
similar
|
25
|
+
end
|
26
|
+
|
27
|
+
def cdiff(real, guess)
|
28
|
+
r_diff = ((real.red - guess[0])/real.red).abs/100.0
|
29
|
+
g_diff = ((real.green - guess[1])/real.green).abs/100.0
|
30
|
+
b_diff = ((real.blue - guess[2])/real.blue).abs/100.0
|
31
|
+
r_diff + g_diff + b_diff
|
11
32
|
end
|
12
33
|
end
|
13
34
|
end
|
data/lib/colorname/version.rb
CHANGED