recurly 3.0.0.beta.5 → 3.0.0

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.
Files changed (71) hide show
  1. checksums.yaml +5 -5
  2. data/.bumpversion.cfg +12 -0
  3. data/.travis.yml +2 -2
  4. data/.yardopts +3 -0
  5. data/CONTRIBUTING.md +102 -0
  6. data/GETTING_STARTED.md +266 -0
  7. data/README.md +12 -194
  8. data/benchmark.rb +16 -0
  9. data/lib/recurly.rb +4 -7
  10. data/lib/recurly/client.rb +60 -60
  11. data/lib/recurly/client/operations.rb +498 -340
  12. data/lib/recurly/errors.rb +4 -0
  13. data/lib/recurly/http.rb +43 -0
  14. data/lib/recurly/pager.rb +4 -10
  15. data/lib/recurly/request.rb +6 -6
  16. data/lib/recurly/requests.rb +8 -0
  17. data/lib/recurly/requests/account_acquisition_updatable.rb +2 -2
  18. data/lib/recurly/requests/billing_info_create.rb +4 -0
  19. data/lib/recurly/requests/custom_field.rb +18 -0
  20. data/lib/recurly/requests/invoice_create.rb +0 -4
  21. data/lib/recurly/requests/invoice_refund.rb +2 -2
  22. data/lib/recurly/requests/line_item_create.rb +4 -0
  23. data/lib/recurly/requests/purchase_create.rb +3 -7
  24. data/lib/recurly/requests/shipping_fee_create.rb +22 -0
  25. data/lib/recurly/requests/shipping_purchase.rb +22 -0
  26. data/lib/recurly/requests/subscription_add_on_create.rb +2 -6
  27. data/lib/recurly/requests/subscription_add_on_update.rb +26 -0
  28. data/lib/recurly/requests/subscription_change_create.rb +7 -3
  29. data/lib/recurly/requests/subscription_change_shipping_create.rb +22 -0
  30. data/lib/recurly/requests/subscription_create.rb +4 -8
  31. data/lib/recurly/requests/subscription_shipping_create.rb +30 -0
  32. data/lib/recurly/requests/subscription_shipping_update.rb +22 -0
  33. data/lib/recurly/requests/subscription_update.rb +3 -7
  34. data/lib/recurly/resource.rb +14 -1
  35. data/lib/recurly/resources.rb +17 -0
  36. data/lib/recurly/resources/account_acquisition.rb +2 -2
  37. data/lib/recurly/resources/add_on.rb +1 -1
  38. data/lib/recurly/resources/billing_info.rb +6 -6
  39. data/lib/recurly/resources/coupon.rb +1 -1
  40. data/lib/recurly/resources/coupon_discount.rb +2 -2
  41. data/lib/recurly/resources/coupon_redemption.rb +2 -2
  42. data/lib/recurly/resources/coupon_redemption_mini.rb +2 -2
  43. data/lib/recurly/resources/error_may_have_transaction.rb +2 -2
  44. data/lib/recurly/resources/invoice.rb +4 -0
  45. data/lib/recurly/resources/line_item.rb +1 -1
  46. data/lib/recurly/resources/{billing_info_payment_method.rb → payment_method.rb} +18 -2
  47. data/lib/recurly/resources/plan.rb +1 -1
  48. data/lib/recurly/resources/shipping_method.rb +42 -0
  49. data/lib/recurly/resources/shipping_method_mini.rb +26 -0
  50. data/lib/recurly/resources/subscription.rb +3 -3
  51. data/lib/recurly/resources/subscription_change.rb +4 -0
  52. data/lib/recurly/resources/subscription_shipping.rb +26 -0
  53. data/lib/recurly/resources/transaction.rb +4 -4
  54. data/lib/recurly/resources/transaction_error.rb +30 -0
  55. data/lib/recurly/schema.rb +85 -49
  56. data/lib/recurly/schema/json_parser.rb +16 -8
  57. data/lib/recurly/schema/request_caster.rb +10 -16
  58. data/lib/recurly/schema/resource_caster.rb +48 -0
  59. data/lib/recurly/schema/schema_factory.rb +0 -2
  60. data/lib/recurly/schema/schema_validator.rb +11 -14
  61. data/lib/recurly/version.rb +1 -1
  62. data/recurly.gemspec +6 -6
  63. data/scripts/build +1 -0
  64. data/scripts/bump +4 -0
  65. data/scripts/format +2 -0
  66. data/scripts/release +11 -0
  67. data/scripts/test +1 -0
  68. metadata +38 -20
  69. data/.ruby-version +0 -1
  70. data/lib/recurly/resources/transaction_payment_method.rb +0 -34
  71. data/lib/recurly/schema/json_deserializer.rb +0 -56
