seo_checker 0.2.1 → 0.2.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.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/seo_checker.rb +21 -3
  3. data/seo_checker.gemspec +2 -2
  4. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
data/lib/seo_checker.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'enumerator'
2
2
  require 'logger'
3
+ require 'zlib'
4
+ require 'stringio'
3
5
  require 'net/http'
4
6
  require 'uri'
5
7
 
@@ -36,14 +38,30 @@ class SEOChecker
36
38
 
37
39
  def check_sitemap
38
40
  #TODO: allow manual sitemap file
39
- @logger.debug "checking sitemap file" if @logger
41
+ check_plain_sitemap
42
+ check_gzip_sitemap if @locations.empty?
43
+
44
+ raise SEOException, "Error: There is no sitemap.xml or sitemap.xml.gz" if @locations.empty?
45
+ end
46
+
47
+ def check_plain_sitemap
48
+ @logger.debug "checking sitemap.xml file" if @logger
40
49
  uri = URI.parse(@url)
41
50
  uri.path = '/sitemap.xml'
42
51
  response = get_response(uri)
43
52
  if response.is_a? Net::HTTPSuccess
44
53
  @locations = response.body.scan(%r{<loc>(.*?)</loc>}).flatten
45
- else
46
- raise SEOException, "Error: There is no sitemap.xml."
54
+ end
55
+ end
56
+
57
+ def check_gzip_sitemap
58
+ @logger.debug "checking sitemap.xml.gz file" if @logger
59
+ uri = URI.parse(@url)
60
+ uri.path = '/sitemap.xml.gz'
61
+ response = get_response(uri)
62
+ if response.is_a? Net::HTTPSuccess
63
+ body_io = StringIO.new(response.body)
64
+ @locations = Zlib::GzipReader.new(body_io).read.scan(%r{<loc>(.*?)</loc>}).flatten
47
65
  end
48
66
  end
49
67
 
data/seo_checker.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{seo_checker}
8
- s.version = "0.2.1"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Richard Huang"]
12
- s.date = %q{2010-03-04}
12
+ s.date = %q{2010-03-05}
13
13
  s.description = %q{seo_checker check your website if it is seo.}
14
14
  s.email = %q{flyerhzm@gmail.com}
15
15
  s.executables = ["seo_checker", "seo_checker"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seo_checker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-04 00:00:00 +08:00
12
+ date: 2010-03-05 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15