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 +4 -4
- data/Gemfile +2 -0
- data/lib/spackle/stores/edge.rb +23 -26
- data/spackle.gemspec +3 -1
- metadata +29 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62488969b7e0cbd8420db57f77f1f75b7c7b0cd7e9ca246521bc01c3a91c94f0
|
4
|
+
data.tar.gz: ed07a041cf115c6120bdfc1940a11dc322908c95e3e10fb99842a74aa7dec32a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c89eb3973dbdbd7b3b72d9c83cbbd62e0d7eb06c03c84f4bd3f19978e52d3f6881a62dd4367839ba48ce1133cce0dc611be07bd6c01a5339d67f292c02be6dba
|
7
|
+
data.tar.gz: f26e1cb1ea3c87a9baa86b3108801bb2fd4c4775c2e1850e29d3684dfcb23c1b25d2dcc80ef94a01936179096731c01cfdecec90b8a20dc72194dae969ee4e56
|
data/Gemfile
CHANGED
data/lib/spackle/stores/edge.rb
CHANGED
@@ -1,46 +1,43 @@
|
|
1
|
-
require '
|
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
|
-
|
9
|
-
|
10
|
-
|
9
|
+
@edge = ConnectionPool.new(size: 10, timeout: 5) do
|
10
|
+
HTTP.persistent(Spackle.edge_base)
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
19
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
22
|
+
if response.code != 200
|
23
|
+
return fetch_state_from_api(id)
|
24
|
+
end
|
26
25
|
|
27
|
-
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
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.
|
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.
|
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
|