recurly 2.17.0 → 3.14.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.
- checksums.yaml +4 -4
- data/.bumpversion.cfg +15 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +30 -0
- data/.github/ISSUE_TEMPLATE/question-or-other.md +10 -0
- data/.github/workflows/docs.yml +28 -0
- data/.github_changelog_generator +8 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.travis.yml +13 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +313 -0
- data/CODE_OF_CONDUCT.md +130 -0
- data/CONTRIBUTING.md +106 -0
- data/GETTING_STARTED.md +319 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +9 -153
- data/Rakefile +6 -0
- data/benchmark.rb +16 -0
- data/lib/data/ca-certificates.crt +3466 -0
- data/lib/recurly/client/operations.rb +3665 -0
- data/lib/recurly/client.rb +353 -0
- data/lib/recurly/connection_pool.rb +40 -0
- data/lib/recurly/errors/api_errors.rb +83 -0
- data/lib/recurly/errors/network_errors.rb +10 -0
- data/lib/recurly/errors.rb +68 -0
- data/lib/recurly/http.rb +50 -0
- data/lib/recurly/pager.rb +146 -0
- data/lib/recurly/request.rb +31 -0
- data/lib/recurly/requests/account_acquisition_cost.rb +18 -0
- data/lib/recurly/requests/account_acquisition_updatable.rb +26 -0
- data/lib/recurly/requests/account_create.rb +90 -0
- data/lib/recurly/requests/account_purchase.rb +90 -0
- data/lib/recurly/requests/account_update.rb +78 -0
- data/lib/recurly/requests/add_on_create.rb +94 -0
- data/lib/recurly/requests/add_on_pricing.rb +18 -0
- data/lib/recurly/requests/add_on_update.rb +74 -0
- data/lib/recurly/requests/address.rb +46 -0
- data/lib/recurly/requests/billing_info_create.rb +110 -0
- data/lib/recurly/requests/coupon_bulk_create.rb +14 -0
- data/lib/recurly/requests/coupon_create.rb +94 -0
- data/lib/recurly/requests/coupon_pricing.rb +18 -0
- data/lib/recurly/requests/coupon_redemption_create.rb +18 -0
- data/lib/recurly/requests/coupon_update.rb +34 -0
- data/lib/recurly/requests/custom_field.rb +18 -0
- data/lib/recurly/requests/external_refund.rb +22 -0
- data/lib/recurly/requests/external_transaction.rb +26 -0
- data/lib/recurly/requests/invoice_address.rb +54 -0
- data/lib/recurly/requests/invoice_collect.rb +18 -0
- data/lib/recurly/requests/invoice_create.rb +42 -0
- data/lib/recurly/requests/invoice_refund.rb +34 -0
- data/lib/recurly/requests/invoice_updatable.rb +34 -0
- data/lib/recurly/requests/item_create.rb +58 -0
- data/lib/recurly/requests/item_update.rb +58 -0
- data/lib/recurly/requests/line_item_create.rb +82 -0
- data/lib/recurly/requests/line_item_refund.rb +22 -0
- data/lib/recurly/requests/measured_unit_create.rb +22 -0
- data/lib/recurly/requests/measured_unit_update.rb +22 -0
- data/lib/recurly/requests/plan_create.rb +98 -0
- data/lib/recurly/requests/plan_hosted_pages.rb +26 -0
- data/lib/recurly/requests/plan_pricing.rb +22 -0
- data/lib/recurly/requests/plan_update.rb +94 -0
- data/lib/recurly/requests/pricing.rb +18 -0
- data/lib/recurly/requests/purchase_create.rb +74 -0
- data/lib/recurly/requests/shipping_address_create.rb +62 -0
- data/lib/recurly/requests/shipping_address_update.rb +66 -0
- data/lib/recurly/requests/shipping_fee_create.rb +22 -0
- data/lib/recurly/requests/shipping_method_create.rb +26 -0
- data/lib/recurly/requests/shipping_method_update.rb +26 -0
- data/lib/recurly/requests/shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_add_on_create.rb +38 -0
- data/lib/recurly/requests/subscription_add_on_tier.rb +18 -0
- data/lib/recurly/requests/subscription_add_on_update.rb +42 -0
- data/lib/recurly/requests/subscription_cancel.rb +14 -0
- data/lib/recurly/requests/subscription_change_create.rb +66 -0
- data/lib/recurly/requests/subscription_change_shipping_create.rb +22 -0
- data/lib/recurly/requests/subscription_create.rb +106 -0
- data/lib/recurly/requests/subscription_pause.rb +14 -0
- data/lib/recurly/requests/subscription_purchase.rb +66 -0
- data/lib/recurly/requests/subscription_shipping_create.rb +30 -0
- data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_shipping_update.rb +22 -0
- data/lib/recurly/requests/subscription_update.rb +58 -0
- data/lib/recurly/requests/tier.rb +18 -0
- data/lib/recurly/requests/usage_create.rb +26 -0
- data/lib/recurly/requests.rb +8 -0
- data/lib/recurly/resource.rb +23 -1082
- data/lib/recurly/resources/account.rb +130 -0
- data/lib/recurly/resources/account_acquisition.rb +46 -0
- data/lib/recurly/resources/account_acquisition_cost.rb +18 -0
- data/lib/recurly/resources/account_balance.rb +26 -0
- data/lib/recurly/resources/account_balance_amount.rb +18 -0
- data/lib/recurly/resources/account_mini.rb +46 -0
- data/lib/recurly/resources/account_note.rb +34 -0
- data/lib/recurly/resources/add_on.rb +114 -0
- data/lib/recurly/resources/add_on_mini.rb +54 -0
- data/lib/recurly/resources/add_on_pricing.rb +18 -0
- data/lib/recurly/resources/address.rb +46 -0
- data/lib/recurly/resources/billing_info.rb +66 -0
- data/lib/recurly/resources/billing_info_updated_by.rb +18 -0
- data/lib/recurly/resources/binary_file.rb +14 -0
- data/lib/recurly/resources/coupon.rb +130 -0
- data/lib/recurly/resources/coupon_discount.rb +26 -0
- data/lib/recurly/resources/coupon_discount_pricing.rb +18 -0
- data/lib/recurly/resources/coupon_discount_trial.rb +18 -0
- data/lib/recurly/resources/coupon_mini.rb +42 -0
- data/lib/recurly/resources/coupon_redemption.rb +50 -0
- data/lib/recurly/resources/coupon_redemption_mini.rb +34 -0
- data/lib/recurly/resources/credit_payment.rb +66 -0
- data/lib/recurly/resources/custom_field.rb +18 -0
- data/lib/recurly/resources/custom_field_definition.rb +50 -0
- data/lib/recurly/resources/error.rb +22 -0
- data/lib/recurly/resources/error_may_have_transaction.rb +26 -0
- data/lib/recurly/resources/export_dates.rb +18 -0
- data/lib/recurly/resources/export_file.rb +22 -0
- data/lib/recurly/resources/export_files.rb +18 -0
- data/lib/recurly/resources/fraud_info.rb +22 -0
- data/lib/recurly/resources/invoice.rb +146 -0
- data/lib/recurly/resources/invoice_address.rb +54 -0
- data/lib/recurly/resources/invoice_collection.rb +22 -0
- data/lib/recurly/resources/invoice_mini.rb +30 -0
- data/lib/recurly/resources/item.rb +82 -0
- data/lib/recurly/resources/item_mini.rb +34 -0
- data/lib/recurly/resources/line_item.rb +198 -0
- data/lib/recurly/resources/line_item_list.rb +26 -0
- data/lib/recurly/resources/measured_unit.rb +46 -0
- data/lib/recurly/resources/payment_method.rb +66 -0
- data/lib/recurly/resources/plan.rb +118 -0
- data/lib/recurly/resources/plan_hosted_pages.rb +26 -0
- data/lib/recurly/resources/plan_mini.rb +26 -0
- data/lib/recurly/resources/plan_pricing.rb +22 -0
- data/lib/recurly/resources/pricing.rb +18 -0
- data/lib/recurly/resources/settings.rb +22 -0
- data/lib/recurly/resources/shipping_address.rb +82 -0
- data/lib/recurly/resources/shipping_method.rb +46 -0
- data/lib/recurly/resources/shipping_method_mini.rb +26 -0
- data/lib/recurly/resources/site.rb +54 -0
- data/lib/recurly/resources/subscription.rb +174 -0
- data/lib/recurly/resources/subscription_add_on.rb +66 -0
- data/lib/recurly/resources/subscription_add_on_tier.rb +18 -0
- data/lib/recurly/resources/subscription_change.rb +78 -0
- data/lib/recurly/resources/subscription_change_preview.rb +78 -0
- data/lib/recurly/resources/subscription_shipping.rb +26 -0
- data/lib/recurly/resources/tax_info.rb +22 -0
- data/lib/recurly/resources/tier.rb +18 -0
- data/lib/recurly/resources/transaction.rb +158 -0
- data/lib/recurly/resources/transaction_error.rb +38 -0
- data/lib/recurly/resources/transaction_payment_gateway.rb +26 -0
- data/lib/recurly/resources/unique_coupon_code.rb +50 -0
- data/lib/recurly/resources/usage.rb +70 -0
- data/lib/recurly/resources/user.rb +42 -0
- data/lib/recurly/resources.rb +18 -0
- data/lib/recurly/schema/file_parser.rb +13 -0
- data/lib/recurly/schema/json_parser.rb +72 -0
- data/lib/recurly/schema/request_caster.rb +60 -0
- data/lib/recurly/schema/resource_caster.rb +46 -0
- data/lib/recurly/schema/schema_factory.rb +48 -0
- data/lib/recurly/schema/schema_validator.rb +144 -0
- data/lib/recurly/schema.rb +156 -0
- data/lib/recurly/version.rb +1 -15
- data/lib/recurly.rb +15 -137
- data/openapi/api.yaml +21024 -0
- data/recurly.gemspec +39 -0
- data/scripts/build +5 -0
- data/scripts/bump +11 -0
- data/scripts/changelog +14 -0
- data/scripts/clean +6 -0
- data/scripts/format +12 -0
- data/scripts/prepare-release +36 -0
- data/scripts/release +32 -0
- data/scripts/test +15 -0
- metadata +206 -168
- data/lib/recurly/account.rb +0 -169
- data/lib/recurly/account_balance.rb +0 -21
- data/lib/recurly/add_on.rb +0 -30
- data/lib/recurly/address.rb +0 -25
- data/lib/recurly/adjustment.rb +0 -76
- data/lib/recurly/api/errors.rb +0 -206
- data/lib/recurly/api/net_http_adapter.rb +0 -111
- data/lib/recurly/api.rb +0 -101
- data/lib/recurly/billing_info.rb +0 -80
- data/lib/recurly/coupon.rb +0 -134
- data/lib/recurly/credit_payment.rb +0 -28
- data/lib/recurly/custom_field.rb +0 -15
- data/lib/recurly/delivery.rb +0 -19
- data/lib/recurly/error.rb +0 -13
- data/lib/recurly/gift_card.rb +0 -79
- data/lib/recurly/helper.rb +0 -51
- data/lib/recurly/invoice.rb +0 -268
- data/lib/recurly/invoice_collection.rb +0 -14
- data/lib/recurly/js.rb +0 -14
- data/lib/recurly/juris_detail.rb +0 -14
- data/lib/recurly/measured_unit.rb +0 -16
- data/lib/recurly/money.rb +0 -120
- data/lib/recurly/plan.rb +0 -40
- data/lib/recurly/purchase.rb +0 -219
- data/lib/recurly/redemption.rb +0 -46
- data/lib/recurly/resource/association.rb +0 -16
- data/lib/recurly/resource/errors.rb +0 -20
- data/lib/recurly/resource/pager.rb +0 -314
- data/lib/recurly/shipping_address.rb +0 -22
- data/lib/recurly/subscription/add_ons.rb +0 -77
- data/lib/recurly/subscription.rb +0 -325
- data/lib/recurly/subscription_add_on.rb +0 -50
- data/lib/recurly/tax_detail.rb +0 -14
- data/lib/recurly/tax_type.rb +0 -12
- data/lib/recurly/transaction/errors.rb +0 -107
- data/lib/recurly/transaction.rb +0 -116
- data/lib/recurly/usage.rb +0 -24
- data/lib/recurly/webhook/account_notification.rb +0 -10
- data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
- data/lib/recurly/webhook/dunning_notification.rb +0 -14
- data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
- data/lib/recurly/webhook/gift_card_notification.rb +0 -8
- data/lib/recurly/webhook/invoice_notification.rb +0 -12
- data/lib/recurly/webhook/new_account_notification.rb +0 -6
- data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
- data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/new_usage_notification.rb +0 -8
- data/lib/recurly/webhook/notification.rb +0 -18
- data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
- data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
- data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_notification.rb +0 -12
- data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
- data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_notification.rb +0 -12
- data/lib/recurly/webhook/updated_account_notification.rb +0 -6
- data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/void_payment_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook.rb +0 -88
- data/lib/recurly/xml/nokogiri.rb +0 -58
- data/lib/recurly/xml/rexml.rb +0 -50
- data/lib/recurly/xml.rb +0 -120
@@ -0,0 +1,156 @@
|
|
1
|
+
module Recurly
|
2
|
+
# The class responsible for describing a schema.
|
3
|
+
# This is used for requests and resources.
|
4
|
+
class Schema
|
5
|
+
# The attributes in the schema
|
6
|
+
# @return [Hash<String,Attribute>]
|
7
|
+
attr_reader :attributes
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@attributes = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
# Adds an attribute to the schema definition
|
14
|
+
#
|
15
|
+
# @param name [Symbol] The name of the attribute
|
16
|
+
# @param type [Class,Symbol] The type of the attribute. Use capitalized symbol for Recurly class. Example: :Account.
|
17
|
+
# @param options [Schema::Attribute] The created and registered attribute object.
|
18
|
+
def add_attribute(name, type, options)
|
19
|
+
attribute = Attribute.build(type, options)
|
20
|
+
@attributes[name.to_s] = attribute
|
21
|
+
attribute
|
22
|
+
end
|
23
|
+
|
24
|
+
# Gets an attribute from this schema given a name
|
25
|
+
#
|
26
|
+
# @param name [String,Symbol] The name/key of the attribute
|
27
|
+
# @return [Attribute,nil] The found Attribute. nil if not found.
|
28
|
+
def get_attribute(name)
|
29
|
+
@attributes[name.to_s]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Gets a recurly class given a symbol name.
|
33
|
+
#
|
34
|
+
# @example
|
35
|
+
# Schema.get_recurly_class(:Account)
|
36
|
+
# #=> Recurly::Resources::Account
|
37
|
+
#
|
38
|
+
# @param type [Symbol] The name of the class you wish to find
|
39
|
+
# @return [Request,Resource]
|
40
|
+
# @raise ArgumentError If class can't be found.
|
41
|
+
def self.get_recurly_class(type)
|
42
|
+
raise ArgumentError, "#{type.inspect} must be a symbol but is a #{type.class}" unless type.is_a?(Symbol)
|
43
|
+
|
44
|
+
if type == :Address
|
45
|
+
Recurly::Resources::Address
|
46
|
+
elsif Recurly::Requests.const_defined?(type, false)
|
47
|
+
Recurly::Requests.const_get(type, false)
|
48
|
+
elsif Recurly::Resources.const_defined?(type, false)
|
49
|
+
Recurly::Resources.const_get(type, false)
|
50
|
+
else
|
51
|
+
raise ArgumentError, "Recurly type '#{type}' is unknown"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
class Attribute
|
56
|
+
# The type of the attribute. Might be a class like `DateTime`
|
57
|
+
# or could be a Recurly object. In this case a symbol should be used.
|
58
|
+
# Example: :Account. To get the Recurly type use #recurly_class
|
59
|
+
# @return [Class,Symbol]
|
60
|
+
attr_reader :type
|
61
|
+
|
62
|
+
PRIMITIVE_TYPES = [
|
63
|
+
String,
|
64
|
+
Integer,
|
65
|
+
Float,
|
66
|
+
Hash,
|
67
|
+
].freeze
|
68
|
+
|
69
|
+
def self.build(type, options = {})
|
70
|
+
if PRIMITIVE_TYPES.include? type
|
71
|
+
PrimitiveAttribute.new(type)
|
72
|
+
elsif type == :Boolean
|
73
|
+
BooleanAttribute.new
|
74
|
+
elsif type == DateTime
|
75
|
+
DateTimeAttribute.new
|
76
|
+
elsif type.is_a? Symbol
|
77
|
+
ResourceAttribute.new(type)
|
78
|
+
elsif type == Array
|
79
|
+
item_attr = build(options[:item_type])
|
80
|
+
ArrayAttribute.new(item_attr)
|
81
|
+
else
|
82
|
+
throw ArgumentError
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def initialize(type = nil)
|
87
|
+
@type = type
|
88
|
+
end
|
89
|
+
|
90
|
+
def cast(value)
|
91
|
+
value
|
92
|
+
end
|
93
|
+
|
94
|
+
def recurly_class
|
95
|
+
@recurly_class ||= Schema.get_recurly_class(type)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class PrimitiveAttribute < Attribute
|
100
|
+
def is_valid?(value)
|
101
|
+
value.is_a? self.type
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
class BooleanAttribute < Attribute
|
106
|
+
def is_valid?(value)
|
107
|
+
[true, false].include? value
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
class DateTimeAttribute < Attribute
|
112
|
+
def is_valid?(value)
|
113
|
+
value.is_a?(String) || value.is_a?(DateTime)
|
114
|
+
end
|
115
|
+
|
116
|
+
def cast(value)
|
117
|
+
if value.is_a?(DateTime)
|
118
|
+
value
|
119
|
+
else
|
120
|
+
DateTime.parse(value)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def type
|
125
|
+
DateTime
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
class ResourceAttribute < Attribute
|
130
|
+
def is_valid?(value)
|
131
|
+
value.is_a? Hash
|
132
|
+
end
|
133
|
+
|
134
|
+
def cast(value)
|
135
|
+
self.recurly_class.cast(value)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
class ArrayAttribute < Attribute
|
140
|
+
def is_valid?(value)
|
141
|
+
value.is_a? Array
|
142
|
+
end
|
143
|
+
|
144
|
+
def cast(value)
|
145
|
+
value.map do |v|
|
146
|
+
self.type.cast(v)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
require_relative "./schema/schema_factory"
|
153
|
+
require_relative "./schema/schema_validator"
|
154
|
+
require_relative "./schema/resource_caster"
|
155
|
+
require_relative "./schema/request_caster"
|
156
|
+
end
|
data/lib/recurly/version.rb
CHANGED
@@ -1,17 +1,3 @@
|
|
1
1
|
module Recurly
|
2
|
-
|
3
|
-
MAJOR = 2
|
4
|
-
MINOR = 17
|
5
|
-
PATCH = 0
|
6
|
-
PRE = nil
|
7
|
-
|
8
|
-
VERSION = [MAJOR, MINOR, PATCH, PRE].compact.join('.').freeze
|
9
|
-
|
10
|
-
class << self
|
11
|
-
def inspect
|
12
|
-
VERSION.dup
|
13
|
-
end
|
14
|
-
alias to_s inspect
|
15
|
-
end
|
16
|
-
end
|
2
|
+
VERSION = "3.14.0"
|
17
3
|
end
|
data/lib/recurly.rb
CHANGED
@@ -1,140 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
require 'recurly/add_on'
|
13
|
-
require 'recurly/address'
|
14
|
-
require 'recurly/tax_detail'
|
15
|
-
require 'recurly/tax_type'
|
16
|
-
require 'recurly/juris_detail'
|
17
|
-
require 'recurly/adjustment'
|
18
|
-
require 'recurly/coupon'
|
19
|
-
require 'recurly/credit_payment'
|
20
|
-
require 'recurly/helper'
|
21
|
-
require 'recurly/invoice'
|
22
|
-
require 'recurly/invoice_collection'
|
23
|
-
require 'recurly/js'
|
24
|
-
require 'recurly/money'
|
25
|
-
require 'recurly/measured_unit'
|
26
|
-
require 'recurly/plan'
|
27
|
-
require 'recurly/redemption'
|
28
|
-
require 'recurly/subscription'
|
29
|
-
require 'recurly/subscription_add_on'
|
30
|
-
require 'recurly/transaction'
|
31
|
-
require 'recurly/usage'
|
32
|
-
require 'recurly/version'
|
33
|
-
require 'recurly/xml'
|
34
|
-
require 'recurly/delivery'
|
35
|
-
require 'recurly/gift_card'
|
36
|
-
require 'recurly/purchase'
|
37
|
-
require 'recurly/webhook'
|
38
|
-
|
39
|
-
@subdomain = nil
|
40
|
-
|
41
|
-
# This exception is raised if Recurly has not been configured.
|
42
|
-
class ConfigurationError < Error
|
43
|
-
end
|
44
|
-
|
45
|
-
class << self
|
46
|
-
# Set a config based on current thread context.
|
47
|
-
# Any default set will say in effect unless overwritten in the config_params.
|
48
|
-
# Call this method with out any arguments to have it unset the thread context config values.
|
49
|
-
# @param config_params - Hash with the following keys: subdomain, api_key, default_currency
|
50
|
-
def config(config_params = nil)
|
51
|
-
Thread.current[:recurly_config] = config_params
|
52
|
-
end
|
53
|
-
|
54
|
-
# @return [String] A subdomain.
|
55
|
-
def subdomain
|
56
|
-
if Thread.current[:recurly_config] && Thread.current[:recurly_config][:subdomain]
|
57
|
-
return Thread.current[:recurly_config][:subdomain]
|
58
|
-
end
|
59
|
-
@subdomain || 'api'
|
60
|
-
end
|
61
|
-
attr_writer :subdomain
|
62
|
-
|
63
|
-
# @return [String] An API key.
|
64
|
-
# @raise [ConfigurationError] If not configured.
|
65
|
-
def api_key
|
66
|
-
if Thread.current[:recurly_config] && Thread.current[:recurly_config][:api_key]
|
67
|
-
return Thread.current[:recurly_config][:api_key]
|
68
|
-
end
|
69
|
-
|
70
|
-
defined? @api_key and @api_key or raise(
|
71
|
-
ConfigurationError, "Recurly.api_key not configured"
|
72
|
-
)
|
73
|
-
end
|
74
|
-
attr_writer :api_key
|
1
|
+
require "recurly/version"
|
2
|
+
require "recurly/schema"
|
3
|
+
require "recurly/request"
|
4
|
+
require "recurly/resource"
|
5
|
+
require "recurly/pager"
|
6
|
+
require "recurly/requests"
|
7
|
+
require "recurly/resources"
|
8
|
+
require "recurly/http"
|
9
|
+
require "recurly/errors"
|
10
|
+
require "recurly/connection_pool"
|
11
|
+
require "recurly/client"
|
75
12
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
return @default_currency if defined? @default_currency
|
83
|
-
@default_currency = 'USD'
|
84
|
-
end
|
85
|
-
attr_writer :default_currency
|
86
|
-
|
87
|
-
# @return [JS] The Recurly.js module.
|
88
|
-
def js
|
89
|
-
JS
|
90
|
-
end
|
91
|
-
|
92
|
-
# Assigns a logger to log requests/responses and more.
|
93
|
-
# The logger can only be set if the environment variable
|
94
|
-
# `RECURLY_INSECURE_DEBUG` equals `true`.
|
95
|
-
#
|
96
|
-
# @return [Logger, nil]
|
97
|
-
# @example
|
98
|
-
# require 'logger'
|
99
|
-
# Recurly.logger = Logger.new STDOUT
|
100
|
-
# @example Rails applications automatically log to the Rails log:
|
101
|
-
# Recurly.logger = Rails.logger
|
102
|
-
# @example Turn off logging entirely:
|
103
|
-
# Recurly.logger = nil # Or Recurly.logger = Logger.new nil
|
104
|
-
attr_accessor :logger
|
105
|
-
|
106
|
-
def logger=(logger)
|
107
|
-
if ENV['RECURLY_INSECURE_DEBUG'].to_s.downcase == 'true'
|
108
|
-
@logger = logger
|
109
|
-
puts <<-MSG
|
110
|
-
[WARNING] Recurly logger enabled. The logger has the potential to leak
|
111
|
-
PII and should never be used in production environments.
|
112
|
-
MSG
|
113
|
-
else
|
114
|
-
puts <<-MSG
|
115
|
-
[WARNING] Recurly logger has been disabled. If you wish to use it,
|
116
|
-
only do so in a non-production environment and make sure
|
117
|
-
the `RECURLY_INSECURE_DEBUG` environment variable is set to `true`.
|
118
|
-
MSG
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
# Convenience logging method includes a Logger#progname dynamically.
|
123
|
-
# @return [true, nil]
|
124
|
-
def log level, message
|
125
|
-
logger.send(level, name) { message }
|
126
|
-
end
|
127
|
-
|
128
|
-
if RUBY_VERSION <= "1.9.0"
|
129
|
-
def const_defined? sym, inherit = false
|
130
|
-
raise ArgumentError, "inherit must be false" if inherit
|
131
|
-
super sym
|
132
|
-
end
|
133
|
-
|
134
|
-
def const_get sym, inherit = false
|
135
|
-
raise ArgumentError, "inherit must be false" if inherit
|
136
|
-
super sym
|
137
|
-
end
|
138
|
-
end
|
13
|
+
module Recurly
|
14
|
+
STRICT_MODE = ENV["RECURLY_STRICT_MODE"] && ENV["RECURLY_STRICT_MODE"].downcase == "true"
|
15
|
+
if STRICT_MODE
|
16
|
+
puts "[Recurly] [WARNING] STRICT_MODE enabled. This should only be used for testing purposes."
|
139
17
|
end
|
140
18
|
end
|