http_get 0.1.4 → 0.1.5

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
  SHA1:
3
- metadata.gz: 45d847e14f4346b58f698a7de864a62ee641ef5d
4
- data.tar.gz: c13885d12c55944424106eb1431e97121153ceaa
3
+ metadata.gz: fd3fe5e815e5e2ca544bd3e01cc676ec13f12b5b
4
+ data.tar.gz: ffebbc077af748f2a4564ecd396b6afadb7ff111
5
5
  SHA512:
6
- metadata.gz: d1dd784f617aceac9849932573cf38bd98e4b140a0adfd284468d743d4f95e879250bf88fd2603b94b4008d1dac4f3de26fd1bc5e63513951aeeebc3822c98eb
7
- data.tar.gz: 149c1924d2d56d00e4b168b62a5ebb8bb8502244a87de13d5b651451e9c7c22a8823c766a663f1b91d4c57ca96e862241eacf7264b618735cbc68e35d2ef9d14
6
+ metadata.gz: 949d4747353c7812b105d4141afedb2f993b0ca7ee96d9a44d91064545c2dd9c32d1fa0f880a6c20c5095cee62463e229a531143ed62202b6f6f941404afd3ec
7
+ data.tar.gz: 5b6ca671d25f9b53151e183c6ea1186db0abbc926c51656c8f62066c5ccdbeec3e83a047869d68248797e6dfc5f2556c2516fe1603e02555e1de1fe6c591a353
@@ -15,14 +15,26 @@ class HttpGet::Client
15
15
  self
16
16
  end
17
17
 
18
- def get(url, params = {}, redirects: 0, after_success: ->(resp, _, _, _) { resp })
18
+ def get(url, params = {}, redirects = 0,
19
+ after_success: ->(resp) { resp },
20
+ before_redirect: ->(url) { url },
21
+ blocked_condition: ->(resp) { false })
19
22
  raise RedirectError if redirects > 5
20
23
 
21
24
  url = Addressable::URI.parse(url).normalize.to_s
22
-
23
25
  resp = HTTPClient.new(@opts).get(url, params)
24
26
 
25
- after_success.call(resp, url, params, redirects)
27
+ if resp.status_code == 200
28
+ instance_eval { after_success.call(resp) }
29
+ elsif resp.status_code == 301
30
+ redirect_url = before_redirect.call(resp.header['Location'].first)
31
+
32
+ get(redirect_url, params, redirects + 1)
33
+ elsif blocked_condition.call(resp)
34
+ raise BlockedError
35
+ else
36
+ raise MissingError
37
+ end
26
38
  end
27
39
 
28
40
  class BlockedError < StandardError; end
@@ -1,3 +1,3 @@
1
1
  module HttpGet
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_get
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Strömberg