achecker 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/achecker/api.rb +7 -3
- data/lib/achecker/url_builder.rb +3 -4
- data/lib/achecker/version.rb +1 -1
- data/spec/achecker/api_spec.rb +28 -12
- data/spec/achecker/url_builder_spec.rb +9 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d61483eaa32ce5d2657c48a3a9349a1e325918690544993e6ce92ce299c77fa
|
4
|
+
data.tar.gz: 7f706edf00a80751a9f3504462df5b907195ea5c992cd0e8b8e5d66cc0cafc16
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b446d4735926b58e259a97baa245bce17637e7865c797e64d73629ca0894e732be334a13b34cf93e1f6c7a2dce0263254a57fa7fa5d96a1c814967aabc97377
|
7
|
+
data.tar.gz: 8e589db1376e92a8d82d419bc69d061fe94511b3e854f3aa1f96899edf06e8b9bad4d65c8631fcde795c96c095947fa12db91e0b470bcbc6b291e481782cdaf3
|
data/lib/achecker/api.rb
CHANGED
@@ -6,8 +6,10 @@ module AChecker
|
|
6
6
|
|
7
7
|
class Api
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
BASE_URL = "https://achecker.ca/checkacc.php"
|
10
|
+
|
11
|
+
def initialize(id, achecker_url = nil)
|
12
|
+
@url_builder = UrlBuilder.new(id, achecker_url || BASE_URL)
|
11
13
|
@result_builder = CheckResultBuilder.new
|
12
14
|
end
|
13
15
|
|
@@ -15,7 +17,9 @@ module AChecker
|
|
15
17
|
url = @url_builder.build(target_url, "rest")
|
16
18
|
response = Net::HTTP.get_response(url)
|
17
19
|
|
18
|
-
|
20
|
+
unless response.kind_of?(Net::HTTPSuccess) then
|
21
|
+
raise "Error processing \"#{target_url}\". Response status code #{response.code} returned when requesting to achecker at #{url}"
|
22
|
+
end
|
19
23
|
|
20
24
|
@result_builder.build(target_url, @url_builder.build(target_url, "html"), response.body)
|
21
25
|
end
|
data/lib/achecker/url_builder.rb
CHANGED
@@ -4,14 +4,13 @@ module AChecker
|
|
4
4
|
|
5
5
|
class UrlBuilder
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
def initialize(id = nil)
|
7
|
+
def initialize(id, achecker_url)
|
10
8
|
@id = id
|
9
|
+
@achecker_url = achecker_url
|
11
10
|
end
|
12
11
|
|
13
12
|
def build(target_url, output)
|
14
|
-
url = "#{
|
13
|
+
url = "#{@achecker_url}?uri=#{CGI::escape(target_url)}&output=#{output}"
|
15
14
|
url = "#{url}&id=#{@id}" if output == "rest"
|
16
15
|
URI(url)
|
17
16
|
end
|
data/lib/achecker/version.rb
CHANGED
data/spec/achecker/api_spec.rb
CHANGED
@@ -8,10 +8,9 @@ module AChecker
|
|
8
8
|
|
9
9
|
describe "#check" do
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
xml = <<-eos
|
11
|
+
let(:id) { "12345678" }
|
12
|
+
let(:url) { CGI::escape("http://example.com/some-resource/") }
|
13
|
+
let(:xml) { <<-eos
|
15
14
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
16
15
|
<resultset>
|
17
16
|
<summary>
|
@@ -19,20 +18,37 @@ module AChecker
|
|
19
18
|
</summary>
|
20
19
|
</resultset>
|
21
20
|
eos
|
21
|
+
}
|
22
|
+
|
23
|
+
context "when achecker url is not provided" do
|
24
|
+
it "should check url" do
|
25
|
+
stub_request(:get, "https://achecker.ca/checkacc.php")
|
26
|
+
.with(:query => {"uri" => url, "id" => id, "output" => "rest"})
|
27
|
+
.to_return(:body => xml)
|
22
28
|
|
29
|
+
api = Api.new(id)
|
23
30
|
|
24
|
-
|
25
|
-
.with(:query => {"uri" => url, "id" => id, "output" => "rest"})
|
26
|
-
.to_return(:body => xml)
|
31
|
+
result = api.check(url)
|
27
32
|
|
28
|
-
|
33
|
+
expect(result.url).to eq(url)
|
34
|
+
expect(result.num_errors).to eq(30)
|
35
|
+
end
|
36
|
+
end
|
29
37
|
|
30
|
-
|
38
|
+
context "when achecker url is provided" do
|
39
|
+
it "should check url" do
|
40
|
+
stub_request(:get, "https://some.url/checkacc.php")
|
41
|
+
.with(:query => {"uri" => url, "id" => id, "output" => "rest"})
|
42
|
+
.to_return(:body => xml)
|
31
43
|
|
32
|
-
|
33
|
-
expect(result.num_errors).to eq(30)
|
34
|
-
end
|
44
|
+
api = Api.new(id, "https://some.url/checkacc.php")
|
35
45
|
|
46
|
+
result = api.check(url)
|
47
|
+
|
48
|
+
expect(result.url).to eq(url)
|
49
|
+
expect(result.num_errors).to eq(30)
|
50
|
+
end
|
51
|
+
end
|
36
52
|
end
|
37
53
|
|
38
54
|
end
|
@@ -4,11 +4,12 @@ module AChecker
|
|
4
4
|
|
5
5
|
describe UrlBuilder do
|
6
6
|
|
7
|
-
let(:id) { "12345" }
|
8
|
-
let(:builder) { UrlBuilder.new(id) }
|
9
|
-
|
10
7
|
describe "#build" do
|
11
8
|
|
9
|
+
let(:id) { "12345" }
|
10
|
+
let(:achecker_url) { "https://some.other.url/checkacc.php" }
|
11
|
+
let(:builder) { UrlBuilder.new(id, achecker_url) }
|
12
|
+
|
12
13
|
context "when output is rest" do
|
13
14
|
it "should set the id" do
|
14
15
|
url = builder.build("http://target.url", "rest").to_s
|
@@ -23,6 +24,11 @@ module AChecker
|
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
27
|
+
it "should use the provided url" do
|
28
|
+
url = builder.build("http://target.url", "rest").to_s
|
29
|
+
expect(url).to start_with(achecker_url)
|
30
|
+
end
|
31
|
+
|
26
32
|
end
|
27
33
|
|
28
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: achecker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafael Magrin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|