spackle-ruby 0.0.14 → 0.0.15

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
  SHA256:
3
- metadata.gz: cafee13ca0d2f07ea47389d6a8dc8c48fb85ba5c32fd4e7b4dbcdec8b1ade3e5
4
- data.tar.gz: 1bd2685e9bc6a5103cae2ab1aee788a01f99e410e4d98d5bf817b0c644f38866
3
+ metadata.gz: 62488969b7e0cbd8420db57f77f1f75b7c7b0cd7e9ca246521bc01c3a91c94f0
4
+ data.tar.gz: ed07a041cf115c6120bdfc1940a11dc322908c95e3e10fb99842a74aa7dec32a
5
5
  SHA512:
6
- metadata.gz: 0af2295c908d9a31a31f20c87149af87c0149fae0908f836152ffd312330803dadd481c677c081f36af859516d6e0b99245dfe21d6f550b5029de1a38cbfccab
7
- data.tar.gz: 1d0dd8dba75ed289375c0b7d2da98ab49c8d1561c7bee794c7fbae6c5cc7e1dcd6c9342b30e9bdc93bd7f72bf8274bb6c452e601714519079a951ae40adfe99e
6
+ metadata.gz: c89eb3973dbdbd7b3b72d9c83cbbd62e0d7eb06c03c84f4bd3f19978e52d3f6881a62dd4367839ba48ce1133cce0dc611be07bd6c01a5339d67f292c02be6dba
7
+ data.tar.gz: f26e1cb1ea3c87a9baa86b3108801bb2fd4c4775c2e1850e29d3684dfcb23c1b25d2dcc80ef94a01936179096731c01cfdecec90b8a20dc72194dae969ee4e56
data/Gemfile CHANGED
@@ -9,3 +9,5 @@ gem "nokogiri", "~> 1.13"
9
9
  gem "minitest", "~> 5.18"
10
10
  gem "webmock", "~> 3.18"
11
11
  gem "stripe", "~> 8.3"
12
+ gem "http", "~> 5.1"
13
+ gem "connection_pool", "~> 2.4"
@@ -1,46 +1,43 @@
1
- require 'net/http'
1
+ require 'connection_pool'
2
+ require 'http'
2
3
  require 'json'
3
4
  require 'logger'
4
5
 
5
6
  module Spackle
6
7
  class EdgeStore < BaseStore
7
8
  def initialize()
8
- edge_uri = URI(Spackle.edge_base)
9
- @edge_http = Net::HTTP.new(edge_uri.host, edge_uri.port)
10
- @edge_http.use_ssl = true
9
+ @edge = ConnectionPool.new(size: 10, timeout: 5) do
10
+ HTTP.persistent(Spackle.edge_base)
11
+ end
11
12
 
12
- api_uri = URI(Spackle.api_base)
13
- @api_http = Net::HTTP.new(api_uri.host, api_uri.port)
14
- @api_http.use_ssl = true
13
+ @api = ConnectionPool.new(size: 10, timeout: 5) do
14
+ HTTP.persistent(Spackle.api_base)
15
+ end
15
16
  end
16
17
 
17
18
  def get_customer_data(id)
18
- request = Net::HTTP::Get.new(Spackle.edge_base + '/customers/' + id + '/state')
19
- request['Authorization'] = 'Bearer ' + Spackle.api_key
20
- request['X-Spackle-Schema-Version'] = Spackle.version.to_s
19
+ @edge.with do |http|
20
+ response = http.auth("Bearer #{Spackle.api_key}").get(Spackle.edge_base + '/customers/' + id + '/state').flush
21
21
 
22
- response = @edge_http.request(request)
23
- if response.code != '200'
24
- return fetch_state_from_api(id)
25
- end
22
+ if response.code != 200
23
+ return fetch_state_from_api(id)
24
+ end
26
25
 
27
- JSON.parse(response.body)
26
+ return JSON.parse(response.body)
27
+ end
28
28
  end
29
29
 
30
30
  def fetch_state_from_api(id)
31
31
  Util.log_warn("Customer #{id} not found. Fetching from API...")
32
- request = Net::HTTP::Get.new(Spackle.api_base + '/customers/' + id + '/state')
33
- request['Authorization'] = 'Bearer ' + Spackle.api_key
34
- request['X-Spackle-Schema-Version'] = Spackle.version.to_s
35
-
36
- response = @api_http.request(request)
37
- if response.code != '200'
38
- puts response.code
39
- puts response.body
40
- raise SpackleError.new "Customer #{id} not found"
41
- end
32
+ @api.with do |http|
33
+ response = http.auth("Bearer #{Spackle.api_key}").get(Spackle.api_base + '/customers/' + id + '/state').flush
34
+
35
+ if response.code != 200
36
+ raise SpackleError.new "Customer #{id} not found"
37
+ end
42
38
 
43
- JSON.parse(response.body)
39
+ return JSON.parse(response.body)
40
+ end
44
41
  end
45
42
  end
46
43
  end
data/spackle.gemspec CHANGED
@@ -2,7 +2,7 @@ $LOAD_PATH.unshift(::File.join(::File.dirname(__FILE__), "lib"))
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "spackle-ruby"
5
- s.version = "0.0.14"
5
+ s.version = "0.0.15"
6
6
  s.summary = "Spackle Ruby gem"
7
7
  s.description = "Spackle is the easiest way to integrate your Ruby app with Stripe Billing. " \
8
8
  "See https://www.spackle.so for details."
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
20
20
 
21
21
  s.add_dependency "nokogiri", "~> 1.13"
22
22
  s.add_dependency "stripe", "~> 8.3"
23
+ s.add_dependency "http", "~> 5.1"
24
+ s.add_dependency "connection_pool", "~> 2.4"
23
25
 
24
26
  s.add_development_dependency "rake", "~> 13.0"
25
27
  s.add_development_dependency "minitest", "~> 5.18"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spackle-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spackle
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '8.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: http
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: connection_pool
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.4'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: rake
43
71
  requirement: !ruby/object:Gem::Requirement