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 +0,0 @@
1
- 2.4.5
@@ -1,34 +0,0 @@
1
- # This file is automatically created by Recurly's OpenAPI generation process
2
- # and thus any edits you make by hand will be lost. If you wish to make a
3
- # change to this file, please create a Github issue explaining the changes you
4
- # need and we will usher them to the appropriate places.
5
- module Recurly
6
- module Resources
7
- class TransactionPaymentMethod < Resource
8
-
9
- # @!attribute card_type
10
- # @return [String] Visa, MasterCard, American Express, Discover, JCB, etc.
11
- define_attribute :card_type, String
12
-
13
- # @!attribute exp_month
14
- # @return [Integer] Expiration month.
15
- define_attribute :exp_month, Integer
16
-
17
- # @!attribute exp_year
18
- # @return [Integer] Expiration year.
19
- define_attribute :exp_year, Integer
20
-
21
- # @!attribute first_six
22
- # @return [String] Credit card number's first six digits.
23
- define_attribute :first_six, String
24
-
25
- # @!attribute last_four
26
- # @return [String] Credit card number's last four digits.
27
- define_attribute :last_four, String
28
-
29
- # @!attribute object
30
- # @return [String]
31
- define_attribute :object, String
32
- end
33
- end
34
- end
@@ -1,56 +0,0 @@
1
- require "date"
2
-
3
- module Recurly
4
- class Schema
5
- # The purpose of this class is to turn Recurly defined
6
- # JSON data into Recurly ruby objects. It's to be used
7
- # by the Resource as an extension.
8
- module JsonDeserializer
9
- # Gives the class the ability to initialize itself
10
- # given some json data.
11
- #
12
- # @example
13
- # Recurly::Resources::Account.from_json({"code" => "mycode"})
14
- # #=> #<Recurly::Resources::Account @attributes={:code=>"mycode"}>
15
- #
16
- # @param attributes [Hash] A primitive Hash from JSON.parse of Recurly result.
17
- # @return [Resource] the {Resource} (ruby object) representing the passed in JSON data.
18
- def from_json(attributes = {})
19
- resource = new()
20
- attributes.each do |attr_name, val|
21
- next if attr_name == "object"
22
-
23
- schema_attr = self.schema.get_attribute(attr_name)
24
-
25
- if schema_attr
26
- # if the Hash val is a recurly type, parse it into a Resource
27
- val = if val.is_a?(Hash) && !schema_attr.is_primitive?
28
- schema_attr.recurly_class.from_json(val)
29
- elsif val.is_a?(Array)
30
- val.map do |e|
31
- if e.is_a?(Hash) && !schema_attr.is_primitive?
32
- schema_attr.recurly_class.from_json(e)
33
- else
34
- e
35
- end
36
- end
37
- elsif val && schema_attr.type == DateTime && val.is_a?(String)
38
- DateTime.parse(val)
39
- else
40
- val
41
- end
42
-
43
- writer = "#{attr_name}="
44
-
45
- resource.send(writer, val)
46
- else
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
50
- end
51
- end
52
- resource
53
- end
54
- end
55
- end
56
- end