colorname 0.1.1 → 0.1.2

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 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