recurly 3.0.0.beta.4 → 3.0.0.beta.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +3 -1
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/recurly.rb +6 -2
- data/lib/recurly/client.rb +31 -26
- data/lib/recurly/client/adapter.rb +4 -2
- data/lib/recurly/client/operations.rb +118 -8
- data/lib/recurly/errors.rb +1 -1
- data/lib/recurly/pager.rb +3 -3
- data/lib/recurly/requests/account_acquisition_updatable.rb +1 -1
- data/lib/recurly/requests/account_create.rb +2 -2
- data/lib/recurly/requests/account_purchase.rb +86 -0
- data/lib/recurly/requests/account_update.rb +2 -2
- data/lib/recurly/requests/add_on_create.rb +3 -3
- data/lib/recurly/requests/add_on_update.rb +3 -3
- data/lib/recurly/requests/coupon_create.rb +6 -6
- data/lib/recurly/requests/external_refund.rb +1 -1
- data/lib/recurly/requests/invoice_create.rb +2 -2
- data/lib/recurly/requests/invoice_refund.rb +2 -2
- data/lib/recurly/requests/line_item_create.rb +3 -3
- data/lib/recurly/requests/plan_create.rb +3 -3
- data/lib/recurly/requests/plan_update.rb +4 -4
- data/lib/recurly/requests/purchase_create.rb +74 -0
- data/lib/recurly/requests/shipping_address_update.rb +2 -2
- data/lib/recurly/requests/subscription_change_create.rb +2 -2
- data/lib/recurly/requests/subscription_create.rb +1 -1
- data/lib/recurly/requests/subscription_purchase.rb +58 -0
- data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_update.rb +2 -2
- data/lib/recurly/resources/account.rb +18 -18
- data/lib/recurly/resources/account_acquisition.rb +9 -9
- data/lib/recurly/resources/account_balance.rb +2 -2
- data/lib/recurly/resources/account_mini.rb +4 -4
- data/lib/recurly/resources/account_note.rb +6 -6
- data/lib/recurly/resources/add_on.rb +15 -15
- data/lib/recurly/resources/add_on_mini.rb +4 -4
- data/lib/recurly/resources/billing_info.rb +16 -16
- data/lib/recurly/resources/billing_info_payment_method.rb +1 -1
- data/lib/recurly/resources/coupon.rb +16 -16
- data/lib/recurly/resources/coupon_discount.rb +1 -1
- data/lib/recurly/resources/coupon_discount_trial.rb +1 -1
- data/lib/recurly/resources/coupon_mini.rb +6 -6
- data/lib/recurly/resources/coupon_redemption.rb +12 -12
- data/lib/recurly/resources/coupon_redemption_mini.rb +7 -7
- data/lib/recurly/resources/credit_payment.rb +7 -7
- data/lib/recurly/resources/custom_field_definition.rb +12 -12
- data/lib/recurly/resources/error.rb +1 -1
- data/lib/recurly/resources/error_may_have_transaction.rb +1 -1
- data/lib/recurly/resources/fraud_info.rb +1 -1
- data/lib/recurly/resources/invoice.rb +12 -12
- data/lib/recurly/resources/invoice_mini.rb +2 -2
- data/lib/recurly/resources/line_item.rb +6 -6
- data/lib/recurly/resources/plan.rb +15 -15
- data/lib/recurly/resources/plan_mini.rb +4 -4
- data/lib/recurly/resources/settings.rb +6 -6
- data/lib/recurly/resources/shipping_address.rb +8 -8
- data/lib/recurly/resources/site.rb +16 -16
- data/lib/recurly/resources/subscription.rb +2 -2
- data/lib/recurly/resources/subscription_change.rb +8 -8
- data/lib/recurly/resources/transaction.rb +8 -8
- data/lib/recurly/resources/transaction_payment_method.rb +2 -2
- data/lib/recurly/resources/unique_coupon_code.rb +11 -11
- data/lib/recurly/resources/user.rb +8 -8
- data/lib/recurly/schema.rb +5 -6
- data/lib/recurly/schema/json_deserializer.rb +5 -4
- data/lib/recurly/schema/json_parser.rb +4 -4
- data/lib/recurly/schema/request_caster.rb +4 -4
- data/lib/recurly/schema/schema_factory.rb +1 -1
- data/lib/recurly/schema/schema_validator.rb +1 -2
- data/lib/recurly/version.rb +1 -1
- data/recurly.gemspec +12 -11
- data/scripts/format +6 -0
- data/scripts/test +12 -1
- metadata +22 -5
- data/scripts/check-deps +0 -28
- data/scripts/install-deps +0 -44
@@ -6,13 +6,13 @@ module Recurly
|
|
6
6
|
module Resources
|
7
7
|
class User < Resource
|
8
8
|
|
9
|
-
# @!attribute
|
9
|
+
# @!attribute created_at
|
10
10
|
# @return [DateTime]
|
11
|
-
define_attribute :created_at, DateTime
|
11
|
+
define_attribute :created_at, DateTime
|
12
12
|
|
13
|
-
# @!attribute
|
13
|
+
# @!attribute deleted_at
|
14
14
|
# @return [DateTime]
|
15
|
-
define_attribute :deleted_at, DateTime
|
15
|
+
define_attribute :deleted_at, DateTime
|
16
16
|
|
17
17
|
# @!attribute email
|
18
18
|
# @return [String]
|
@@ -22,17 +22,17 @@ module Recurly
|
|
22
22
|
# @return [String]
|
23
23
|
define_attribute :first_name, String
|
24
24
|
|
25
|
-
# @!attribute
|
25
|
+
# @!attribute id
|
26
26
|
# @return [String]
|
27
|
-
define_attribute :id, String
|
27
|
+
define_attribute :id, String
|
28
28
|
|
29
29
|
# @!attribute last_name
|
30
30
|
# @return [String]
|
31
31
|
define_attribute :last_name, String
|
32
32
|
|
33
|
-
# @!attribute
|
33
|
+
# @!attribute object
|
34
34
|
# @return [String] Object type
|
35
|
-
define_attribute :object, String
|
35
|
+
define_attribute :object, String
|
36
36
|
|
37
37
|
# @!attribute time_zone
|
38
38
|
# @return [String]
|
data/lib/recurly/schema.rb
CHANGED
@@ -88,7 +88,7 @@ module Recurly
|
|
88
88
|
# @return [String]
|
89
89
|
attr_accessor :description
|
90
90
|
|
91
|
-
def initialize(name, type, options={}, description=nil)
|
91
|
+
def initialize(name, type, options = {}, description = nil)
|
92
92
|
@name = name
|
93
93
|
@type = type
|
94
94
|
@options = options
|
@@ -113,9 +113,8 @@ module Recurly
|
|
113
113
|
private_constant :Attribute
|
114
114
|
end
|
115
115
|
|
116
|
-
|
117
|
-
require_relative
|
118
|
-
require_relative
|
119
|
-
require_relative
|
120
|
-
require_relative './schema/request_caster'
|
116
|
+
require_relative "./schema/schema_factory"
|
117
|
+
require_relative "./schema/schema_validator"
|
118
|
+
require_relative "./schema/json_deserializer"
|
119
|
+
require_relative "./schema/request_caster"
|
121
120
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "date"
|
2
2
|
|
3
3
|
module Recurly
|
4
4
|
class Schema
|
@@ -18,7 +18,7 @@ module Recurly
|
|
18
18
|
def from_json(attributes = {})
|
19
19
|
resource = new()
|
20
20
|
attributes.each do |attr_name, val|
|
21
|
-
next if attr_name ==
|
21
|
+
next if attr_name == "object"
|
22
22
|
|
23
23
|
schema_attr = self.schema.get_attribute(attr_name)
|
24
24
|
|
@@ -44,8 +44,9 @@ module Recurly
|
|
44
44
|
|
45
45
|
resource.send(writer, val)
|
46
46
|
else
|
47
|
-
|
48
|
-
|
47
|
+
if Recurly::STRICT_MODE
|
48
|
+
raise ArgumentError, "#{resource.class.name} encountered json attribute #{attr_name.inspect}: #{val.inspect} but it's unknown to it's schema"
|
49
|
+
end
|
49
50
|
end
|
50
51
|
end
|
51
52
|
resource
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "json"
|
2
2
|
|
3
3
|
module Recurly
|
4
4
|
# This is a wrapper class to help parse responses into Recurly objects.
|
@@ -23,7 +23,7 @@ module Recurly
|
|
23
23
|
type = if data.has_key?("error")
|
24
24
|
"error"
|
25
25
|
else
|
26
|
-
data.delete(
|
26
|
+
data.delete("object")
|
27
27
|
end
|
28
28
|
klazz = self.recurly_class(type)
|
29
29
|
|
@@ -52,10 +52,10 @@ module Recurly
|
|
52
52
|
case type
|
53
53
|
when nil
|
54
54
|
nil
|
55
|
-
when
|
55
|
+
when "list"
|
56
56
|
Pager
|
57
57
|
else
|
58
|
-
type_camelized = type.split(
|
58
|
+
type_camelized = type.split("_").map(&:capitalize).join
|
59
59
|
if Resources.const_defined?(type_camelized)
|
60
60
|
klazz = Resources.const_get(type_camelized)
|
61
61
|
if klazz.ancestors.include?(Resource)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "date"
|
2
2
|
|
3
3
|
module Recurly
|
4
4
|
class Schema
|
@@ -25,13 +25,13 @@ module Recurly
|
|
25
25
|
# @param data [Hash,Resource,Request] The data to transform into a JSON Hash.
|
26
26
|
# @param schema [Schema] The schema to use to transform the data into a JSON Hash.
|
27
27
|
# @return [Hash] The pure Hash ready to be serialized into JSON.
|
28
|
-
def cast(data, schema=self.schema)
|
28
|
+
def cast(data, schema = self.schema)
|
29
29
|
casted = {}
|
30
30
|
if data.is_a?(Resource) || data.is_a?(Request)
|
31
31
|
data = as_json(data, schema)
|
32
32
|
end
|
33
33
|
|
34
|
-
data.each do |k,v|
|
34
|
+
data.each do |k, v|
|
35
35
|
schema_attr = schema.get_attribute(k)
|
36
36
|
norm_val = if v.respond_to?(:attributes)
|
37
37
|
cast(v, schema_attr.recurly_class.schema)
|
@@ -59,7 +59,7 @@ module Recurly
|
|
59
59
|
|
60
60
|
def as_json(resource, schema)
|
61
61
|
writeable_attributes = schema.attributes.reject(&:read_only?).map(&:name)
|
62
|
-
resource.attributes.select { |k,_| writeable_attributes.include?(k) }
|
62
|
+
resource.attributes.select { |k, _| writeable_attributes.include?(k) }
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -28,7 +28,7 @@ module Recurly
|
|
28
28
|
# acount.code = "newcode" # this method protected since read_only = true
|
29
29
|
# account.code
|
30
30
|
# #=> "mycode"
|
31
|
-
def define_attribute(name, type, options={})
|
31
|
+
def define_attribute(name, type, options = {})
|
32
32
|
attribute = schema.add_attribute(name, type, options)
|
33
33
|
|
34
34
|
# Define the reader
|
@@ -118,7 +118,7 @@ module Recurly
|
|
118
118
|
while j < m
|
119
119
|
cost = (char1 == str2_codepoints[j]) ? 0 : 1
|
120
120
|
x = min3(
|
121
|
-
d[j+1] + 1, # insertion
|
121
|
+
d[j + 1] + 1, # insertion
|
122
122
|
i + 1, # deletion
|
123
123
|
d[j] + cost # substitution
|
124
124
|
)
|
@@ -145,4 +145,3 @@ module Recurly
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
end
|
148
|
-
|
data/lib/recurly/version.rb
CHANGED
data/recurly.gemspec
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "recurly/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.authors
|
10
|
-
spec.email
|
7
|
+
spec.name = "recurly"
|
8
|
+
spec.version = Recurly::VERSION
|
9
|
+
spec.authors = ["Recurly"]
|
10
|
+
spec.email = ["support@recurly.com"]
|
11
11
|
|
12
|
-
spec.summary
|
13
|
-
spec.description
|
14
|
-
spec.homepage
|
15
|
-
spec.license
|
12
|
+
spec.summary = "The ruby client for Recurly's Partner API"
|
13
|
+
spec.description = "The ruby client for Recurly's Partner API"
|
14
|
+
spec.homepage = "https://partner-docs.recurly.com"
|
15
|
+
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.files
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
18
|
f.match(%r{^(test|spec|features)/})
|
19
19
|
end
|
20
20
|
# spec.bindir = "exe"
|
@@ -30,4 +30,5 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "yard", "~> 0.9"
|
31
31
|
spec.add_development_dependency "pry", "~> 0.10"
|
32
32
|
spec.add_development_dependency "simplecov", "~> 0.16"
|
33
|
+
spec.add_development_dependency "rufo", "~> 0.7"
|
33
34
|
end
|
data/scripts/format
ADDED
data/scripts/test
CHANGED
@@ -1,3 +1,14 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
|
3
|
-
|
3
|
+
# First check formatting
|
4
|
+
echo "Checking style..."
|
5
|
+
./scripts/format --check
|
6
|
+
if [ $? -ne 0 ]; then
|
7
|
+
echo "Code does not conform to style guide. To autoformat, run './scripts/format'."
|
8
|
+
exit 1
|
9
|
+
else
|
10
|
+
echo "Style check passed"
|
11
|
+
fi
|
12
|
+
|
13
|
+
# Run tests
|
14
|
+
rake spec
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recurly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.beta.
|
4
|
+
version: 3.0.0.beta.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Recurly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -128,6 +128,20 @@ dependencies:
|
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: '0.16'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rufo
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0.7'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0.7'
|
131
145
|
description: The ruby client for Recurly's Partner API
|
132
146
|
email:
|
133
147
|
- support@recurly.com
|
@@ -156,6 +170,7 @@ files:
|
|
156
170
|
- lib/recurly/requests/account_acquisition_cost.rb
|
157
171
|
- lib/recurly/requests/account_acquisition_updatable.rb
|
158
172
|
- lib/recurly/requests/account_create.rb
|
173
|
+
- lib/recurly/requests/account_purchase.rb
|
159
174
|
- lib/recurly/requests/account_update.rb
|
160
175
|
- lib/recurly/requests/add_on_create.rb
|
161
176
|
- lib/recurly/requests/add_on_pricing.rb
|
@@ -178,12 +193,15 @@ files:
|
|
178
193
|
- lib/recurly/requests/plan_hosted_pages.rb
|
179
194
|
- lib/recurly/requests/plan_pricing.rb
|
180
195
|
- lib/recurly/requests/plan_update.rb
|
196
|
+
- lib/recurly/requests/purchase_create.rb
|
181
197
|
- lib/recurly/requests/shipping_address_create.rb
|
182
198
|
- lib/recurly/requests/shipping_address_update.rb
|
183
199
|
- lib/recurly/requests/subscription_add_on_create.rb
|
184
200
|
- lib/recurly/requests/subscription_change_create.rb
|
185
201
|
- lib/recurly/requests/subscription_create.rb
|
186
202
|
- lib/recurly/requests/subscription_pause.rb
|
203
|
+
- lib/recurly/requests/subscription_purchase.rb
|
204
|
+
- lib/recurly/requests/subscription_shipping_purchase.rb
|
187
205
|
- lib/recurly/requests/subscription_update.rb
|
188
206
|
- lib/recurly/resource.rb
|
189
207
|
- lib/recurly/resources/account.rb
|
@@ -244,9 +262,8 @@ files:
|
|
244
262
|
- lib/recurly/version.rb
|
245
263
|
- recurly.gemspec
|
246
264
|
- scripts/build
|
247
|
-
- scripts/check-deps
|
248
265
|
- scripts/clean
|
249
|
-
- scripts/
|
266
|
+
- scripts/format
|
250
267
|
- scripts/test
|
251
268
|
homepage: https://partner-docs.recurly.com
|
252
269
|
licenses:
|
@@ -268,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
268
285
|
version: 1.3.1
|
269
286
|
requirements: []
|
270
287
|
rubyforge_project:
|
271
|
-
rubygems_version: 2.6.14.
|
288
|
+
rubygems_version: 2.6.14.3
|
272
289
|
signing_key:
|
273
290
|
specification_version: 4
|
274
291
|
summary: The ruby client for Recurly's Partner API
|
data/scripts/check-deps
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -e
|
3
|
-
|
4
|
-
function check_for_command {
|
5
|
-
if ! hash eval "$1" 2>/dev/null; then
|
6
|
-
echo "✖ Could not find '$1'"
|
7
|
-
exit 1
|
8
|
-
fi
|
9
|
-
echo "✓ Found $1"
|
10
|
-
}
|
11
|
-
|
12
|
-
check_for_command "ruby"
|
13
|
-
check_for_command "bundle"
|
14
|
-
|
15
|
-
RUBY_VERSION=$(ruby --version)
|
16
|
-
RUBY_MAJOR=$(ruby --version | cut -d' ' -f2 | cut -d'.' -f1)
|
17
|
-
RUBY_MINOR=$(ruby --version | cut -d' ' -f2 | cut -d'.' -f2)
|
18
|
-
|
19
|
-
function unsupported_ruby_version {
|
20
|
-
echo "✖ Unsupported ruby version is ${RUBY_VERSION}"
|
21
|
-
exit 1
|
22
|
-
}
|
23
|
-
|
24
|
-
if [ "$RUBY_MAJOR" -lt "2" ] || [ "$RUBY_MINOR" -lt "3" ]; then
|
25
|
-
unsupported_ruby_version
|
26
|
-
else
|
27
|
-
echo "✓ Version ${RUBY_VERSION} is compatible"
|
28
|
-
fi
|
data/scripts/install-deps
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -e
|
3
|
-
|
4
|
-
if ! hash brew 2>/dev/null; then
|
5
|
-
echo "✖ Homebrew not found. Please install: https://brew.sh/"
|
6
|
-
exit 1
|
7
|
-
else
|
8
|
-
echo "✓ Found homebrew"
|
9
|
-
fi
|
10
|
-
|
11
|
-
if ! hash rbenv 2>/dev/null; then
|
12
|
-
read -p "✖ 'rbenv' not found. Would you like to install it? [Y/n] " -n 1 -r
|
13
|
-
echo
|
14
|
-
if [[ $REPLY =~ ^[Yy\n]$ ]]
|
15
|
-
then
|
16
|
-
brew install rbenv ruby-build && true
|
17
|
-
echo
|
18
|
-
echo "Please follow the rbenv instructions below before continuing:"
|
19
|
-
eval "$(rbenv init -)"
|
20
|
-
echo $(rbenv init)
|
21
|
-
read -p "Press enter to continue"
|
22
|
-
# Installs latest stable version
|
23
|
-
VERSION=$(rbenv install -l | grep -v - | tail -1)
|
24
|
-
rbenv install $VERSION
|
25
|
-
rbenv global $VERSION
|
26
|
-
else
|
27
|
-
exit 1
|
28
|
-
fi
|
29
|
-
else
|
30
|
-
echo "✓ Found rbenv"
|
31
|
-
fi
|
32
|
-
|
33
|
-
if ! hash bundle 2>/dev/null; then
|
34
|
-
read -p "✖ 'bundle' not found. Would you like to install it? [Y/n] " -n 1 -r
|
35
|
-
echo
|
36
|
-
if [[ $REPLY =~ ^[Yy]$ ]]
|
37
|
-
then
|
38
|
-
gem install bundler
|
39
|
-
else
|
40
|
-
exit 1
|
41
|
-
fi
|
42
|
-
else
|
43
|
-
echo "✓ Found bundle"
|
44
|
-
fi
|