@@ -1,8 +1,9 @@
1
1
  require "json"
2
2
 
3
3
  module Recurly
4
- # This is a wrapper class to help parse responses into Recurly objects.
4
+ # This is a wrapper class to help parse http response into Recurly objects.
5
5
  class JSONParser
6
+
6
7
  # Parses the json body into a recurly object.
7
8
  #
8
9
  # @param client [Client] The Recurly client which made the request.
@@ -17,13 +18,18 @@ module Recurly
17
18
 
18
19
  # Converts the parsed JSON into a Recurly object.
19
20
  #
21
+ # *TODO*: Instead of inferring this type from the `object`
22
+ # attribute. We should instead "register" the response type
23
+ # in the client/operations code. The `get`, `post`, etc methods
24
+ # could explicitly state their response types.
25
+ #
20
26
  # @param data [Hash] The parsed JSON data
21
27
  # @return [Error,Resource]
22
28
  def self.from_json(data)
23
29
  type = if data.has_key?("error")
24
30
  "error"
25
31
  else
26
- data.delete("object")
32
+ data["object"]
27
33
  end
28
34
  klazz = self.recurly_class(type)
29
35
 
@@ -33,15 +39,14 @@ module Recurly
33
39
 
34
40
  data = data["error"] if klazz == Resources::Error
35
41
 
36
- klazz.from_json(data)
42
+ klazz.cast(data)
37
43
  end
38
44
 
39
45
  # Returns the Recurly ruby class responsible for the Recurly json key.
40
- # TODO figure out how we should handle nil types
41
46
  #
42
47
  # @example
43
48
  # JSONParser.recurly_class('list')
44
- # #=> Recurly::Pager
49
+ # #=> Recurly::Page
45
50
  # @example
46
51
  # JSONParser.recurly_class('shipping_address')
47
52
  # #=> Recurly::Resources::ShippingAddress
@@ -53,7 +58,7 @@ module Recurly
53
58
  when nil
54
59
  nil
55
60
  when "list"
56
- Pager
61
+ Resources::Page
57
62
  else
58
63
  type_camelized = type.split("_").map(&:capitalize).join
59
64
  if Resources.const_defined?(type_camelized)
@@ -61,8 +66,11 @@ module Recurly
61
66
  if klazz.ancestors.include?(Resource)
62
67
  klazz
63
68
  else
64
- # TODO might want to throw an error?
65
- nil
69
+ if Recurly::STRICT_MODE
70
+ raise ArgumentError, "Could not find Recurly Resource responsible for key #{type}"
71
+ else
72
+ nil
73
+ end
66
74
  end
67
75
  end
68
76
  end
@@ -2,19 +2,20 @@ require "date"
2
2
 
3
3
  module Recurly
4
4
  class Schema
5
- # *Note*: This class is for internal use.
5
+ # *Note*: This module is for internal use.
6
6
  # The RequestCaster turns mixed data into a pure Hash
7
7
  # so it can be serialized into JSON and used as the body of a request.
8
8
  # This module is to be extended by the Request class.
9
9
  module RequestCaster
10
+
10
11
  # This method casts the data object (of mixed types) into a Hash ready for JSON
11
12
  # serialization. The *schema* will default to the self's schema.
12
13
  # You should pass in the schema where possible. This is because objects are serialized
13
14
  # differently depending on the context in which they are being written.
14
15
  #
15
16
  # @example
