sitemap_checker 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,9 @@
1
- require "sitemap_checker/version"
2
1
  require 'open-uri'
3
2
  require 'nokogiri'
4
3
  require 'zlib'
5
4
 
5
+ require "sitemap_checker/version"
6
+ require "sitemap_checker/open_uri"
6
7
 
7
8
  module SitemapChecker
8
9
  autoload :Sitemap, "sitemap_checker/sitemap"
@@ -0,0 +1,40 @@
1
+ require 'open-uri'
2
+ #
3
+ # From: https://gist.github.com/1271420
4
+ #
5
+ # Allow open-uri to follow unsafe redirects (i.e. https to http).
6
+ # Relevant issue:
7
+ # http://redmine.ruby-lang.org/issues/3719
8
+ # Source here:
9
+ # https://github.com/ruby/ruby/blob/trunk/lib/open-uri.rb
10
+ module OpenURI
11
+ class <<self
12
+ alias_method :open_uri_original, :open_uri
13
+ alias_method :redirectable_cautious?, :redirectable?
14
+
15
+ def redirectable_baller? uri1, uri2
16
+ valid = /\A(?:https?|ftp)\z/i
17
+ valid =~ uri1.scheme.downcase && valid =~ uri2.scheme
18
+ end
19
+ end
20
+
21
+ # The original open_uri takes *args but then doesn't do anything with them.
22
+ # Assume we can only handle a hash.
23
+ def self.open_uri name, options = {}, &block
24
+ value = options.delete :allow_unsafe_redirects
25
+
26
+ if value
27
+ class <<self
28
+ remove_method :redirectable?
29
+ alias_method :redirectable?, :redirectable_baller?
30
+ end
31
+ else
32
+ class <<self
33
+ remove_method :redirectable?
34
+ alias_method :redirectable?, :redirectable_cautious?
35
+ end
36
+ end
37
+
38
+ self.open_uri_original name, options, &block
39
+ end
40
+ end
@@ -13,7 +13,9 @@ module SitemapChecker
13
13
 
14
14
  def status
15
15
  begin
16
- @status ||= open(@url).status[0]
16
+ @status ||= open(@url, {:allow_unsafe_redirects => true}).status[0]
17
+ rescue RuntimeError => e
18
+ e
17
19
  rescue OpenURI::HTTPError => e
18
20
  e.io.status[0]
19
21
  end
@@ -1,3 +1,3 @@
1
1
  module SitemapChecker
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sitemap_checker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -40,6 +40,7 @@ files:
40
40
  - README.md
41
41
  - Rakefile
42
42
  - lib/sitemap_checker.rb
43
+ - lib/sitemap_checker/open_uri.rb
43
44
  - lib/sitemap_checker/path.rb
44
45
  - lib/sitemap_checker/sitemap.rb
45
46
  - lib/sitemap_checker/version.rb