golia 1.2.2 → 1.3.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/README.rdoc +22 -16
- data/Rakefile +1 -1
- data/bin/golia +1 -1
- data/golia.gemspec +1 -1
- data/lib/golia.rb +31 -14
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -9,26 +9,32 @@ Golia is an website performance analyzer. Check <b>speed</b> and <b>dead</b> lin
|
|
9
9
|
|
10
10
|
You see an output like that:
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
Valid (0.71ms) http://padrinorb.com/
|
16
|
-
Valid (0.
|
17
|
-
Valid (0.
|
18
|
-
Valid (0.
|
19
|
-
|
20
|
-
Valid (0.
|
12
|
+
$ golia padrinorb.com --w3c
|
13
|
+
|
14
|
+
OK - Ignore - (0.66ms) http://padrinorb.com/stylesheets/padrino-bundle.css?1302660688
|
15
|
+
OK - Valid - (0.71ms) http://padrinorb.com/blog
|
16
|
+
OK - Not Valid - (0.72ms) http://padrinorb.com/api
|
17
|
+
OK - Valid - (0.65ms) http://padrinorb.com/pages/why
|
18
|
+
OK - Valid - (0.58ms) http://padrinorb.com/team
|
19
|
+
OK - Ignore - (0.88ms) http://padrinorb.com/javascripts/padrino-bundle.js?1302660688
|
20
|
+
OK - Not Valid - (0.77ms) http://padrinorb.com/guides
|
21
|
+
OK - Not Valid - (0.57ms) http://padrinorb.com/blog/padrino-slides
|
22
|
+
OK - Not Valid - (0.67ms) http://padrinorb.com/blog/looking-at-projects-using-padrino
|
23
|
+
OK - Not Valid - (0.65ms) http://padrinorb.com/blog/padrino-0-9-21-nested-forms-translations-and-more
|
24
|
+
OK - Not Valid - (0.57ms) http://padrinorb.com/blog/padrino-0-9-20-now-works-with-sinatra-1-2
|
21
25
|
|
22
26
|
======== SUMMARY ========
|
23
|
-
|
24
|
-
|
25
|
-
http://padrinorb.com/hhttps://github.com/apeacox/picciotto
|
27
|
+
OK Links: 48
|
28
|
+
KO Links: 0
|
26
29
|
Long requests: 4
|
27
|
-
http://padrinorb.com/guides/blog-tutorial
|
28
30
|
http://padrinorb.com/changes
|
29
|
-
http://padrinorb.com/guides/
|
30
|
-
http://padrinorb.com/
|
31
|
-
|
31
|
+
http://padrinorb.com/guides/application-helpers
|
32
|
+
http://padrinorb.com/guides/home
|
33
|
+
http://padrinorb.com/guides/adding-new-components
|
34
|
+
Invalid W3C Links: 37
|
35
|
+
http://validator.lipsiasoft.com/check?uri=http://padrinorb.com/api
|
36
|
+
http://validator.lipsiasoft.com/check?uri=http://padrinorb.com/guides
|
37
|
+
Average load time 0.73ms
|
32
38
|
|
33
39
|
== Future
|
34
40
|
|
data/Rakefile
CHANGED
@@ -23,13 +23,13 @@ desc "Release the gem"
|
|
23
23
|
task :release => :package do
|
24
24
|
sh "gem push pkg/#{gemspec.name}-#{gemspec.version}.gem"
|
25
25
|
sh "rm -rf pkg"
|
26
|
+
sh "git add .; git commit -m \"Bump to version #{gemspec.version}\"; git push"
|
26
27
|
end
|
27
28
|
|
28
29
|
desc "Installs the gem locally"
|
29
30
|
task :install => :package do
|
30
31
|
sh "gem install pkg/#{gemspec.name}-#{gemspec.version}"
|
31
32
|
sh "rm -rf pkg"
|
32
|
-
sh "git add .; git commit -m \"Bump to version #{gemspec.version}\"; git push"
|
33
33
|
end
|
34
34
|
|
35
35
|
Rake::GemPackageTask.new(gemspec) do |pkg|
|
data/bin/golia
CHANGED
data/golia.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.description = "Golia is an website performance analyzer. Check speed and dead links."
|
9
9
|
s.default_executable = "golia"
|
10
10
|
s.executables = ["golia"]
|
11
|
-
s.version = "1.
|
11
|
+
s.version = "1.3.0"
|
12
12
|
s.date = Time.now.strftime("%Y-%m-%d")
|
13
13
|
s.extra_rdoc_files = Dir["*.rdoc"]
|
14
14
|
s.files = %w(README.rdoc Rakefile golia.gemspec) + Dir["lib/**/*"]
|
data/lib/golia.rb
CHANGED
@@ -5,14 +5,15 @@ require 'benchmark'
|
|
5
5
|
require 'tmpdir'
|
6
6
|
|
7
7
|
class Golia
|
8
|
-
def initialize(link)
|
8
|
+
def initialize(link, validate)
|
9
|
+
@okate = validate
|
9
10
|
@host = begin
|
10
11
|
link = "http://#{link}" unless link =~ /^http(s?)/
|
11
12
|
"http#{$1}://" + URI.parse(link).host
|
12
13
|
end
|
13
14
|
|
14
15
|
@pid = "#{Dir.tmpdir}/golia-#{URI.parse(link).host}"
|
15
|
-
@checked, @links, @
|
16
|
+
@checked, @links, @ko, @ok, @long, @invalid, @ms = [], [], [], [], [], [], []
|
16
17
|
|
17
18
|
if File.exist?(@pid)
|
18
19
|
puts "<= Founded staled pid"
|
@@ -21,12 +22,12 @@ class Golia
|
|
21
22
|
|
22
23
|
trap("INT") { puts "<= Golia has ended his set (crowd applauds)"; kill }
|
23
24
|
|
24
|
-
|
25
|
+
begin
|
25
26
|
parse!(link)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
rescue
|
28
|
+
puts "<= Invalid url #{link}"
|
29
|
+
kill
|
30
|
+
end
|
30
31
|
end
|
31
32
|
|
32
33
|
def parse!(url)
|
@@ -45,6 +46,18 @@ class Golia
|
|
45
46
|
@links.concat(links-@checked)
|
46
47
|
end
|
47
48
|
|
49
|
+
def validate!(url)
|
50
|
+
return "\e[33mIgnore \e[0m" if !@okate || File.extname(url) != ""
|
51
|
+
body = open("http://validator.lipsiasoft.com/check?uri="+url).read
|
52
|
+
body =~ /<title>.+?(\[invalid\]|\[valid\])/mi
|
53
|
+
if $1 =~ /invalid/i
|
54
|
+
@invalid << url
|
55
|
+
return "\e[31mNot Valid\e[0m"
|
56
|
+
else
|
57
|
+
return "\e[32mValid \e[0m"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
48
61
|
def kill
|
49
62
|
Process.kill(9, Process.pid)
|
50
63
|
FileUtils.rm_rf(@pid)
|
@@ -57,12 +70,12 @@ class Golia
|
|
57
70
|
begin
|
58
71
|
@checked << link
|
59
72
|
parse!(link)
|
60
|
-
@
|
73
|
+
@ok << link
|
61
74
|
@long << link if @ms.last > 1
|
62
|
-
puts "\e[
|
75
|
+
puts "\e[32mOK\e[0m - #{validate!(link)} - (%0.2fms) %s" % [@ms.last, link]
|
63
76
|
rescue Exception => e
|
64
|
-
@
|
65
|
-
puts "\e[
|
77
|
+
@ko << link
|
78
|
+
puts "\e[31mKO\e[0m %s - %s" % [link, e.message]
|
66
79
|
ensure
|
67
80
|
@links.delete(link)
|
68
81
|
end
|
@@ -70,15 +83,19 @@ class Golia
|
|
70
83
|
end
|
71
84
|
puts
|
72
85
|
puts "======== SUMMARY ========"
|
73
|
-
puts "
|
74
|
-
puts "
|
75
|
-
@
|
86
|
+
puts "OK Links: %d" % @ok.size
|
87
|
+
puts "KO Links: %d" % @ko.size
|
88
|
+
@ko.each do |link|
|
76
89
|
puts " #{link}"
|
77
90
|
end
|
78
91
|
puts "Long requests: %d" % @long.size
|
79
92
|
@long.each do |link|
|
80
93
|
puts " #{link}"
|
81
94
|
end
|
95
|
+
puts "Invalid W3C Links: %d" % @invalid.size
|
96
|
+
@invalid.each do |link|
|
97
|
+
puts " http://validator.lipsiasoft.com/check?uri=#{link}"
|
98
|
+
end
|
82
99
|
puts "Average load time %0.2fms" % [@ms.inject(0) { |memo, ms| memo+=ms; memo }/@ms.size]
|
83
100
|
puts
|
84
101
|
kill
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 1.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- DAddYE
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-13 00:00:00 +02:00
|
19
19
|
default_executable: golia
|
20
20
|
dependencies: []
|
21
21
|
|