16
- # Recurly::Requests::AccountUpdatable.cast(account_code: 'benjamin')
17
- # #=> {:account_code=>"benjamin"}
17
+ # Recurly::Requests::AccountUpdatable.cast(code: 'benjamin')
18
+ # #=> {:code=>"benjamin"}
18
19
  # @example
19
20
  # # If you have some mixed data, like passing in an Address, it should cast that
20
21
  # # address into a Hash based on the Schema defined in AccountUpdatable
@@ -25,26 +26,26 @@ module Recurly
25
26
  # @param data [Hash,Resource,Request] The data to transform into a JSON Hash.
26
27
  # @param schema [Schema] The schema to use to transform the data into a JSON Hash.
27
28
  # @return [Hash] The pure Hash ready to be serialized into JSON.
28
- def cast(data, schema = self.schema)
29
+ def cast_request(data, schema = self.schema)
29
30
  casted = {}
30
31
  if data.is_a?(Resource) || data.is_a?(Request)
31
- data = as_json(data, schema)
32
+ data = data.attributes.reject { |_k, v| v.nil? }
32
33
  end
33
34
 
34
35
  data.each do |k, v|
35
36
  schema_attr = schema.get_attribute(k)
36
37
  norm_val = if v.respond_to?(:attributes)
37
- cast(v, schema_attr.recurly_class.schema)
38
+ cast_request(v, v.class.schema)
38
39
  elsif v.is_a?(Array)
39
40
  v.map do |elem|
40
41
  if elem.respond_to?(:attributes)
41
- cast(elem, schema_attr.recurly_class.schema)
42
+ cast_request(elem, elem.class.schema)
42
43
  else
43
44
  elem
44
45
  end
45
46
  end
46
- elsif v.is_a?(Hash) && schema_attr && schema_attr.type.is_a?(Symbol)
47
- cast(v, schema_attr.recurly_class.schema)
47
+ elsif v.is_a?(Hash) && schema_attr && schema_attr.is_a?(Schema::ResourceAttribute)
48
+ cast_request(v, schema_attr.recurly_class.schema)
48
49
  else
49
50
  v
50
51
  end
@@ -54,13 +55,6 @@ module Recurly
54
55
 
55
56
  casted
56
57
  end
57
-
58
- private
59
-
60
- def as_json(resource, schema)
61
- writeable_attributes = schema.attributes.reject(&:read_only?).map(&:name)
62
- resource.attributes.select { |k, _| writeable_attributes.include?(k) }
63
- end
64
58
  end
65
59
  end
66
60
  end
@@ -0,0 +1,48 @@
1
+ require "date"
2
+
3
+ module Recurly
4
+ class Schema
5
+ # The purpose of this class is to turn JSON parsed Hashes
6
+ # defined into Recurly ruby objects. It's to be used
7
+ # by the Resource as an extension.
8
+ module ResourceCaster
9
+
10
+ # Gives the class the ability to initialize itself
11
+ # given some json data.
12
+ #
13
+ # @example
14
+ # Recurly::Resources::Account.cast({"code" => "mycode"})
15
+ # #=> #<Recurly::Resources::Account @attributes={:code=>"mycode"}>
16
+ #
17
+ # @param attributes [Hash] A primitive Hash from JSON.parse of Recurly response.
18
+ # @return [Resource] the {Resource} (ruby object) representing the passed in JSON data.
19
+ def cast(attributes = {})
20
+ resource = new()
21
+ attributes.each do |attr_name, val|
22
+ next if attr_name == "object"
23
+
24
+ schema_attr = self.schema.get_attribute(attr_name)
25
+
26
+ if schema_attr
27
+ val = if val.nil?
28
+ val
29
+ elsif schema_attr.is_valid?(val)
30
+ schema_attr.cast(val)
31
+ else
32
+ if Recurly::STRICT_MODE
33
+ msg = "#{self.class}##{attr_name} does not have the right type. Value: #{val.inspect} was expected to be a #{schema_attr}"
34
+ raise ArgumentError, msg
35
+ end
36
+ end
37
+
38
+ writer = "#{attr_name}="
39
+ resource.send(writer, val)
40
+ elsif Recurly::STRICT_MODE
41
+ raise ArgumentError, "#{resource.class.name} encountered json attribute #{attr_name.inspect}: #{val.inspect} but it's unknown to it's schema"
42
+ end
43
+ end
44
+ resource
45
+ end
46
+ end
47
+ end
48
+ end
@@ -41,8 +41,6 @@ module Recurly
41
41
  self.attributes[name] = val
