achecker 0.0.8 → 0.0.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81cb83286205d2f7a2422edaf1da303ca3b32f21f1b98fd94f3b316a21248679
4
- data.tar.gz: 822ebb9607a6e5a35e9a48779683bd4d56f243493c93eeff5f2e9a109ce0d576
3
+ metadata.gz: 6d61483eaa32ce5d2657c48a3a9349a1e325918690544993e6ce92ce299c77fa
4
+ data.tar.gz: 7f706edf00a80751a9f3504462df5b907195ea5c992cd0e8b8e5d66cc0cafc16
5
5
  SHA512:
6
- metadata.gz: 8c557df7575c0763bcabeb2453bed0659e7fb84c3bf02c77e483819040853464fe751a4b51d2da6cc7dc62170ed6c2c58878d5e1aab2fb1cc7be13ebc6ba0ca5
7
- data.tar.gz: f817494396fbf8c48b8904c221eff8928d38c254af22a158fdf8589ece7cae4640d0860a0bc50ead3b8f21cfd002936e839cf7abadc54388ece3ac9ad6884c81
6
+ metadata.gz: 6b446d4735926b58e259a97baa245bce17637e7865c797e64d73629ca0894e732be334a13b34cf93e1f6c7a2dce0263254a57fa7fa5d96a1c814967aabc97377
7
+ data.tar.gz: 8e589db1376e92a8d82d419bc69d061fe94511b3e854f3aa1f96899edf06e8b9bad4d65c8631fcde795c96c095947fa12db91e0b470bcbc6b291e481782cdaf3
@@ -6,8 +6,10 @@ module AChecker
6
6
 
7
7
  class Api
8
8
 
9
- def initialize(id)
10
- @url_builder = UrlBuilder.new(id)
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
- raise "Error processing \"#{target_url}\". Response status code #{response.code}" unless response.kind_of?(Net::HTTPSuccess)
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
@@ -4,14 +4,13 @@ module AChecker
4
4
 
5
5
  class UrlBuilder
6
6
 
7
- BASE_URL = "https://achecker.ca/checkacc.php"
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 = "#{BASE_URL}?uri=#{CGI::escape(target_url)}&output=#{output}"
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
@@ -1,3 +1,3 @@
1
1
  module AChecker
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -8,10 +8,9 @@ module AChecker
8
8
 
9
9
  describe "#check" do
10
10
 
11
- it "should check url" do
12
- id = "12345678"
13
- url = CGI::escape("http://example.com/some-resource/")
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
- stub_request(:get, "https://achecker.ca/checkacc.php")
25
- .with(:query => {"uri" => url, "id" => id, "output" => "rest"})
26
- .to_return(:body => xml)
31
+ result = api.check(url)
27
32
 
28
- api = Api.new(id)
33
+ expect(result.url).to eq(url)
34
+ expect(result.num_errors).to eq(30)
35
+ end
36
+ end
29
37
 
30
- result = api.check(url)
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
- expect(result.url).to eq(url)
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.8
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-10 00:00:00.000000000 Z
11
+ date: 2020-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri