reggieb 0.0.1 → 0.1.0
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.
- data/CHANGELOG +6 -0
- data/README +11 -6
- data/Rakefile +4 -2
- data/lib/reggieb.rb +9 -0
- data/test/reggieb_test.rb +10 -0
- metadata +3 -2
data/CHANGELOG
ADDED
data/README
CHANGED
@@ -2,13 +2,18 @@
|
|
2
2
|
|
3
3
|
== Description
|
4
4
|
|
5
|
+
This is not the gem that you want. You want the full-featured "color" Ruby gem.
|
6
|
+
|
7
|
+
You're still here? Okay, this is what this gem is all about:
|
8
|
+
|
5
9
|
Reggie B. is a utility for converting colors between rgb and hex format. It was created
|
6
|
-
to support http://www.2rgb.com.
|
10
|
+
to support http://www.2rgb.com. It is especially useful for handling CSS color formats.
|
7
11
|
|
8
12
|
== Examples
|
9
13
|
|
10
|
-
ReggieB.convert "rgb(255, 255, 255)"
|
11
|
-
ReggieB.convert "255, 255, 255"
|
12
|
-
ReggieB.convert "
|
13
|
-
ReggieB.convert "
|
14
|
-
ReggieB.convert "#
|
14
|
+
ReggieB.convert "rgb(255, 255, 255)" => "0xffffff"
|
15
|
+
ReggieB.convert "255, 255, 255" => "0xffffff"
|
16
|
+
ReggieB.convert "rgb(100%, 100%, 100%)" => "0xffffff"
|
17
|
+
ReggieB.convert "0xffffff" => [255, 255, 255]
|
18
|
+
ReggieB.convert "#ffffff" => [255, 255, 255]
|
19
|
+
ReggieB.convert "#fff" => [255, 255, 255]
|
data/Rakefile
CHANGED
@@ -24,7 +24,7 @@ end
|
|
24
24
|
|
25
25
|
gem_spec = Gem::Specification.new do |s|
|
26
26
|
s.name = "reggieb"
|
27
|
-
s.version = "0.0
|
27
|
+
s.version = "0.1.0"
|
28
28
|
s.author = "Wyatt Greene"
|
29
29
|
s.email = "techiferous@gmail.com"
|
30
30
|
s.summary = "A Hex/RGB color converter."
|
@@ -33,7 +33,9 @@ gem_spec = Gem::Specification.new do |s|
|
|
33
33
|
It is very forgiving in the syntax it allows.
|
34
34
|
}
|
35
35
|
s.require_path = "lib"
|
36
|
-
s.files =
|
36
|
+
s.files = ["lib/reggieb.rb", "LICENSE", "Rakefile", "README",
|
37
|
+
"CHANGELOG",
|
38
|
+
"test/reggieb_test.rb", "test/test_helper.rb"]
|
37
39
|
s.homepage = "http://github.com/techiferous/reggieb"
|
38
40
|
s.requirements << "none"
|
39
41
|
s.has_rdoc = true
|
data/lib/reggieb.rb
CHANGED
@@ -9,6 +9,8 @@ class ReggieB
|
|
9
9
|
# - "(255, 255, 255)"
|
10
10
|
# - "255, 255, 255"
|
11
11
|
# - "255 255 255"
|
12
|
+
# - "rgb(100%, 100%, 100%)"
|
13
|
+
# - "100% 100% 100%"
|
12
14
|
# - "0xffffff"
|
13
15
|
# - "0xFFFFFF"
|
14
16
|
# - "#ffffff"
|
@@ -37,6 +39,10 @@ class ReggieB
|
|
37
39
|
s = $2 + $2 + $3 + $3 + $4 + $4
|
38
40
|
return to_rgb(s)
|
39
41
|
end
|
42
|
+
if s =~ /^\D*(\d{1,3})%\D*(\d{1,3})%\D*(\d{1,3})%\D*$/
|
43
|
+
percent_to_byte = 255.0 / 100.0
|
44
|
+
return to_hex($1.to_i*percent_to_byte, $2.to_i*percent_to_byte, $3.to_i*percent_to_byte)
|
45
|
+
end
|
40
46
|
if s =~ /^\D*(\d{1,3})\D+(\d{1,3})\D+(\d{1,3})\D*$/
|
41
47
|
return to_hex($1.to_i, $2.to_i, $3.to_i)
|
42
48
|
end
|
@@ -47,6 +53,9 @@ class ReggieB
|
|
47
53
|
# is a string formatted like "0xdddddd" where d represents a hex digit.
|
48
54
|
#
|
49
55
|
def self.to_hex(r, g, b)
|
56
|
+
r = r.round
|
57
|
+
g = g.round
|
58
|
+
b = b.round
|
50
59
|
unless (0..255).include?(r) && (0..255).include?(g) && (0..255).include?(b)
|
51
60
|
message = "RGB values should be between 0 and 255. Received #{r}, #{g}, #{b}."
|
52
61
|
raise ArgumentError.new(message)
|
data/test/reggieb_test.rb
CHANGED
@@ -175,4 +175,14 @@ class ReggieBTest < Test::Unit::TestCase
|
|
175
175
|
assert_equal "0xa01100", ReggieB.convert("rgb(160, 17, 0);")
|
176
176
|
end
|
177
177
|
|
178
|
+
def test_rgb_percentages
|
179
|
+
assert_equal "0xffffff", ReggieB.convert("rgb(100%, 100%, 100%)")
|
180
|
+
assert_equal "0xff7f7f", ReggieB.convert("rgb(100%, 50%, 50%)")
|
181
|
+
assert_equal "0x000000", ReggieB.convert("rgb(0%, 0%, 0%)")
|
182
|
+
assert_equal "0xffffff", ReggieB.convert("rgb(100%, 100%, 100%);")
|
183
|
+
assert_equal "0x7fff7f", ReggieB.convert("50% 100% 50%")
|
184
|
+
assert_equal "0x7fff7f", ReggieB.convert(" 50% 100% 50% ")
|
185
|
+
assert_equal "0x7fff7f", ReggieB.convert("50%100%50%")
|
186
|
+
end
|
187
|
+
|
178
188
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reggieb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wyatt Greene
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-02 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -26,6 +26,7 @@ files:
|
|
26
26
|
- LICENSE
|
27
27
|
- Rakefile
|
28
28
|
- README
|
29
|
+
- CHANGELOG
|
29
30
|
- test/reggieb_test.rb
|
30
31
|
- test/test_helper.rb
|
31
32
|
has_rdoc: true
|