42
42
  end
43
43
 
44
- protected "#{name}=" if attribute.read_only?
45
-
46
44
  self
47
45
  end
48
46
  end
@@ -24,45 +24,42 @@ module Recurly
24
24
  err_msg = "Attribute '#{attr_name}' does not exist on request #{self.class.name}."
25
25
  if did_you_mean = get_did_you_mean(schema, attr_name)
26
26
  err_msg << " Did you mean '#{did_you_mean}'?"
27
- raise ArgumentError, err_msg
28
27
  end
29
- elsif schema_attr.read_only?
30
- raise ArgumentError, "Attribute '#{attr_name}' on resource #{self.class.name} is not writeable"
28
+ raise ArgumentError, err_msg
31
29
  else
32
- validate_attribute!(schema_attr, val)
30
+ validate_attribute!(attr_name, schema_attr, val)
33
31
  end
34
32
  end
35
33
  end
36
34
 
37
35
  # Validates an individual attribute
38
- def validate_attribute!(schema_attr, val)
39
- unless schema_attr.type.is_a?(Symbol) || val.is_a?(schema_attr.type)
36
+ def validate_attribute!(name, schema_attr, val)
37
+ unless schema_attr.is_valid?(val)
40
38
  # If it's safely castable, the json deserializer or server
41
39
  # will take care of it for us
42
40
  unless safely_castable?(val.class, schema_attr.type)
43
- expected = case schema_attr.type
44
- when Array
45
- "Array of #{schema_attr.type.item_type}s"
41
+ expected = case schema_attr
42
+ when Schema::ArrayAttribute
43
+ "Array of #{schema_attr.type}s"
46
44
  else
47
45
  schema_attr.type
48
46
  end
49
47
 
50
- raise ArgumentError, "Attribute '#{schema_attr.name}' on the resource #{self.class.name} is type #{val.class} but should be a #{expected}"
48
+ raise ArgumentError, "Attribute '#{name}' on the resource #{self.class.name} is type #{val.class} but should be a #{expected}"
51
49
  end
52
50
  end
53
51
 
54
52
  # This is the convention for a recurly object
55
- if schema_attr.type.is_a?(Symbol) && val.is_a?(Hash)
56
- klazz = Schema.get_recurly_class(schema_attr.type)
53
+ if schema_attr.is_a?(Schema::ResourceAttribute) && val.is_a?(Hash)
57
54
  # Using send because the initializer may be private
58
- instance = klazz.send(:new, val)
55
+ instance = schema_attr.recurly_class.send(:new, val)
59
56
  instance.validate!
60
57
  end
61
58
  end
62
59
 
63
60
  # Gets the closest term to the misspelled attribute
64
61
  def get_did_you_mean(schema, misspelled_attr)
65
- closest = schema.attributes.map(&:name).sort_by do |v|
62
+ closest = schema.attributes.keys.sort_by do |v|
66
63
  levenshtein_distance(v, misspelled_attr)
67
64
  end.first
68
65
 
@@ -1,3 +1,3 @@
1
1
  module Recurly
2
- VERSION = "3.0.0.beta.5"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -7,11 +7,11 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "recurly"
8
8
  spec.version = Recurly::VERSION
9
9
  spec.authors = ["Recurly"]
10
- spec.email = ["support@recurly.com"]
10
+ spec.email = ["dx@recurly.com"]
11
11
 
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"
12
+ spec.summary = "The ruby client for Recurly's V3 API"
13
+ spec.description = "The ruby client for Recurly's V3 API"
14
+ spec.homepage = "https://github.com/recurly/recurly-client-ruby"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
21
21
  # spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "faraday", ">= 0.8.11", "<= 1.0.0"
24
+ spec.add_dependency "faraday", ">= 0.8.11", "< 0.16"
25
25
 
26
26
  spec.add_development_dependency "net-http-persistent", "~> 2.9.4"
