recurly 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of recurly might be problematic. Click here for more details.

@@ -12,7 +12,7 @@ Recurly is packaged as a Ruby gem. We recommend you install it with
12
12
  [Bundler](http://gembundler.com/) by adding the following line to your Gemfile:
13
13
 
14
14
  ``` ruby
15
- gem 'recurly', '~> 2.0.8'
15
+ gem 'recurly', '~> 2.0.9'
16
16
  ```
17
17
 
18
18
  Recurly will automatically use [Nokogiri](http://nokogiri.org/) (for a nice
@@ -62,7 +62,7 @@ Instructions and examples are available on
62
62
  [Recurly's documentation site](http://docs.recurly.com/api/basics).
63
63
 
64
64
  Recurly's gem API is available
65
- [here](http://rubydoc.info/gems/recurly/2.0.8/frames).
65
+ [here](http://rubydoc.info/gems/recurly/2.0.9/frames).
66
66
 
67
67
 
68
68
  ## Contributing
@@ -47,6 +47,6 @@ module Recurly
47
47
  end
48
48
 
49
49
  # Adjustments are only writeable through an {Account} instance.
50
- embedded!
50
+ embedded! true
51
51
  end
52
52
  end
@@ -26,6 +26,8 @@ module Recurly
26
26
  first_six
27
27
  last_four
28
28
  paypal_billing_agreement_id
29
+ number
30
+ verification_value
29
31
  )
30
32
 
31
33
  # @return ["credit_card", "paypal", nil] The type of billing info.
@@ -39,7 +39,7 @@ module Recurly
39
39
  end
40
40
 
41
41
  # Invoices are only writeable through {Account} instances.
42
- embedded!
42
+ embedded! true
43
43
  undef save
44
44
  undef destroy
45
45
  end
@@ -205,7 +205,7 @@ module Recurly
205
205
  # a.name_change # => [nil, "Stephen"]
206
206
  def define_attribute_methods attribute_names
207
207
  @attribute_names = attribute_names.map! { |m| m.to_s }.sort!.freeze
208
- remove_const :AttributeMethods if const_defined? :AttributeMethods
208
+ remove_const :AttributeMethods if constants.include? :AttributeMethods
209
209
  include const_set :AttributeMethods, Module.new {
210
210
  attribute_names.each do |name|
211
211
  define_method(name) { self[name] } # Get.
@@ -422,7 +422,7 @@ module Recurly
422
422
  # @return [Hash] A list of association names for the current class.
423
423
  def associations
424
424
  @associations ||= begin
425
- unless const_defined? :Associations
425
+ unless constants.include? :Associations
426
426
  include const_set :Associations, Module.new
427
427
  end
428
428
 
@@ -506,11 +506,12 @@ module Recurly
506
506
  a = associations.find { |k, v| v.include? name.to_s } and a.first
507
507
  end
508
508
 
509
- def embedded!
510
- private_class_method(*%w(
511
- new create create! paginate find_each scoped where all
512
- ))
509
+ def embedded! root_index = false
513
510
  private :initialize
511
+ private_class_method(*%w(new create create!))
512
+ unless root_index
513
+ private_class_method(*%w(all find_each first paginate scoped where))
514
+ end
514
515
  end
515
516
  end
516
517
 
@@ -160,6 +160,15 @@ module Recurly
160
160
  new(attributes) { |record| record.save! }
161
161
  end
162
162
 
163
+ def find uuid
164
+ if resource_class.respond_to? :find
165
+ raise NoMethodError,
166
+ "#find must be called on #{resource_class} directly"
167
+ end
168
+
169
+ resource_class.from_response API.get("#{uri}/#{uuid}")
170
+ end
171
+
163
172
  # @return [true, false]
164
173
  # @see Object#respond_to?
165
174
  def respond_to? method_name, include_private = false
@@ -177,8 +186,8 @@ module Recurly
177
186
  @count = response['X-Records'].to_i
178
187
  @links = {}
179
188
  if links = response['Link']
180
- links.scan(/<([^>]+)>; rel="([^"]+)"/).each do |link|
181
- @links[link.last] = link.first.freeze
189
+ links.scan(/<([^>]+)>; rel="([^"]+)"/).each do |link, rel|
190
+ @links[rel] = link.freeze
182
191
  end
183
192
  end
184
193
  @links.freeze
@@ -37,6 +37,7 @@ module Recurly
37
37
  trial_ends_at
38
38
  pending_subscription
39
39
  subscription_add_ons
40
+ coupon_code
40
41
  )
41
42
  alias to_param uuid
42
43
 
@@ -61,6 +62,16 @@ module Recurly
61
62
  self[:plan_code] = plan_code
62
63
  end
63
64
 
65
+ # Assign a Coupon resource (rather than a coupon code).
66
+ #
67
+ # @param coupon [Coupon]
68
+ def coupon= coupon
69
+ self.coupon_code = (
70
+ coupon.coupon_code if coupon.respond_to? :coupon_code
71
+ )
72
+ attributes[:coupon] = coupon
73
+ end
74
+
64
75
  # @return [AddOns]
65
76
  def subscription_add_ons
66
77
  AddOns.new self, super
@@ -2,7 +2,7 @@ module Recurly
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- PATCH = 8
5
+ PATCH = 9
6
6
  PRE = nil
7
7
 
8
8
  VERSION = [MAJOR, MINOR, PATCH, PRE].compact.join('.').freeze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recurly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-16 00:00:00.000000000 Z
12
+ date: 2011-11-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70258497739360 !ruby/object:Gem::Requirement
16
+ requirement: &70125982298980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.9.2
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70258497739360
24
+ version_requirements: *70125982298980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70258497738600 !ruby/object:Gem::Requirement
27
+ requirement: &70125982298100 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.pre.10
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70258497738600
35
+ version_requirements: *70125982298100
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitest
38
- requirement: &70258497736800 !ruby/object:Gem::Requirement
38
+ requirement: &70125982297300 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.6.1
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70258497736800
46
+ version_requirements: *70125982297300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: webmock
49
- requirement: &70258497735780 !ruby/object:Gem::Requirement
49
+ requirement: &70125982296580 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.7.6
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70258497735780
57
+ version_requirements: *70125982296580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-minitest
60
- requirement: &70258497734540 !ruby/object:Gem::Requirement
60
+ requirement: &70125982295680 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.4.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70258497734540
68
+ version_requirements: *70125982295680
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rb-fsevent
71
- requirement: &70258497733840 !ruby/object:Gem::Requirement
71
+ requirement: &70125982294700 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.4.3.1
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70258497733840
79
+ version_requirements: *70125982294700
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: growl_notify
82
- requirement: &70258497732920 !ruby/object:Gem::Requirement
82
+ requirement: &70125982293960 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: 0.0.1
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70258497732920
90
+ version_requirements: *70125982293960
91
91
  description: ! 'An API client library for Recurly: http://recurly.com'
92
92
  email: support@recurly.com
93
93
  executables: