color_parser 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +43 -0
  5. data/Rakefile +10 -0
  6. data/color_parser.gemspec +26 -0
  7. data/lib/color_parser/image.rb +20 -0
  8. data/lib/color_parser/page.rb +88 -0
  9. data/lib/color_parser/stylesheet.rb +197 -0
  10. data/lib/color_parser/version.rb +3 -0
  11. data/lib/color_parser.rb +142 -0
  12. data/test/color_parser_test.rb +83 -0
  13. data/test/fixtures/css/absolute.html +15 -0
  14. data/test/fixtures/css/inline.html +34 -0
  15. data/test/fixtures/css/inline_import.html +16 -0
  16. data/test/fixtures/css/invalid.html +15 -0
  17. data/test/fixtures/css/relative.html +15 -0
  18. data/test/fixtures/css/relative_root.html +15 -0
  19. data/test/fixtures/css/stylesheets/colors.css +0 -0
  20. data/test/fixtures/css/stylesheets/fonts.css +0 -0
  21. data/test/fixtures/css/stylesheets/print.css +3 -0
  22. data/test/fixtures/css/stylesheets/screen.css +16 -0
  23. data/test/fixtures/css_color/frequency.html +22 -0
  24. data/test/fixtures/css_color/stylesheets/color_styles.css +34 -0
  25. data/test/fixtures/css_color/stylesheets/css_elements.css +24 -0
  26. data/test/fixtures/css_color/stylesheets/frequency.css +35 -0
  27. data/test/fixtures/css_color/stylesheets/imported_selectors.css +3 -0
  28. data/test/fixtures/css_color/stylesheets/properties.css +18 -0
  29. data/test/fixtures/css_images/images/apple.png +0 -0
  30. data/test/fixtures/css_images/images/cantaloupe.png +0 -0
  31. data/test/fixtures/css_images/images/kiwi.jpg +0 -0
  32. data/test/fixtures/css_images/images/mango.png +0 -0
  33. data/test/fixtures/css_images/images/pineapple.png +0 -0
  34. data/test/fixtures/css_images/paths.html +14 -0
  35. data/test/fixtures/css_images/stylesheets/import_paths.css +4 -0
  36. data/test/fixtures/css_images/stylesheets/paths.css +17 -0
  37. data/test/fixtures/css_images/stylesheets/quotes.css +14 -0
  38. data/test/fixtures/css_import/index.html +15 -0
  39. data/test/fixtures/css_import/stylesheets/borders.css +0 -0
  40. data/test/fixtures/css_import/stylesheets/colors.css +0 -0
  41. data/test/fixtures/css_import/stylesheets/fonts.css +3 -0
  42. data/test/fixtures/css_import/stylesheets/ie.css +3 -0
  43. data/test/fixtures/css_import/stylesheets/images.css +0 -0
  44. data/test/fixtures/css_import/stylesheets/master.css +12 -0
  45. data/test/fixtures/css_import/stylesheets/print.css +3 -0
  46. data/test/fixtures/css_import/stylesheets/screen.css +12 -0
  47. data/test/fixtures/inline_images/absolute.html +14 -0
  48. data/test/fixtures/inline_images/images/apple.png +0 -0
  49. data/test/fixtures/inline_images/images/kiwi.jpg +0 -0
  50. data/test/fixtures/inline_images/relative.html +14 -0
  51. data/test/fixtures/inline_images/relative_root.html +14 -0
  52. data/test/image_test.rb +27 -0
  53. data/test/page_test.rb +194 -0
  54. data/test/stylesheet_test.rb +257 -0
  55. data/test/test_helper.rb +6 -0
  56. data/test/test_request.rb +19 -0
  57. data/test/version_test.rb +7 -0
  58. metadata +184 -0
