recurly 3.0.0.beta.5 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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