w3clove 0.7.3 → 0.7.4

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/README.rdoc CHANGED
@@ -1,5 +1,3 @@
1
- = w3clove {<img src="http://travis-ci.org/jaimeiniesta/w3clove.png" />}[http://travis-ci.org/jaimeiniesta/w3clove]
2
-
3
1
  Site-wide markup validator. Validate a whole web site on the W3C Markup Validator, from the command line, and generate a comprehensive report of all errors found.
4
2
 
5
3
  This is the command-line version of http://w3clove.com
@@ -49,15 +49,23 @@ module W3Clove
49
49
  # It first assumes it's an XML sitemap; if no locations found, it will try to
50
50
  # scrape the links from HTML.
51
51
  #
52
- # For HTML sources, it will only get the links that start with the sitemap url, convert relative links
52
+ # For HTML sources, it will only get the links that start with the sitemap root url, convert relative links
53
53
  # to absolute links, remove anchors from links, include the sitemap url, and exclude links that don't
54
54
  # seem to point to HTML (like images, multimedia, text, javascript...)
55
55
  def pages_in_sitemap
56
56
  pages = xml_locations.map {|loc| W3Clove::Page.new(loc.text)}
57
57
  if pages.empty?
58
58
  m = MetaInspector.new(url, timeout)
59
- links = m.absolute_links.select {|l| l.start_with?(m.url) && looks_like_html?(l)}.map {|l| l.split('#')[0]}.uniq
60
- links << m.url unless (links.include?(m.url) || links.include?("#{m.url}/"))
59
+ links = [m.url]
60
+
61
+ m.links.select {|l| l.start_with?(m.root_url) && looks_like_html?(l)}.map {|l| l.split('#')[0]}.uniq.each do |link|
62
+ if link[-1,1] == "/"
63
+ links << link unless (links.include?(link) || links.include?(link.chop))
64
+ else
65
+ links << link unless (links.include?(link) || links.include?("#{link}/"))
66
+ end
67
+ end
68
+
61
69
  pages = links.map {|link| W3Clove::Page.new(link)}
62
70
  end
63
71
  pages
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  module W3Clove
4
- VERSION = "0.7.3"
4
+ VERSION = "0.7.4"
5
5
  end
@@ -0,0 +1,266 @@
1
+ HTTP/1.1 200 OK
2
+ Server: nginx
3
+ Date: Mon, 23 Jul 2012 08:44:12 GMT
4
+ Content-Type: text/html; charset=utf-8
5
+ Connection: keep-alive
6
+ Status: 200 OK
7
+ X-Ua-Compatible: IE=Edge,chrome=1
8
+ Etag: "c4f3d4aaf12acce6a909714618e08934"
9
+ Cache-Control: max-age=0, private, must-revalidate
10
+ Set-Cookie: _w3clovesite_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJTJiMWU0NzVkNjJjNDliMDRlZGI3MjI5OTVlN2U4MjU5BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMTlWUmVSMEVlTWNuV0t4cTFuNHUvQVozZCttMjhxRTEvWFhYYW5hOXRFdUk9BjsARg%3D%3D--7e9d3e900c9531363297f469f8baa3e3ed31336a; path=/; HttpOnly
11
+ X-Request-Id: 33ca78a4044d244e673d273a59fa4ebc
12
+ X-Runtime: 0.017688
13
+ X-Rack-Cache: miss
14
+ Content-Length: 12923
15
+ X-Varnish: 647613022
16
+ Age: 0
17
+ Via: 1.1 varnish
18
+
19
+ <!DOCTYPE html>
20
+ <html>
21
+
22
+ <head><script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
23
+ <meta charset="UTF-8" />
24
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
25
+ <title>Whole site HTML validator | W3CLove</title>
26
+ <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
27
+ <meta name="description" content="Site-wide markup validation tool. Validate the markup of your whole site with just one click." />
28
+ <meta name="keywords" content="html, markup, validation, validator, tool, w3c, development, standards, free" />
29
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
30
+ <link href="http://fonts.googleapis.com/css?family=Terminal+Dosis:400,600" rel="stylesheet" type="text/css" />
31
+ <link href="/assets/application-9da2f67bc1bc6e19a801cb7685a0b497.css" media="screen" rel="stylesheet" type="text/css" />
32
+ <meta content="authenticity_token" name="csrf-param" />
33
+ <meta content="9VReR0EeMcnWKxq1n4u/AZ3d+m28qE1/XXXana9tEuI=" name="csrf-token" />
34
+ <script src="/assets/application-4e8aa1a929a0aeab6bdf339edecbeaa6.js" type="text/javascript"></script>
35
+ <script src="/assets/pages-7270767b2a9e9fff880aa5de378ca791.js" type="text/javascript"></script>
36
+ <script src="https://apis.google.com/js/plusone.js" type="text/javascript"></script>
37
+
38
+ <script type="text/javascript">
39
+
40
+ var _gaq = _gaq || [];
41
+ _gaq.push(['_setAccount', 'UA-122379-37']);
42
+ _gaq.push(['_trackPageview']);
43
+
44
+ (function() {
45
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
46
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
47
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
48
+ })();
49
+
50
+ </script>
51
+ </head>
52
+
53
+ <body>
54
+
55
+ <div id="flash_message"><div><span id="flash_message_text"></span><a class="close-message" href="#" onclick="closeMsgBar();">X</a></div></div>
56
+
57
+
58
+
59
+ <div class="row top-bar">
60
+ <div class="content">
61
+ <header>
62
+ <div class="header">
63
+ <h1><a href="/" title="W3CLove">W3CLove</a></h1>
64
+ <nav>
65
+ <a href="#" class="nav_button"></a>
66
+ <ul class="nav">
67
+ <li><a href="/faqs" class='active'>FAQs</a></li>
68
+ <li><a href="/plans-and-pricing" >Plans and pricing</a></li>
69
+ <li><a href="/contact" >Contact</a></li>
70
+ <li><a href="/charts/errors" >Top 100 Errors</a></li>
71
+ </ul>
72
+ </nav>
73
+
74
+
75
+ <div id="sign_in">
76
+ <a href="/credits" class="label warning" id="credits_count">10 Credits</a>
77
+
78
+ <a href="/signin" class="label success">Sign in</a>
79
+ </div>
80
+ </div>
81
+ </header>
82
+ </div>
83
+ </div>
84
+
85
+ <div id="faqs" class="row hero">
86
+
87
+ <div class="content">
88
+
89
+ <h2>FAQs</h2>
90
+ <h3>Frequently Asked Questions</h3>
91
+
92
+ </div>
93
+
94
+ </div>
95
+
96
+
97
+ <div class="row description">
98
+
99
+ <div class="content">
100
+
101
+ <h4 id="what_is_w3clove">What is W3CLove?</h4>
102
+ <p>
103
+ W3CLove is a site-wide markup validation tool. It allows you to check the validity of the markup of several pages
104
+ from your website, and gives you a summary of the most common errors and warnings, with a single click.
105
+ </p>
106
+
107
+ <h4 id="why_not_just_use_the_official_w3c_validator">Why not just use the official W3C validator?</h4>
108
+ <p>
109
+ The <a href="http://validator.w3.org">official W3C validator</a> does not yet provide a way to submit several URLs at once. So, if you want to check your whole
110
+ website, you need to submit each of your URLs individually, which is a slow process. W3CLove provides a simpler, faster way to
111
+ submit several pages at once.
112
+ </p>
113
+
114
+ <h4 id="how_can_i_submit_my_site_for_validation">How can I submit a site for validation?</h4>
115
+ <p>
116
+ To submit a site, just enter its URL on the <a href="/">front page</a>, and click the "Validate" button. The W3CLove spider will crawl the site
117
+ in search for internal links, validate each of them, and then compile all errors and warnings in one summary.
118
+ </p>
119
+
120
+ <h4 id="how_can_i_specify_the_exact_urls_i_want_to_validate">How can I specify the exact URLs I want to validate?</h4>
121
+ <p>
122
+ The W3CLove spider will crawl the provided URL in search for internal links, but you can also provide an <a href="http://www.sitemaps.org/">XML sitemap</a> with the exact URLs
123
+ you need to validate.
124
+ </p>
125
+
126
+ <h4 id="is_there_a_limit_on_the_number_of_urls">Is there a limit on the number of URLs to validate?</h4>
127
+ <p>
128
+ Yes, there is a limit of 250 URLs per each sitemap submitted. This should be enough for most sites to get a good idea of the
129
+ validation status of the site, and saves processing time for both W3CLove and the W3C validator.
130
+ </p>
131
+
132
+ <h4 id="how_can_i_resubmit_a_site">How can I resubmit a site?</h4>
133
+ <p>
134
+ Just click on the "Re-check" buttons. You can recheck the whole sitemap or individual pages.
135
+ </p>
136
+
137
+ <h4 id="can_i_store_my_sitemaps_list">Can I store my sitemaps list?</h4>
138
+ <p>
139
+ Yes, W3CLove lets you store for free a list of the sitemaps you're interested in validating. Just sign in with your Twitter, Facebook or Google account and every sitemap you validate will appear on your sitemaps list.
140
+ </p>
141
+
142
+ <h4 id="how_do_credits_work">How do credits work?</h4>
143
+ <p>
144
+ When you sign up for the first time at W3CLove, you're given 100 initial credits so you can try the service for free.
145
+ </p>
146
+ <p>
147
+ For every single web page validation that you make using our service, you're charged 1 credit. So, for example, if you start with 100 credits and you validate a site that has 30 web pages, you end up with 70 credits.
148
+ </p>
149
+ <p>
150
+ Once you spend all your credits, you can't make more validations until you recharge them.
151
+ </p>
152
+
153
+ <h4 id="how_can_i_recharge_my_credits">How can I recharge my credits?</h4>
154
+ <p>
155
+ The easiest way to recharge your credits is through a monthly subscription.
156
+ </p>
157
+ <p>
158
+ This way, your credits will be recharged every month up to the monthly limit of your chosen plan.
159
+ </p>
160
+ <p>
161
+ Check out the <a href="/plans-and-pricing">Plans and pricing</a> page to see what plan is best for you. If you're not sure about how many validations you need, you can buy packs of validations.
162
+ </p>
163
+
164
+ <h4 id="how_can_i_sign_in_with_another_account">I've signed in from one account, how can I sign in with a different one?</h4>
165
+ <p>
166
+ For your convenience, you're first shown 3 ways to sign in: Twitter, Facebook and Google. When you use one of those, W3CLove will remember your preference and offer just this one.
167
+ </p>
168
+ <p>
169
+ If you'd like to change this preference, just sign in again with your preferred account:<br/>
170
+ <a href='#' onclick='window.location="/auth/twitter"; return false;' style='color:white;'><span class='label success'>twitter</span></a>, <a href='#' onclick='window.location="/auth/facebook"; return false;' style='color:white;'><span class='label success'>facebook</span></a> or <a href='#' onclick='window.location="/auth/google_oauth2"; return false;' style='color:white;'><span class='label success'>google</span></a>.
171
+ </p>
172
+
173
+ <h4 id="who_is_behind_all_this">Who is behind all this?</h4>
174
+ <p>
175
+ W3CLove is a personal project maintained by <a href="http://jaimeiniesta.com/">Jaime Iniesta</a>, an independent web developer who loves working with Ruby on Rails. That's me. :)
176
+ </p>
177
+
178
+ <h4 id="how_did_this_project_start">How did this project start?</h4>
179
+ <p>
180
+ During March 2011 I took the Ruby Core Skills course at the <a href="http://mendicantuniversity.org/">Mendicant University</a>, an intense three week course that takes you through several important topic areas every Ruby developer should be comfortable on. You can <a href="http://jaimeiniesta.posterous.com/rbmu-a-better-way-to-learn-ruby">read more</a> about it at my blog.
181
+ </p>
182
+ <p>
183
+ With the help of <a href="http://majesticseacreature.com/">Gregory Brown</a> and the rest of the <a href="http://school.mendicantuniversity.org/alumni/2011">Mendicant University Alumni</a>, I built the <a href="https://github.com/jaimeiniesta/w3clove">w3clove</a> gem that allows you to do site-wide markup validation from the command line.
184
+ </p>
185
+ <p>
186
+ Afterwards, I built this <a href="http://w3clove.com">W3CLove.com</a> site to make it easier for everyone to do site-wide markup validation, with a nicer HTML interface, storing the results for later, rechecking, etc.
187
+ </p>
188
+ <p>
189
+ I want to express my gratitude to all the Mendicant University community, all of them are still helping me making W3CLove a better tool for everyone. Thank you!
190
+ </p>
191
+
192
+ <h4 id="is_this_free">Is this free?</h4>
193
+ <p>
194
+ No, this is a paid service, but you can try it for free.
195
+ </p>
196
+
197
+ <h4 id="is_there_an_open_source_version">Is there an open source version?</h4>
198
+ <p>
199
+ Yes! There's a free, standalone version that you can install on your computer. It's packed as a Ruby gem and it's open source, so you can examine the code and contribute to it if you wish.
200
+ </p>
201
+ <p>
202
+ You can find the <a href="https://github.com/jaimeiniesta/w3clove">w3clove gem at Github</a>.
203
+ </p>
204
+
205
+ <h4 id="is_there_an_api">Is there an API?</h4>
206
+ <p>
207
+ Yes! I've started building an API. It's not finished yet, but you can already validate sitemaps and pages with it. Read more about it at the <a href="/api_v1_reference">API V1 Reference</a> page.
208
+ </p>
209
+
210
+ </div>
211
+ </div>
212
+
213
+
214
+ <div class="row footer">
215
+ <div class="content">
216
+ <footer>
217
+ <p>
218
+ <!-- Begin MailChimp Signup Form -->
219
+ <div id="mc_embed_signup">
220
+ <form action="http://w3clove.us4.list-manage.com/subscribe/post?u=6af3ab69c286561d0f0f25671&amp;id=04a0dab609" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate shadowins">
221
+ <label for="mce-EMAIL">Subscribe to our newsletter:</label>
222
+ <input type="email" value="your email" name="EMAIL" class="email" id="mce-EMAIL" placeholder="your email" onfocus="this.value='';" required>
223
+ <div class="clear"><input type="submit" value="♥" name="subscribe" id="mc-embedded-subscribe" class="button btn"></div>
224
+ </form>
225
+ </div>
226
+ <!--End mc_embed_signup-->
227
+
228
+ <ul class="social_share">
229
+ <li class="twitter_follow"><a href="https://twitter.com/w3clove" class="twitter-follow-button" data-button="grey" data-text-color="#FFFFFF" data-link-color="#999999" data-show-count="false">Follow</a></li>
230
+ <li class="tweets_count"><a href="http://twitter.com/share" style="display:block;" class="twitter-share-button" data-count="horizontal" data-via="w3clove" data-lang="en">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></li>
231
+ <li class="gplus_count"><div class="g-plusone" data-size="medium" data-count="true"></div></li>
232
+ </ul>
233
+ </p>
234
+ <p class="clearb"><strong>W3CLove</strong> lets you <strong>validate entire sites</strong> with one click. This is an independent project, not associated with the W3C. By making use of this website you agree to the <a href="/terms_of_service">Terms of service</a>.<br /><br />Follow us on <a href="http://twitter.com/W3CLove">Twitter</a> and <a href="http://us4.campaign-archive1.com/home/?u=6af3ab69c286561d0f0f25671&id=04a0dab609">subscribe to our monthly newsletter</a>.</p>
235
+ </footer>
236
+ </div>
237
+ </div>
238
+
239
+ <script type="text/javascript">
240
+ var uvOptions = {};
241
+ (function() {
242
+ var uv = document.createElement('script'); uv.type = 'text/javascript'; uv.async = true;
243
+ uv.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'widget.uservoice.com/nhy6YD24GjgADgFX3h5z4w.js';
244
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(uv, s);
245
+ })();
246
+ </script>
247
+ <script type="text/javascript">
248
+ //<![CDATA[
249
+
250
+ var menuVisible = false;
251
+ $('.nav_button').on('click', showHideMenu);
252
+
253
+ //]]>
254
+ </script>
255
+
256
+ <script type="text/javascript">if (!NREUMQ.f) { NREUMQ.f=function() {
257
+ NREUMQ.push(["load",new Date().getTime()]);
258
+ var e=document.createElement("script");
259
+ e.type="text/javascript";e.async=true;e.src="https://d1ros97qkrwjf5.cloudfront.net/39/eum/rum.js";
260
+ document.body.appendChild(e);
261
+ if(NREUMQ.a)NREUMQ.a();
262
+ };
263
+ NREUMQ.a=window.onload;window.onload=NREUMQ.f;
264
+ };
265
+ NREUMQ.push(["nrfj","beacon-1.newrelic.com","96fc3f1db6",415027,"c1hbQUcNWlhQQhsNWVdfakNaDkJVUlUbFVFXUkYaRgpZQw==",0.0,14,new Date().getTime(),"","","","",""])</script></body>
266
+ </html>
data/spec/sitemap_spec.rb CHANGED
@@ -11,6 +11,7 @@ describe W3Clove::Sitemap do
11
11
  @sitemap_with_protocol_relative = W3Clove::Sitemap.new('http://protocol-relative.com')
12
12
  @sitemap_with_protocol_relative_https = W3Clove::Sitemap.new('https://protocol-relative.com')
13
13
  @sitemap_for_exclusions = W3Clove::Sitemap.new('http://example.com/exclusions')
14
+ @sitemap_for_absolute_urls = W3Clove::Sitemap.new('http://w3clove.com/faqs')
14
15
 
15
16
  MarkupValidator.any_instance.stubs(:validate_uri).returns(stubbed_validator_results)
16
17
  end
@@ -28,10 +29,10 @@ describe W3Clove::Sitemap do
28
29
  end
29
30
 
30
31
  it "should get pages from the sample guides.rubyonrails.org site" do
31
- @sitemap_html.pages.length.should == 33
32
+ #@sitemap_html.pages.length.should == 34
32
33
  @sitemap_html.pages.map {|p| p.url}
33
- .should == ["http://guides.rubyonrails.org/index.html",
34
- "http://guides.rubyonrails.org/",
34
+ .should == ["http://guides.rubyonrails.org",
35
+ "http://guides.rubyonrails.org/index.html",
35
36
  "http://guides.rubyonrails.org/getting_started.html",
36
37
  "http://guides.rubyonrails.org/migrations.html",
37
38
  "http://guides.rubyonrails.org/active_record_validations_callbacks.html",
@@ -65,27 +66,48 @@ describe W3Clove::Sitemap do
65
66
  "http://guides.rubyonrails.org/v2.3.8/"]
66
67
  end
67
68
 
69
+ it "should get correct absolute links for internal pages" do
70
+ @sitemap_for_absolute_urls.pages.length.should == 9
71
+ @sitemap_for_absolute_urls.pages.map {|p| p.url}
72
+ .should == ["http://w3clove.com/faqs",
73
+ "http://w3clove.com/",
74
+ "http://w3clove.com/plans-and-pricing",
75
+ "http://w3clove.com/contact",
76
+ "http://w3clove.com/charts/errors",
77
+ "http://w3clove.com/credits",
78
+ "http://w3clove.com/signin",
79
+ "http://w3clove.com/api_v1_reference",
80
+ "http://w3clove.com/terms_of_service"]
81
+ end
82
+
68
83
  it "should include sitemap url at least, even if no links were found" do
69
84
  @sitemap_no_links.pages.length.should == 1
70
85
  @sitemap_no_links.pages[0].url.should == 'http://zigotica.com'
71
86
  end
72
87
 
73
- it "should not repeat URLs with and without trailing slash" do
88
+ it "should not repeat sitemap URL with and without trailing slash" do
74
89
  urls = @sitemap_with_trailing_slash.pages.collect(&:url)
75
- urls.should include 'http://eparreno.com/'
76
- urls.should_not include 'http://eparreno.com'
90
+ urls.should include 'http://eparreno.com'
91
+ urls.should_not include 'http://eparreno.com/'
92
+ end
93
+
94
+ it "should not repeat internal URLs with and without trailing slash" do
95
+ urls = @sitemap_for_absolute_urls.pages.collect(&:url)
96
+ urls.should include 'http://w3clove.com/faqs'
97
+ urls.should_not include 'http://w3clove.com/faqs/'
77
98
  end
78
99
 
79
100
  it "should exclude non-html pages" do
80
- @sitemap_for_exclusions.pages.length.should == 2
81
- @sitemap_for_exclusions.pages.first.url.should == 'http://example.com/exclusions/'
82
- @sitemap_for_exclusions.pages.last.url.should == 'http://example.com/exclusions/faqs'
101
+ @sitemap_for_exclusions.pages.length.should == 3
102
+ @sitemap_for_exclusions.pages[0].url.should == 'http://example.com/exclusions'
103
+ @sitemap_for_exclusions.pages[1].url.should == 'http://example.com/'
104
+ @sitemap_for_exclusions.pages[2].url.should == 'http://example.com/faqs'
83
105
  end
84
106
 
85
107
  context "protocol-relative links" do
86
108
  it "should include only internal links" do
87
109
  @sitemap_with_protocol_relative.pages.size.should == 3
88
- @sitemap_with_protocol_relative.pages.map {|p| p.url}.sort.should == ['http://protocol-relative.com/',
110
+ @sitemap_with_protocol_relative.pages.map {|p| p.url}.sort.should == ['http://protocol-relative.com',
89
111
  'http://protocol-relative.com/contact',
90
112
  'http://protocol-relative.com/faqs']
91
113
  end
data/spec/spec_helper.rb CHANGED
@@ -14,6 +14,7 @@ FakeWeb.register_uri(:get, "http://zigotica.com", :response => open("#{$samples_
14
14
  FakeWeb.register_uri(:get, "http://protocol-relative.com", :response => open("#{$samples_dir}/protocol_relative.html").read)
15
15
  FakeWeb.register_uri(:get, "https://protocol-relative.com", :response => open("#{$samples_dir}/protocol_relative.html").read)
16
16
  FakeWeb.register_uri(:get, "http://example.com/exclusions", :response => open("#{$samples_dir}/exclusions.html").read)
17
+ FakeWeb.register_uri(:get, "http://w3clove.com/faqs", :response => open("#{$samples_dir}/w3clove_faqs.response").read)
17
18
 
18
19
  def message_text(message_id)
19
20
  message_texts = {
data/w3clove.gemspec CHANGED
@@ -18,7 +18,7 @@ and outputs a detailed report with all errors and warnings}
18
18
 
19
19
  gem.add_dependency 'w3c_validators', '~> 1.2'
20
20
  gem.add_dependency 'nokogiri', '~> 1.5.3'
21
- gem.add_dependency 'metainspector', '~> 1.9'
21
+ gem.add_dependency 'metainspector', '1.9.4'
22
22
 
23
23
  gem.add_development_dependency 'rspec', '~> 2.5.0'
24
24
  gem.add_development_dependency 'mocha', '~> 0.11.4'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: w3clove
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 3
10
- version: 0.7.3
9
+ - 4
10
+ version: 0.7.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jaime Iniesta
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-13 00:00:00 Z
18
+ date: 2012-07-23 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: w3c_validators
@@ -54,13 +54,14 @@ dependencies:
54
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
- - - ~>
57
+ - - "="
58
58
  - !ruby/object:Gem::Version
59
- hash: 29
59
+ hash: 59
60
60
  segments:
61
61
  - 1
62
62
  - 9
63
- version: "1.9"
63
+ - 4
64
+ version: 1.9.4
64
65
  type: :runtime
65
66
  version_requirements: *id003
66
67
  - !ruby/object:Gem::Dependency
@@ -164,6 +165,7 @@ files:
164
165
  - spec/samples/guides.rubyonrails.org.html
165
166
  - spec/samples/protocol_relative.html
166
167
  - spec/samples/sitemap.xml
168
+ - spec/samples/w3clove_faqs.response
167
169
  - spec/samples/zigotica.com.html
168
170
  - spec/sitemap_spec.rb
169
171
  - spec/spec_helper.rb