data/test/page_test.rb ADDED
@@ -0,0 +1,194 @@
1
+ require_relative "test_helper"
2
+
3
+ describe Page do
4
+ def setup
5
+ ColorParser.request = ColorParser::TestRequest.new
6
+ end
7
+
8
+ it "should initialize url" do
9
+ url = "http://example.com/css/inline.html?foo=bar"
10
+ page = ColorParser::Page.new(url)
11
+
12
+ page.url.must_equal url
13
+ end
14
+
15
+ it "should parse url" do
16
+ url = "http://example.com/css/inline.html?foo=bar"
17
+ page = ColorParser::Page.new(url)
18
+
19
+ page.host.must_equal "example.com"
20
+ page.path.must_equal "/css/inline.html"
21
+ page.query.must_equal "foo=bar"
22
+ end
23
+
24
+ # Stylesheet sources
25
+ it "should build styles from inline css" do
26
+ url = "http://example.com/css/inline.html"
27
+ page = ColorParser::Page.new(url)
28
+
29
+ # 2 found
30
+ page.stylesheets.length.must_equal 2
31
+
32
+ # stylesheet content
33
+ sheet = page.stylesheets.first
34
+ sheet.type.must_equal "inline"
35
+ sheet.text.must_include "background"
36
+ end
37
+
38
+ it "should build styles with inine css with import" do
39
+ url = "http://example.com/css/inline_import.html"
40
+ page = ColorParser::Page.new(url)
41
+
42
+ page.stylesheets.length.must_equal 1
43
+
44
+ page.stylesheets[0].name.must_equal "inline_import.html"
45
+ page.stylesheets[0].stylesheets[0].name.must_equal "print.css"
46
+ page.stylesheets[0].stylesheets[1].name.must_equal "fonts.css"
47
+ page.stylesheets[0].stylesheets[2].name.must_equal "colors.css"
48
+ end
49
+
50
+ it "should build styles from external relative css" do
51
+ url = "http://example.com/css/relative.html"
52
+ page = ColorParser::Page.new(url)
53
+
54
+ # 2 found
55
+ page.stylesheets.length.must_equal 2
56
+
57
+ # stylesheet content
58
+ sheet = page.stylesheets.first
59
+ sheet.type.must_equal "external"
60
+ sheet.text.must_include "background"
61
+ end
62
+
63
+ it "should build styles from external relative root css" do
64
+ url = "http://example.com/css/relative_root.html"
65
+ page = ColorParser::Page.new(url)
66
+
67
+ # 2 found
68
+ page.stylesheets.length.must_equal 2
69
+
70
+ # stylesheet content
71
+ sheet = page.stylesheets.first
72
+ sheet.type.must_equal "external"
73
+ sheet.text.must_include "background"
74
+ end
75
+
76
+ it "should build styles from external absolute css" do
77
+ url = "http://example.com/css/relative.html"
78
+ page = ColorParser::Page.new(url)
79
+
80
+ # 2 found
81
+ page.stylesheets.length.must_equal 2
82
+
83
+ # stylesheet content
84
+ sheet = page.stylesheets.first
85
+ sheet.type.must_equal "external"
86
+ sheet.text.must_include "background"
87
+ end
88
+
89
+ it "should build styles from imported css" do
90
+ url = "http://example.com/css_import/index.html"
91
+ page = ColorParser::Page.new(url)
92
+ css = page.stylesheets
93
+
94
+ css.length.must_equal 2
95
+
96
+ # 5 found
97
+ css[0].name.must_include "screen.css"
98
+ css[1].name.must_include "print.css"
99
+
100
+ css[0].stylesheets[0].name.must_include "master.css"
101
+ css[0].stylesheets[1].name.must_include "fonts.css"
102
+ css[0].stylesheets[2].name.must_include "ie.css"
103
+ css[0].stylesheets[3].name.must_include "images.css"
104
+ css[0].stylesheets[4].name.must_include "borders.css"
105
+ css[0].stylesheets[5].name.must_include "colors.css"
106
+ end
107
+
108
+ it "should not fail from an invalid css path" do
109
+ url = "http://example.com/css/invalid.html"
110
+ page = ColorParser::Page.new(url)
111
+
112
+ # 1 found
113
+ page.stylesheets.length.must_equal 1
114
+ page.stylesheets[0].name.must_include "screen.css"
115
+ end
116
+
117
+
118
+ # IMAGES
119
+
120
+ it "should build images from inline images with relative paths" do
121
+ url = "http://example.com/inline_images/relative.html"
122
+ page = ColorParser::Page.new(url)
123
+ images = page.images
124
+
125
+ images.size.must_equal 2
126
+
127
+ images[0].url.must_equal "http://example.com/inline_images/images/apple.png"
128
+ images[1].url.must_equal "http://example.com/inline_images/images/kiwi.jpg"
129
+ end
130
+
131
+ it "should build images from inline images with relative root paths" do
132
+ url = "http://example.com/inline_images/relative_root.html"
133
+ page = ColorParser::Page.new(url)
134
+ images = page.images
135
+
136
+ images.size.must_equal 2
137
+
138
+ images[0].url.must_equal "http://example.com/inline_images/images/apple.png"
139
+ images[1].url.must_equal "http://example.com/inline_images/images/kiwi.jpg"
140
+ end
141
+
142
+ it "should build images from inline images with absolute paths" do
143
+ url = "http://example.com/inline_images/absolute.html"
144
+ page = ColorParser::Page.new(url)
145
+ images = page.images
146
+
147
+ images.size.must_equal 2
148
+
149
+ images[0].url.must_equal "http://example.com/inline_images/images/apple.png"
150
+ images[1].url.must_equal "http://example.com/inline_images/images/kiwi.jpg"
151
+ end
152
+
153
+
154
+ # STYLESHEET IMAGES
155
+
156
+ it "should combine images from inline external and import styles" do
157
+ url = "http://example.com/css_images/paths.html"
158
+ page = ColorParser::Page.new(url)
159
+ images = page.images
160
+
161
+ images.size.must_equal 5
162
+
163
+ images[0].name.must_equal "mango.png"
164
+ images[1].name.must_equal "apple.png"
165
+ images[2].name.must_equal "kiwi.jpg"
166
+ images[3].name.must_equal "cantaloupe.png"
167
+ images[4].name.must_equal "pineapple.png"
168
+ end
169
+
170
+
171
+ # STYLESHEET COLORS
172
+
173
+ it "should combine colors from external and import styles" do
174
+ url = "http://example.com/css_color/frequency.html"
175
+ page = ColorParser::Page.new(url)
176
+ colors = page.colors
177
+
178
+ colors["386ec0"].must_equal 4
179
+ colors["3a5dc4"].must_equal 3
180
+ colors["718ad7"].must_equal 2
181
+ colors["ff0000"].must_equal 1
182
+ colors["357ad1"].must_equal 1
183
+ colors["535353"].must_equal 1
184
+ end
185
+
186
+ it "should solot colors by frequency" do
187
+ url = "http://example.com/css_color/frequency.html"
188
+ page = ColorParser::Page.new(url)
189
+
190
+ colors = ["386ec0", "3a5dc4", "718ad7", "535353", "357ad1", "ff0000"]
191
+ page.colors_by_frequency.must_equal colors
192
+ end
193
+
194
+ end
@@ -0,0 +1,257 @@
1
+ require_relative "test_helper"
2
+
3
+ describe Stylesheet do
4
+ def setup
5
+ ColorParser.request = ColorParser::TestRequest.new
6
+ end
7
+
8
+ it "must initialize params" do
9
+ sheet = ColorParser::Stylesheet.new(text: "a { background: #fff; }",
10
+ type: "inline",
11
+ url: "http://example.com/css/inline.html?foo=bar")
12
+ sheet.type.must_equal "inline"
13
+ sheet.text.must_equal "a { background: #fff; }"
14
+ sheet.url.must_equal "http://example.com/css/inline.html?foo=bar"
15
+ sheet.host.must_equal "example.com"
16
+ sheet.path.must_equal "/css/inline.html"
17
+ sheet.query.must_equal "foo=bar"
18
+ end
19
+
20
+
21
+ # Import Quoting
22
+
23
+ it "should import stylesheets with double quotes" do
24
+ css = style("/css_import/stylesheets/screen.css")
25
+
26
+ imported = css.stylesheets[0]
27
+ imported.name.must_equal "master.css"
28
+ imported.text.must_include "a:link"
29
+ end
30
+
31
+ it "should import stylesheets with single quotes" do
32
+ css = style("/css_import/stylesheets/screen.css")
33
+
34
+ imported = css.stylesheets[1]
35
+ imported.name.must_equal "fonts.css"
36
+ imported.text.must_include "font-family"
37
+ end
38
+
39
+ it "should import stylesheets with no quotes" do
40
+ css = style("/css_import/stylesheets/screen.css")
41
+
42
+ imported = css.stylesheets[2]
43
+ imported.name.must_equal "ie.css"
44
+ imported.text.must_include "background-color"
45
+ end
46
+
47
+
48
+ # Import Paths
49
+
50
+ it "should import from relative path" do
51
+ css = style("/css_import/stylesheets/screen.css")
52
+
53
+ imported = css.stylesheets[0]
54
+ imported.url.must_equal "http://example.com/css_import/stylesheets/master.css"
55
+ end
56
+
57
+ it "should import from relative root path" do
58
+ css = style("/css_import/stylesheets/screen.css")
59
+
60
+ imported = css.stylesheets[1]
61
+ imported.url.must_equal "http://example.com/css_import/stylesheets/fonts.css"
62
+ end
63
+
64
+ it "should import from absolute path" do
65
+ css = style("/css_import/stylesheets/screen.css")
66
+
67
+ imported = css.stylesheets[2]
68
+ imported.url.must_equal "http://example.com/css_import/stylesheets/ie.css"
69
+ end
70
+
71
+ it "should not fail on invalid import path" do
72
+ css = style("/css_import/stylesheets/screen.css")
73
+ css.stylesheets[6].must_be_nil
74
+ end
75
+
76
+
77
+ # Selector parsing
78
+
79
+ it "should parse selectors" do
80
+ css = style("/css_color/stylesheets/properties.css")
81
+ selectors = css.selectors
82
+
83
+ selectors.size.must_equal 4
84
+
85
+ selectors["p"].size.must_equal 2
86
+ selectors["div"].size.must_equal 1
87
+ selectors["h1"].size.must_equal 2
88
+
89
+ # imported
90
+ selectors["dl"].size.must_equal 1
91
+ end
92
+
93
+ it "should parse properties" do
94
+ css = style("/css_color/stylesheets/properties.css")
95
+ props = css.properties
96
+
97
+ props.size.must_equal 9
98
+
99
+ props.must_include ["background", "#000"]
100
+ props.must_include ["color", "#fff"]
101
+ props.must_include ["margin", "0"]
102
+ props.must_include ["background-color", "#ccc"]
103
+ props.must_include ["font-size", "100%"]
104
+ props.must_include ["border-color", "rgb(1,2,3)"]
105
+
106
+ # imported
107
+ props.must_include ["border", "1px solid red"]
108
+ end
109
+
110
+
111
+ # Color Parsing
112
+
113
+ it "should parse hex colors" do
114
+ css = style("/css_color/stylesheets/color_styles.css")
115
+
116
+ css.colors["386ec0"].wont_be_nil # 386ec0
117
+ end
118
+
119
+ it "should parse hex short colors" do
120
+ css = style("/css_color/stylesheets/color_styles.css")
121
+
122
+ css.colors["cc00cc"].wont_be_nil # c0c
123
+ end
124
+
125
+ it "should parse textual colors" do
126
+ css = style("/css_color/stylesheets/color_styles.css")
127
+
128
+ css.colors["008080"].wont_be_nil # teal
129
+ end
130
+
131
+ it "should parse rgb colors" do
132
+ css = style("/css_color/stylesheets/color_styles.css")
133
+
134
+ css.colors["718ad7"].wont_be_nil # rgb(113,138,215)
135
+ end
136
+
137
+ it "should parse rgb colors with space" do
138
+ css = style("/css_color/stylesheets/color_styles.css")
139
+
140
+ css.colors["3a5dc4"].wont_be_nil # rgb(58, 93, 196)
141
+ end
142
+
143
+ it "should parse rgba colors" do
144
+ css = style("/css_color/stylesheets/color_styles.css")
145
+
146
+ css.colors["29469e"].wont_be_nil # rgba(41,70,158,0.5);
147
+ end
148
+
149
+ it "should parse rgba colors with space" do
150
+ css = style("/css_color/stylesheets/color_styles.css")
151
+
152
+ css.colors["3f6aeb"].wont_be_nil # rgba(63, 106, 235, 0.5);
153
+ end
154
+
155
+
156
+ # Color weighting
157
+
158
+ it "should order colors by frequency" do
159
+ css = style("/css_color/stylesheets/frequency.css")
160
+
161
+ colors = {"386ec0" => 4, "3a5dc4" => 3,
162
+ "718ad7" => 2, "ff0000" => 1}
163
+ css.colors.must_equal colors
164
+ end
165
+
166
+ # BG colors
167
+ it "should order background colors by frequency" do
168
+ css = style("/css_color/stylesheets/frequency.css")
169
+
170
+ colors = {"386ec0" => 2, "3a5dc4" => 1}
171
+ css.bg_colors.must_equal colors
172
+ end
173
+
174
+ # Text colors
175
+ it "should order text colors by frequency" do
176
+ css = style("/css_color/stylesheets/frequency.css")
177
+
178
+ colors = {"386ec0" => 2, "718ad7" => 1}
179
+ css.text_colors.must_equal colors
180
+ end
181
+
182
+ # Border colors
183
+ it "should order border colors by frequency" do
184
+ css = style("/css_color/stylesheets/frequency.css")
185
+
186
+ colors = {"3a5dc4" => 2, "ff0000" => 1, "718ad7" => 1}
187
+ css.border_colors.must_equal colors
188
+ end
189
+
190
+
191
+ # Images Parsing
192
+
193
+ it "should parse images with double quotes" do
194
+ css = style("/css_images/stylesheets/quotes.css")
195
+
196
+ css.images[0].name.must_equal "apple.png"
197
+ end
198
+
199
+ it "should parse images with single quotes" do
200
+ css = style("/css_images/stylesheets/quotes.css")
201
+
202
+ css.images[1].name.must_equal "kiwi.jpg"
203
+ end
204
+
205
+ it "should parse images with no quotes" do
206
+ css = style("/css_images/stylesheets/quotes.css")
207
+
208
+ css.images[2].name.must_equal "cantaloupe.png"
209
+ end
210
+
211
+
212
+ # Image paths
213
+
214
+ it "should build image from absolute path" do
215
+ css = style("/css_images/stylesheets/paths.css")
216
+ urls = css.images.map {|image| image.url }
217
+
218
+ urls.size.must_equal 4
219
+ urls.must_include "http://example.com/css_images/images/apple.png"
220
+ end
221
+
222
+ it "should build image from relative path" do
223
+ css = style("/css_images/stylesheets/paths.css")
224
+ urls = css.images.map {|image| image.url }
225
+
226
+ urls.size.must_equal 4
227
+ urls.must_include "http://example.com/css_images/images/kiwi.jpg"
228
+ end
229
+
230
+ it "should build image from relative root path" do
231
+ css = style("/css_images/stylesheets/paths.css")
232
+ urls = css.images.map {|image| image.url }
233
+
234
+ urls.size.must_equal 4
235
+ urls.must_include "http://example.com/css_images/images/cantaloupe.png"
236
+ end
237
+
238
+ it "should build image from imported path" do
239
+ css = style("/css_images/stylesheets/paths.css")
240
+ urls = css.images.map {|image| image.url }
241
+
242
+ urls.size.must_equal 4
243
+ urls.must_include "http://example.com/css_images/images/pineapple.png"
244
+ end
245
+ end
246
+
247
+ private
248
+
249
+ def style(path)
250
+ ColorParser::Stylesheet.new(text: fixture(path),
251
+ url: "http://example.com#{path}")
252
+ end
253
+
254
+ def fixture(path)
255
+ fixture = "#{File.dirname(__FILE__)}/../test/fixtures#{path}"
256
+ File.read(fixture) if File.exist?(fixture)
257
+ end
@@ -0,0 +1,6 @@
1
+ require 'minitest/autorun'
2
+
3
+ require File.expand_path('../../lib/color_parser.rb', __FILE__)
4
+ require File.expand_path('../../test/test_request.rb', __FILE__)
5
+
6
+ include ColorParser
@@ -0,0 +1,19 @@
1
+ module ColorParser
2
+ class TestRequest
3
+ def initialize(params={})
4
+ end
5
+
6
+ # Read in fixture file instead of url
7
+ def get(url)
8
+ begin
9
+ uri = URI.parse(url.strip)
10
+ rescue URI::InvalidURIError
11
+ uri = URI.parse(URI.escape(url.strip))
12
+ end
13
+
14
+ # simple hack to read in fixtures instead of url for tests
15
+ fixture = "#{File.dirname(__FILE__)}/../test/fixtures#{uri.path}"
16
+ File.read(fixture) if File.exist?(fixture)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ require_relative "test_helper"
2
+
3
+ describe VERSION do
4
+ it "must be defined" do
5
+ ColorParser::VERSION.wont_be_nil
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: color_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Derek DeVries
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nokogiri
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.5'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.5'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Color Parser finds the colors on a given webpage
47
+ email:
48
+ - derek@sportspyder.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - .gitignore
54
+ - Gemfile
55
+ - LICENSE.txt
56
+ - README.md
57
+ - Rakefile
58
+ - color_parser.gemspec
59
+ - lib/color_parser.rb
60
+ - lib/color_parser/image.rb
61
+ - lib/color_parser/page.rb
62
+ - lib/color_parser/stylesheet.rb
63
+ - lib/color_parser/version.rb
64
+ - test/color_parser_test.rb
65
+ - test/fixtures/css/absolute.html
66
+ - test/fixtures/css/inline.html
67
+ - test/fixtures/css/inline_import.html
68
+ - test/fixtures/css/invalid.html
69
+ - test/fixtures/css/relative.html
70
+ - test/fixtures/css/relative_root.html
71
+ - test/fixtures/css/stylesheets/colors.css
72
+ - test/fixtures/css/stylesheets/fonts.css
73
+ - test/fixtures/css/stylesheets/print.css
74
+ - test/fixtures/css/stylesheets/screen.css
75
+ - test/fixtures/css_color/frequency.html
76
+ - test/fixtures/css_color/stylesheets/color_styles.css
77
+ - test/fixtures/css_color/stylesheets/css_elements.css
78
+ - test/fixtures/css_color/stylesheets/frequency.css
79
+ - test/fixtures/css_color/stylesheets/imported_selectors.css
80
+ - test/fixtures/css_color/stylesheets/properties.css
81
+ - test/fixtures/css_images/images/apple.png
82
+ - test/fixtures/css_images/images/cantaloupe.png
83
+ - test/fixtures/css_images/images/kiwi.jpg
84
+ - test/fixtures/css_images/images/mango.png
85
+ - test/fixtures/css_images/images/pineapple.png
86
+ - test/fixtures/css_images/paths.html
87
+ - test/fixtures/css_images/stylesheets/import_paths.css
88
+ - test/fixtures/css_images/stylesheets/paths.css
89
+ - test/fixtures/css_images/stylesheets/quotes.css
90
+ - test/fixtures/css_import/index.html
91
+ - test/fixtures/css_import/stylesheets/borders.css
92
+ - test/fixtures/css_import/stylesheets/colors.css
93
+ - test/fixtures/css_import/stylesheets/fonts.css
94
+ - test/fixtures/css_import/stylesheets/ie.css
95
+ - test/fixtures/css_import/stylesheets/images.css
96
+ - test/fixtures/css_import/stylesheets/master.css
97
+ - test/fixtures/css_import/stylesheets/print.css
98
+ - test/fixtures/css_import/stylesheets/screen.css
99
+ - test/fixtures/inline_images/absolute.html
100
+ - test/fixtures/inline_images/images/apple.png
101
+ - test/fixtures/inline_images/images/kiwi.jpg
102
+ - test/fixtures/inline_images/relative.html
103
+ - test/fixtures/inline_images/relative_root.html
104
+ - test/image_test.rb
105
+ - test/page_test.rb
106
+ - test/stylesheet_test.rb
107
+ - test/test_helper.rb
108
+ - test/test_request.rb
109
+ - test/version_test.rb
110
+ homepage: https://github.com/devrieda/color_parser
111
+ licenses:
112
+ - MIT
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: 1.9.3
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ segments:
130
+ - 0
131
+ hash: -3886628688892773367
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 1.8.24
135
+ signing_key:
136
+ specification_version: 3
137
+ summary: Color Parser finds the colors on a given webpage
138
+ test_files:
139
+ - test/color_parser_test.rb
140
+ - test/fixtures/css/absolute.html
141
+ - test/fixtures/css/inline.html
142
+ - test/fixtures/css/inline_import.html
143
+ - test/fixtures/css/invalid.html
144
+ - test/fixtures/css/relative.html
145
+ - test/fixtures/css/relative_root.html
146
+ - test/fixtures/css/stylesheets/colors.css
147
+ - test/fixtures/css/stylesheets/fonts.css
148
+ - test/fixtures/css/stylesheets/print.css
149
+ - test/fixtures/css/stylesheets/screen.css
150
+ - test/fixtures/css_color/frequency.html
151
+ - test/fixtures/css_color/stylesheets/color_styles.css
152
+ - test/fixtures/css_color/stylesheets/css_elements.css
153
+ - test/fixtures/css_color/stylesheets/frequency.css
154
+ - test/fixtures/css_color/stylesheets/imported_selectors.css
155
+ - test/fixtures/css_color/stylesheets/properties.css
156
+ - test/fixtures/css_images/images/apple.png
157
+ - test/fixtures/css_images/images/cantaloupe.png
158
+ - test/fixtures/css_images/images/kiwi.jpg
159
+ - test/fixtures/css_images/images/mango.png
160
+ - test/fixtures/css_images/images/pineapple.png
161
+ - test/fixtures/css_images/paths.html
162
+ - test/fixtures/css_images/stylesheets/import_paths.css
163
+ - test/fixtures/css_images/stylesheets/paths.css
164
+ - test/fixtures/css_images/stylesheets/quotes.css
165
+ - test/fixtures/css_import/index.html
166
+ - test/fixtures/css_import/stylesheets/borders.css
167
+ - test/fixtures/css_import/stylesheets/colors.css
168
+ - test/fixtures/css_import/stylesheets/fonts.css
169
+ - test/fixtures/css_import/stylesheets/ie.css
170
+ - test/fixtures/css_import/stylesheets/images.css
171
+ - test/fixtures/css_import/stylesheets/master.css
172
+ - test/fixtures/css_import/stylesheets/print.css
173
+ - test/fixtures/css_import/stylesheets/screen.css
174
+ - test/fixtures/inline_images/absolute.html
175
+ - test/fixtures/inline_images/images/apple.png
176
+ - test/fixtures/inline_images/images/kiwi.jpg
177
+ - test/fixtures/inline_images/relative.html
178
+ - test/fixtures/inline_images/relative_root.html
179
+ - test/image_test.rb
180
+ - test/page_test.rb
181
+ - test/stylesheet_test.rb
182
+ - test/test_helper.rb
183
+ - test/test_request.rb
184
+ - test/version_test.rb