spackle-ruby 0.0.14 → 0.0.15

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: 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