http_get 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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