27
- spec.add_development_dependency "bundler", "~> 1.14"
27
+ spec.add_development_dependency "bundler", "~> 2.0"
28
28
  spec.add_development_dependency "rake", "~> 10.0"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
30
  spec.add_development_dependency "yard", "~> 0.9"
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
 
3
4
  bundle install --binstubs --quiet
4
5
  ./bin/yard --quiet
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ bump2version "$@"
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
3
+
2
4
  if [ "$1" == "--check" ]; then
3
5
  ./bin/rufo . --check
4
6
  else
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ # Clean up any leftover gems
5
+ rm -f *.gem
6
+
7
+ # Build the new gem
8
+ gem build recurly.gemspec
9
+
10
+ # Push what should be the only gem present
11
+ gem push *.gem
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
 
3
4
  # First check formatting
4
5
  echo "Checking style..."
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.5
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recurly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-28 00:00:00.000000000 Z
11
+ date: 2019-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -17,9 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.8.11
20
- - - "<="
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.0
22
+ version: '0.16'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +27,9 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.8.11
30
- - - "<="
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.0
32
+ version: '0.16'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: net-http-persistent
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -50,14 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.14'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.14'
60
+ version: '2.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -142,21 +142,25 @@ dependencies:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0.7'
145
- description: The ruby client for Recurly's Partner API
145
+ description: The ruby client for Recurly's V3 API
146
146
  email:
147
- - support@recurly.com
147
+ - dx@recurly.com
148
148
  executables: []
149
149
  extensions: []
150
150
  extra_rdoc_files: []
151
151
  files:
152
+ - ".bumpversion.cfg"
152
153
  - ".gitignore"
153
154
  - ".rspec"
154
- - ".ruby-version"
155
155
  - ".travis.yml"
156
+ - ".yardopts"
157
+ - CONTRIBUTING.md
158
+ - GETTING_STARTED.md
156
159
  - Gemfile
157
160
  - LICENSE.txt
158
161
  - README.md
159
162
  - Rakefile
163
+ - benchmark.rb
160
164
  - lib/data/ca-certificates.crt
161
165
  - lib/recurly.rb
162
166
  - lib/recurly/client.rb
@@ -165,8 +169,10 @@ files:
165
169
  - lib/recurly/errors.rb
166
170
  - lib/recurly/errors/api_errors.rb
167
171
  - lib/recurly/errors/network_errors.rb
172
+ - lib/recurly/http.rb
168
173
  - lib/recurly/pager.rb
169
174
  - lib/recurly/request.rb
175
+ - lib/recurly/requests.rb
170
176
  - lib/recurly/requests/account_acquisition_cost.rb
171
177
  - lib/recurly/requests/account_acquisition_updatable.rb
172
178
  - lib/recurly/requests/account_create.rb
@@ -182,6 +188,7 @@ files:
182
188
  - lib/recurly/requests/coupon_pricing.rb
183
189
  - lib/recurly/requests/coupon_redemption_create.rb
184
190
  - lib/recurly/requests/coupon_update.rb
191
+ - lib/recurly/requests/custom_field.rb
185
192
  - lib/recurly/requests/external_refund.rb
186
193
  - lib/recurly/requests/invoice_address.rb
187
194
  - lib/recurly/requests/invoice_create.rb
@@ -196,14 +203,21 @@ files:
196
203
  - lib/recurly/requests/purchase_create.rb
197
204
  - lib/recurly/requests/shipping_address_create.rb
198
205
  - lib/recurly/requests/shipping_address_update.rb
206
+ - lib/recurly/requests/shipping_fee_create.rb
207
+ - lib/recurly/requests/shipping_purchase.rb
199
208
  - lib/recurly/requests/subscription_add_on_create.rb
209
+ - lib/recurly/requests/subscription_add_on_update.rb
200
210
  - lib/recurly/requests/subscription_change_create.rb
211
+ - lib/recurly/requests/subscription_change_shipping_create.rb
201
212
  - lib/recurly/requests/subscription_create.rb
202
213
  - lib/recurly/requests/subscription_pause.rb
203
214
  - lib/recurly/requests/subscription_purchase.rb
