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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24ce36631830f102fc0cd3d11019e69bbea29e1f
4
- data.tar.gz: bee007872ff22a1e3c824479db0c4bbb468f9a8e
3
+ metadata.gz: c65562e11219849f7464cd32a0f6e94b016b12ec
4
+ data.tar.gz: bf22917f61d895f4ac42fe18375e2ffe18c63fbb
5
5
  SHA512:
6
- metadata.gz: 69b662064beea8015ca13e4625c0ea0d1d25957ed5e9270b8757cc82f525ec918adaa9dd5b4ad3cc023b54cd31072240b2163c10cc6f586a1e4232101ef7977d
7
- data.tar.gz: 45fda68e90ce3f139da1c90c2a21263cc21b2451a6bfe34c27a26aad87423b28e20d4ec4575be969585f1998b42d602f9428bee996010def25891e66c3f1089b
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
- color_code = Color::RGB.new(0,0,0)
27
- color_name = Colorname.find(color_code)
28
- puts color_name # black
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
@@ -2,29 +2,28 @@
2
2
  module Colorname
3
3
  class << self
4
4
  def base(*cc)
5
- base = base_color make_color *cc
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 ? :Black : :White
12
+ cc.red < 127 ? :black : :white
14
13
  elsif cc.red == cc.green && cc.red > cc.blue
15
- [:Red, :Green]
14
+ [:red, :green]
16
15
  elsif cc.red == cc.blue && cc.red > cc.green
17
- [:Red, :Blue]
16
+ [:red, :blue]
18
17
  elsif cc.green == cc.blue && cc.green > cc.red
19
- [:Green, :Blue]
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
- :Red
22
+ [:red]
24
23
  when 1
25
- :Green
24
+ [:green]
26
25
  when 2
27
- :Blue
26
+ [:blue]
28
27
  end
29
28
  end
30
29
  end
@@ -2,12 +2,33 @@
2
2
  module Colorname
3
3
  class << self
4
4
  def find(*cc)
5
- decide_color make_color *cc
5
+ decide make_color *cc
6
6
  end
7
7
 
8
8
  private
9
- def decide_color(cc)
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
@@ -1,3 +1,3 @@
1
1
  module Colorname
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colorname
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - celilileri