indexmap 0.2.1 → 0.3.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -3
- data/README.md +47 -0
- data/lib/indexmap/configuration.rb +8 -0
- data/lib/indexmap/google_configuration.rb +21 -0
- data/lib/indexmap/index_now_configuration.rb +45 -0
- data/lib/indexmap/parser.rb +202 -0
- data/lib/indexmap/path.rb +43 -0
- data/lib/indexmap/pinger/base.rb +58 -0
- data/lib/indexmap/pinger/google.rb +78 -0
- data/lib/indexmap/pinger/index_now.rb +173 -0
- data/lib/indexmap/task_runner.rb +9 -0
- data/lib/indexmap/validator.rb +41 -0
- data/lib/indexmap/version.rb +1 -1
- data/lib/indexmap.rb +9 -0
- data/lib/tasks/indexmap_tasks.rake +32 -0
- data/test/indexmap/configuration_test.rb +14 -0
- data/test/indexmap/parser_test.rb +81 -0
- data/test/indexmap/path_test.rb +28 -0
- data/test/indexmap/pinger/google_test.rb +71 -0
- data/test/indexmap/pinger/index_now_test.rb +118 -0
- data/test/indexmap/task_runner_test.rb +48 -0
- data/test/indexmap/validator_test.rb +68 -0
- data/test/test_helper.rb +8 -0
- metadata +85 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class IndexmapValidatorTest < Minitest::Test
|
|
6
|
+
def test_validate_raises_for_missing_sitemap
|
|
7
|
+
Dir.mktmpdir do |directory|
|
|
8
|
+
path = Pathname(directory).join("missing.xml")
|
|
9
|
+
|
|
10
|
+
error = assert_raises(Indexmap::ValidationError) do
|
|
11
|
+
Indexmap::Validator.new(path: path).validate!
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
assert_equal "Missing sitemap file: #{path}", error.message
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_validate_raises_for_duplicate_urls
|
|
19
|
+
Dir.mktmpdir do |directory|
|
|
20
|
+
path = Pathname(directory).join("sitemap.xml")
|
|
21
|
+
path.write(<<~XML)
|
|
22
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
23
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
24
|
+
<url><loc>https://example.com/about</loc></url>
|
|
25
|
+
<url><loc>https://example.com/about</loc></url>
|
|
26
|
+
</urlset>
|
|
27
|
+
XML
|
|
28
|
+
|
|
29
|
+
error = assert_raises(Indexmap::ValidationError) do
|
|
30
|
+
Indexmap::Validator.new(path: path).validate!
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
assert_equal "Duplicate sitemap URLs detected: https://example.com/about", error.message
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_validate_raises_for_parameterized_urls
|
|
38
|
+
Dir.mktmpdir do |directory|
|
|
39
|
+
path = Pathname(directory).join("sitemap.xml")
|
|
40
|
+
path.write(<<~XML)
|
|
41
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
42
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
43
|
+
<url><loc>https://example.com/about?ref=test</loc></url>
|
|
44
|
+
</urlset>
|
|
45
|
+
XML
|
|
46
|
+
|
|
47
|
+
error = assert_raises(Indexmap::ValidationError) do
|
|
48
|
+
Indexmap::Validator.new(path: path).validate!
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
assert_equal "Parameterized sitemap URLs detected: https://example.com/about?ref=test", error.message
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_validate_passes_for_valid_sitemap
|
|
56
|
+
Dir.mktmpdir do |directory|
|
|
57
|
+
path = Pathname(directory).join("sitemap.xml")
|
|
58
|
+
path.write(<<~XML)
|
|
59
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
60
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
61
|
+
<url><loc>https://example.com/about</loc></url>
|
|
62
|
+
</urlset>
|
|
63
|
+
XML
|
|
64
|
+
|
|
65
|
+
assert Indexmap::Validator.new(path: path).validate!
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
$LOAD_PATH.unshift File.expand_path("../lib", __dir__)
|
|
4
4
|
|
|
5
|
+
require "simplecov"
|
|
6
|
+
|
|
7
|
+
SimpleCov.start do
|
|
8
|
+
enable_coverage :branch
|
|
9
|
+
add_filter "/test/"
|
|
10
|
+
end
|
|
11
|
+
|
|
5
12
|
require "minitest/autorun"
|
|
6
13
|
require "tmpdir"
|
|
7
14
|
require "date"
|
|
15
|
+
require "webmock/minitest"
|
|
8
16
|
|
|
9
17
|
require "indexmap"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: indexmap
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Paulo Fidalgo
|
|
@@ -24,6 +24,48 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '7.1'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: faraday
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '2.0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '2.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: google-apis-searchconsole_v1
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.18'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0.18'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: googleauth
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '1.12'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '1.12'
|
|
27
69
|
- !ruby/object:Gem::Dependency
|
|
28
70
|
name: nokogiri
|
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,6 +122,20 @@ dependencies:
|
|
|
80
122
|
- - "~>"
|
|
81
123
|
- !ruby/object:Gem::Version
|
|
82
124
|
version: '13.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: simplecov
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0.22'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0.22'
|
|
83
139
|
- !ruby/object:Gem::Dependency
|
|
84
140
|
name: standard
|
|
85
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +150,20 @@ dependencies:
|
|
|
94
150
|
- - "~>"
|
|
95
151
|
- !ruby/object:Gem::Version
|
|
96
152
|
version: '1.0'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: webmock
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '3.0'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '3.0'
|
|
97
167
|
description: A small Ruby gem for generating sitemap indexes and child sitemaps from
|
|
98
168
|
explicit section definitions, with optional Rails rake task integration.
|
|
99
169
|
email:
|
|
@@ -108,13 +178,27 @@ files:
|
|
|
108
178
|
- lib/indexmap.rb
|
|
109
179
|
- lib/indexmap/configuration.rb
|
|
110
180
|
- lib/indexmap/entry.rb
|
|
181
|
+
- lib/indexmap/google_configuration.rb
|
|
182
|
+
- lib/indexmap/index_now_configuration.rb
|
|
183
|
+
- lib/indexmap/parser.rb
|
|
184
|
+
- lib/indexmap/path.rb
|
|
185
|
+
- lib/indexmap/pinger/base.rb
|
|
186
|
+
- lib/indexmap/pinger/google.rb
|
|
187
|
+
- lib/indexmap/pinger/index_now.rb
|
|
111
188
|
- lib/indexmap/railtie.rb
|
|
112
189
|
- lib/indexmap/section.rb
|
|
113
190
|
- lib/indexmap/task_runner.rb
|
|
191
|
+
- lib/indexmap/validator.rb
|
|
114
192
|
- lib/indexmap/version.rb
|
|
115
193
|
- lib/indexmap/writer.rb
|
|
116
194
|
- lib/tasks/indexmap_tasks.rake
|
|
117
195
|
- test/indexmap/configuration_test.rb
|
|
196
|
+
- test/indexmap/parser_test.rb
|
|
197
|
+
- test/indexmap/path_test.rb
|
|
198
|
+
- test/indexmap/pinger/google_test.rb
|
|
199
|
+
- test/indexmap/pinger/index_now_test.rb
|
|
200
|
+
- test/indexmap/task_runner_test.rb
|
|
201
|
+
- test/indexmap/validator_test.rb
|
|
118
202
|
- test/indexmap/writer_test.rb
|
|
119
203
|
- test/test_helper.rb
|
|
120
204
|
homepage: https://www.ethos-link.com/opensource/indexmap
|