215
+ - lib/recurly/requests/subscription_shipping_create.rb
204
216
  - lib/recurly/requests/subscription_shipping_purchase.rb
217
+ - lib/recurly/requests/subscription_shipping_update.rb
205
218
  - lib/recurly/requests/subscription_update.rb
206
219
  - lib/recurly/resource.rb
220
+ - lib/recurly/resources.rb
207
221
  - lib/recurly/resources/account.rb
208
222
  - lib/recurly/resources/account_acquisition.rb
209
223
  - lib/recurly/resources/account_acquisition_cost.rb
@@ -216,7 +230,6 @@ files:
216
230
  - lib/recurly/resources/add_on_pricing.rb
217
231
  - lib/recurly/resources/address.rb
218
232
  - lib/recurly/resources/billing_info.rb
219
- - lib/recurly/resources/billing_info_payment_method.rb
220
233
  - lib/recurly/resources/billing_info_updated_by.rb
221
234
  - lib/recurly/resources/coupon.rb
222
235
  - lib/recurly/resources/coupon_discount.rb
@@ -237,35 +250,41 @@ files:
237
250
  - lib/recurly/resources/invoice_mini.rb
238
251
  - lib/recurly/resources/line_item.rb
239
252
  - lib/recurly/resources/line_item_list.rb
253
+ - lib/recurly/resources/payment_method.rb
240
254
  - lib/recurly/resources/plan.rb
241
255
  - lib/recurly/resources/plan_hosted_pages.rb
242
256
  - lib/recurly/resources/plan_mini.rb
243
257
  - lib/recurly/resources/plan_pricing.rb
244
258
  - lib/recurly/resources/settings.rb
245
259
  - lib/recurly/resources/shipping_address.rb
260
+ - lib/recurly/resources/shipping_method.rb
261
+ - lib/recurly/resources/shipping_method_mini.rb
246
262
  - lib/recurly/resources/site.rb
247
263
  - lib/recurly/resources/subscription.rb
248
264
  - lib/recurly/resources/subscription_add_on.rb
249
265
  - lib/recurly/resources/subscription_change.rb
266
+ - lib/recurly/resources/subscription_shipping.rb
250
267
  - lib/recurly/resources/tax_info.rb
251
268
  - lib/recurly/resources/transaction.rb
269
+ - lib/recurly/resources/transaction_error.rb
252
270
  - lib/recurly/resources/transaction_payment_gateway.rb
253
- - lib/recurly/resources/transaction_payment_method.rb
254
271
  - lib/recurly/resources/unique_coupon_code.rb
255
272
  - lib/recurly/resources/user.rb
256
273
  - lib/recurly/schema.rb
257
- - lib/recurly/schema/json_deserializer.rb
258
274
  - lib/recurly/schema/json_parser.rb
259
275
  - lib/recurly/schema/request_caster.rb
276
+ - lib/recurly/schema/resource_caster.rb
260
277
  - lib/recurly/schema/schema_factory.rb
261
278
  - lib/recurly/schema/schema_validator.rb
262
279
  - lib/recurly/version.rb
263
280
  - recurly.gemspec
264
281
  - scripts/build
282
+ - scripts/bump
265
283
  - scripts/clean
266
284
  - scripts/format
285
+ - scripts/release
267
286
  - scripts/test
268
- homepage: https://partner-docs.recurly.com
287
+ homepage: https://github.com/recurly/recurly-client-ruby
269
288
  licenses:
270
289
  - MIT
271
290
  metadata: {}
@@ -280,13 +299,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
299
  version: '0'
281
300
  required_rubygems_version: !ruby/object:Gem::Requirement
282
301
  requirements:
283
- - - ">"
302
+ - - ">="
284
303
  - !ruby/object:Gem::Version
285
- version: 1.3.1
304
+ version: '0'
286
305
  requirements: []
287
- rubyforge_project:
288
- rubygems_version: 2.6.14.3
306
+ rubygems_version: 3.0.6
289
307
  signing_key:
290
308
  specification_version: 4
291
- summary: The ruby client for Recurly's Partner API
309
+ summary: The ruby client for Recurly's V3 API
292
310
  test_files: []