site_checker 0.2.0.pre → 0.2.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/History.md +18 -0
- data/lib/site_checker/link.rb +13 -2
- data/lib/site_checker/link_collector.rb +8 -8
- data/site_checker.gemspec +2 -2
- metadata +6 -9
data/History.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
## [v0.2.0](https://github.com/ZsoltFabok/site_checker/compare/v0.1.1...v0.2.0)
|
2
|
+
|
3
|
+
### Notes
|
4
|
+
* the API has changed, please check the [README.md](https://github.com/ZsoltFabok/site_checker/blob/1d616b8a446ed7af98b9ac3785e6b7f92e717f72/README.md) for more details
|
5
|
+
|
6
|
+
### Fixes
|
7
|
+
* performance improvements (Zsolt Fabok)
|
8
|
+
* the referenced URIs appear in the problem report exactly as they are specified in the sites (Zsolt Fabok)
|
9
|
+
* recognize an anchor which refers to another site (Zsolt Fabok)
|
10
|
+
* a not found reference is reported at each occurrence (Zsolt Fabok)
|
11
|
+
|
12
|
+
### Other Changes
|
13
|
+
* [code climate](https://codeclimate.com/github/ZsoltFabok/site_checker) improvements: D -> A (Zsolt Fabok)
|
14
|
+
* better gem structure (Zsolt Fabok)
|
15
|
+
* a local URI with an absolute path is also visited (Zsolt Fabok)
|
16
|
+
* travis, gemnasium integration (Zsolt Fabok)
|
17
|
+
* ruby-docs (Zsolt Fabok)
|
18
|
+
|
1
19
|
## [v0.1.1](https://github.com/ZsoltFabok/site_checker/compare/v0.1.0...v0.1.1)
|
2
20
|
|
3
21
|
### Fixes
|
data/lib/site_checker/link.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module SiteChecker
|
2
2
|
class Link
|
3
3
|
attr_accessor :url
|
4
|
+
attr_accessor :modified_url
|
4
5
|
attr_accessor :parent_url
|
5
6
|
attr_accessor :kind
|
6
7
|
attr_accessor :location
|
7
8
|
attr_accessor :problem
|
8
9
|
|
9
10
|
def eql?(other)
|
10
|
-
|
11
|
+
@modified_url.eql? other.modified_url
|
11
12
|
end
|
12
13
|
|
13
14
|
def ==(other)
|
@@ -15,7 +16,7 @@ module SiteChecker
|
|
15
16
|
end
|
16
17
|
|
17
18
|
def hash
|
18
|
-
|
19
|
+
@modified_url.hash
|
19
20
|
end
|
20
21
|
|
21
22
|
def self.create(attrs)
|
@@ -28,6 +29,16 @@ module SiteChecker
|
|
28
29
|
link
|
29
30
|
end
|
30
31
|
|
32
|
+
def parent_url=(parent_url)
|
33
|
+
@modified_url = "#{parent_url}##{@url}" if anchor?
|
34
|
+
@parent_url = parent_url
|
35
|
+
end
|
36
|
+
|
37
|
+
def url=(url)
|
38
|
+
@modified_url = ignore_trailing_slash(url)
|
39
|
+
@url = url
|
40
|
+
end
|
41
|
+
|
31
42
|
def has_problem?
|
32
43
|
@problem != nil
|
33
44
|
end
|
@@ -10,7 +10,7 @@ module SiteChecker
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def check(url, root)
|
13
|
-
@links =
|
13
|
+
@links = {}
|
14
14
|
@recursion_depth = 0
|
15
15
|
@root = root
|
16
16
|
|
@@ -40,7 +40,7 @@ module SiteChecker
|
|
40
40
|
|
41
41
|
def problems
|
42
42
|
problems = {}
|
43
|
-
@links.each do |link|
|
43
|
+
@links.keys.each do |link|
|
44
44
|
if link.has_problem?
|
45
45
|
problems[link.parent_url] ||= []
|
46
46
|
problems[link.parent_url] << "#{link.url} #{link.problem}"
|
@@ -59,7 +59,7 @@ module SiteChecker
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def get_urls(location, kind)
|
62
|
-
@links.find_all do |link|
|
62
|
+
@links.keys.find_all do |link|
|
63
63
|
if link.location == location && link.kind == kind
|
64
64
|
link
|
65
65
|
end
|
@@ -76,17 +76,17 @@ module SiteChecker
|
|
76
76
|
unless link.anchor_related?
|
77
77
|
visit(link) unless visited?(link)
|
78
78
|
else
|
79
|
-
@links
|
79
|
+
@links[link] = nil
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
84
|
def register_visit(link)
|
85
|
-
@links
|
85
|
+
@links[link] = nil unless visited?(link)
|
86
86
|
end
|
87
87
|
|
88
88
|
def visited?(link)
|
89
|
-
@links.
|
89
|
+
@links.has_key?(link)
|
90
90
|
end
|
91
91
|
|
92
92
|
def visit(link)
|
@@ -128,8 +128,8 @@ module SiteChecker
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def evaluate_anchors
|
131
|
-
anchors = @links.find_all {|link| link.anchor?}
|
132
|
-
anchor_references = @links.find_all {|link| link.anchor_ref?}
|
131
|
+
anchors = @links.keys.find_all {|link| link.anchor?}
|
132
|
+
anchor_references = @links.keys.find_all {|link| link.anchor_ref?}
|
133
133
|
anchor_references.each do |anchor_ref|
|
134
134
|
if find_matching_anchor(anchors, anchor_ref).empty?
|
135
135
|
anchor_ref.problem = "(404 Not Found)"
|
data/site_checker.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'site_checker'
|
4
|
-
s.version = '0.2.0
|
5
|
-
s.date = '2012-12-
|
4
|
+
s.version = '0.2.0'
|
5
|
+
s.date = '2012-12-23'
|
6
6
|
s.summary = "site_checker-#{s.version}"
|
7
7
|
s.description = "A simple tool for checking references on your website"
|
8
8
|
s.authors = ["Zsolt Fabok"]
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Zsolt Fabok
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -135,21 +135,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
135
|
- - ! '>='
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '0'
|
138
|
-
segments:
|
139
|
-
- 0
|
140
|
-
hash: 3689641992990100431
|
141
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
139
|
none: false
|
143
140
|
requirements:
|
144
|
-
- - ! '
|
141
|
+
- - ! '>='
|
145
142
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
143
|
+
version: '0'
|
147
144
|
requirements: []
|
148
145
|
rubyforge_project:
|
149
146
|
rubygems_version: 1.8.23
|
150
147
|
signing_key:
|
151
148
|
specification_version: 3
|
152
|
-
summary: site_checker-0.2.0
|
149
|
+
summary: site_checker-0.2.0
|
153
150
|
test_files:
|
154
151
|
- spec/dsl_spec.rb
|
155
152
|
- spec/integration_spec.rb
|