chargify_api_ares 0.5.2 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,37 +1,49 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chargify_api_ares (0.5.2)
4
+ chargify_api_ares (0.5.4)
5
5
  activeresource (>= 2.3.5)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
- activemodel (3.1.1)
11
- activesupport (= 3.1.1)
10
+ activemodel (3.2.12)
11
+ activesupport (= 3.2.12)
12
12
  builder (~> 3.0.0)
13
+ activeresource (3.2.12)
14
+ activemodel (= 3.2.12)
15
+ activesupport (= 3.2.12)
16
+ activesupport (3.2.12)
13
17
  i18n (~> 0.6)
14
- activeresource (3.1.1)
15
- activemodel (= 3.1.1)
16
- activesupport (= 3.1.1)
17
- activesupport (3.1.1)
18
18
  multi_json (~> 1.0)
19
- builder (3.0.0)
19
+ builder (3.0.4)
20
+ coderay (1.0.8)
20
21
  diff-lcs (1.1.3)
21
22
  factory_girl (2.1.2)
22
23
  activesupport
23
- faker (1.0.1)
24
- i18n (~> 0.4)
24
+ faker (1.1.2)
25
+ i18n (~> 0.5)
25
26
  fakeweb (1.3.0)
26
27
  growl (1.0.3)
27
- guard (0.8.8)
28
- thor (~> 0.14.6)
29
- guard-rspec (0.5.0)
28
+ guard (1.6.2)
29
+ listen (>= 0.6.0)
30
+ lumberjack (>= 1.0.2)
31
+ pry (>= 0.9.10)
32
+ terminal-table (>= 1.4.3)
33
+ thor (>= 0.14.6)
34
+ guard-rspec (0.5.11)
30
35
  guard (>= 0.8.4)
31
- i18n (0.6.0)
32
- multi_json (1.0.3)
33
- rake (0.9.2.2)
34
- rb-fsevent (0.4.3.1)
36
+ i18n (0.6.1)
37
+ listen (0.7.2)
38
+ lumberjack (1.0.2)
39
+ method_source (0.8.1)
40
+ multi_json (1.6.1)
41
+ pry (0.9.12)
42
+ coderay (~> 1.0.5)
43
+ method_source (~> 0.8)
44
+ slop (~> 3.4)
45
+ rake (0.9.6)
46
+ rb-fsevent (0.9.3)
35
47
  rspec (2.7.0)
36
48
  rspec-core (~> 2.7.0)
37
49
  rspec-expectations (~> 2.7.0)
@@ -40,7 +52,9 @@ GEM
40
52
  rspec-expectations (2.7.0)
41
53
  diff-lcs (~> 1.1.2)
42
54
  rspec-mocks (2.7.0)
43
- thor (0.14.6)
55
+ slop (3.4.3)
56
+ terminal-table (1.4.5)
57
+ thor (0.17.0)
44
58
 
45
59
  PLATFORMS
46
60
  ruby
@@ -48,10 +62,10 @@ PLATFORMS
48
62
  DEPENDENCIES
49
63
  chargify_api_ares!
50
64
  factory_girl (~> 2.1.0)
51
- faker (~> 1.0.1)
65
+ faker (~> 1.1.2)
52
66
  fakeweb (~> 1.3.0)
53
67
  growl (~> 1.0.3)
54
68
  guard-rspec (~> 0.5.0)
55
69
  rake (~> 0.9.2)
56
- rb-fsevent (~> 0.4.2)
70
+ rb-fsevent (~> 0.9.2)
57
71
  rspec (~> 2.7.0)
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
- Chargify API wrapper for Ruby (using ActiveResource) [![build status](https://secure.travis-ci.org/chargify/chargify_api_ares.png)](http://travis-ci.org/chargify/chargify_api_ares)
1
+ Chargify API wrapper for Ruby (using ActiveResource)
2
2
  ====================================================
3
+ [![build status](https://secure.travis-ci.org/chargify/chargify_api_ares.png)](http://travis-ci.org/chargify/chargify_api_ares)
3
4
 
4
5
  This is a Ruby wrapper for the [Chargify](http://chargify.com) API that leverages ActiveResource.
5
6
 
7
+ ActiveResource versions 3.0.0 to 3.0.19 are not compatible and will throw an exception. Please use at least version 3.0.20 if on 3.0. For more information see the [relevant rails pull request](https://github.com/rails/rails/pull/8853/files).
8
+
6
9
  It allows you to interface with the Chargify API using simple ActiveRecord-like syntax, i.e.:
7
10
 
8
11
  ``` ruby
@@ -4,11 +4,11 @@ Gem::Specification.new do |s|
4
4
  s.rubygems_version = '1.3.7'
5
5
 
6
6
  s.name = 'chargify_api_ares'
7
- s.version = '0.5.2'
8
- s.date = '2012-12-15'
7
+ s.version = '0.5.4'
8
+ s.date = '2013-02-14'
9
9
  s.summary = 'A Chargify API wrapper for Ruby using ActiveResource'
10
10
  s.description = ''
11
- s.authors = ["Michael Klett", "Nathan Verni", "Rodrigo Franco", "Shay Frendt"]
11
+ s.authors = ["Michael Klett", "Nathan Verni", "Graham McIntire", "Rodrigo Franco", "Shay Frendt"]
12
12
  s.email = 'support@chargify.com'
13
13
  s.homepage = 'http://github.com/chargify/chargify_api_ares'
14
14
 
@@ -24,8 +24,8 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency('rspec', '~> 2.7.0')
25
25
  s.add_development_dependency('factory_girl', '~> 2.1.0')
26
26
  s.add_development_dependency('fakeweb', '~> 1.3.0')
27
- s.add_development_dependency('faker', '~> 1.0.1')
27
+ s.add_development_dependency('faker', '~> 1.1.2')
28
28
  s.add_development_dependency('guard-rspec', '~> 0.5.0')
29
29
  s.add_development_dependency('growl', '~> 1.0.3')
30
- s.add_development_dependency('rb-fsevent', '~> 0.4.2')
30
+ s.add_development_dependency('rb-fsevent', '~> 0.9.2')
31
31
  end
@@ -4,6 +4,7 @@ require 'chargify_api_ares/resources/base'
4
4
  require 'chargify_api_ares/resources/component'
5
5
  require 'chargify_api_ares/resources/coupon'
6
6
  require 'chargify_api_ares/resources/customer'
7
+ require 'chargify_api_ares/resources/event'
7
8
  require 'chargify_api_ares/resources/payment_profile'
8
9
  require 'chargify_api_ares/resources/product'
9
10
  require 'chargify_api_ares/resources/product_family'
@@ -12,3 +13,11 @@ require 'chargify_api_ares/resources/statement'
12
13
  require 'chargify_api_ares/resources/subscription'
13
14
  require 'chargify_api_ares/resources/transaction'
14
15
  require 'chargify_api_ares/resources/usage'
16
+ require 'chargify_api_ares/resources/webhook'
17
+
18
+ if defined?(::ActiveResource::VERSION::MAJOR) &&
19
+ ::ActiveResource::VERSION::MAJOR == 3 &&
20
+ ::ActiveResource::VERSION::MINOR == 0 &&
21
+ ::ActiveResource::VERSION::TINY < 20
22
+ raise RuntimeError, 'This gem is not compatible with ActiveResource versions 3.0.0 to 3.0.19, please upgrade to at least 3.0.20'
23
+ end
@@ -11,6 +11,8 @@ module Chargify
11
11
 
12
12
  self.site ||= "https://#{subdomain}.chargify.com"
13
13
  Base.site = site
14
+ self.format ||= :xml
15
+ Base.format = format
14
16
  end
15
17
  end
16
18
  end
@@ -7,7 +7,19 @@ module Chargify
7
7
  def self.find_by_product_family_id_and_code(product_family_id, code)
8
8
  find(:one, :from => :lookup, :params => {:product_family_id => product_family_id, :code => code})
9
9
  end
10
-
10
+
11
+ def self.validate(params = {})
12
+ product_family_id = params.fetch(:product_family_id, nil)
13
+ coupon_code = params.fetch(:coupon_code, nil)
14
+
15
+ raise ArgumentError, 'coupon_code is a required argument' if coupon_code.blank?
16
+
17
+ params = {:coupon_code => coupon_code}
18
+ params.merge!(:product_family_id => product_family_id) if product_family_id.present?
19
+
20
+ find :one, :from => :validate, :params => params
21
+ end
22
+
11
23
  def usage
12
24
  get :usage
13
25
  end
@@ -0,0 +1,4 @@
1
+ module Chargify
2
+ class Event < Base
3
+ end
4
+ end
@@ -10,6 +10,34 @@ module Chargify
10
10
 
11
11
  class Component < Base
12
12
  self.prefix = "/product_families/:product_family_id/"
13
+
14
+ def self.create_path(prefix_options = {}, query_options = nil)
15
+ check_prefix_options(prefix_options)
16
+ prefix_options, query_options = split_options(prefix_options) if query_options.nil?
17
+ "#{prefix(prefix_options)}:component_kind_plural.#{format.extension}#{query_string(query_options)}"
18
+ end
19
+
20
+ def create_path(options = nil)
21
+ path = self.class.create_path(options || prefix_options)
22
+ path.gsub(/:component_kind_plural/, component_kind_plural)
23
+ end
24
+
25
+ # Create uses a different path other than the collection_path. It is expected to POST to
26
+ # /product_families/:product_family_id/:plural_kind.xml
27
+ def create
28
+ connection.post(create_path, encode(:root => component_kind, :except => [:kind]), self.class.headers).tap do |response|
29
+ self.id = id_from_response(response)
30
+ load_attributes_from_response(response)
31
+ end
32
+ end
33
+
34
+ def component_kind
35
+ @attributes['kind']
36
+ end
37
+
38
+ def component_kind_plural
39
+ "#{self.component_kind}s"
40
+ end
13
41
  end
14
42
 
15
43
  class Coupon < Base
@@ -25,6 +25,11 @@ module Chargify
25
25
  params.merge!({:subscription_id => self.id})
26
26
  Component.find(:all, :params => params)
27
27
  end
28
+
29
+ def events(params = {})
30
+ params.merge!(:subscription_id => self.id)
31
+ Event.all(:params => params)
32
+ end
28
33
 
29
34
  def payment_profile
30
35
  self.respond_to?('credit_card') ? credit_card : nil
@@ -98,6 +103,10 @@ module Chargify
98
103
  end
99
104
  end
100
105
 
106
+ class Event < Base
107
+ self.prefix = '/subscriptions/:subscription_id/'
108
+ end
109
+
101
110
  class Statement < Base
102
111
  self.prefix = "/subscriptions/:subscription_id/"
103
112
  end
@@ -0,0 +1,11 @@
1
+ module Chargify
2
+ class Webhook < Base
3
+ def self.replay(webhook_ids_array)
4
+ post :replay, {}, webhook_ids_array.to_xml(:root => :ids)
5
+ end
6
+
7
+ def replay
8
+ self.class.replay([self.id])
9
+ end
10
+ end
11
+ end
@@ -313,6 +313,58 @@ describe "Remote" do
313
313
  tx.transaction_type.should == 'refund'
314
314
  end
315
315
  end
316
+
317
+ describe 'Webhooks' do
318
+ before(:all) do
319
+ @subscription = Chargify::Subscription.create(
320
+ :product_handle => pro_plan.handle,
321
+ :customer_reference => johnadoe.reference,
322
+ :payment_profile_attributes => good_payment_profile_attributes)
323
+ end
324
+
325
+ it 'should list all webhooks' do
326
+ Chargify::Webhook.all.should_not be_empty
327
+ end
328
+
329
+ # The sleep in the next 2 examples precludes the use of expect{foo}.to change{bar}
330
+ it 'should replay specified webhooks' do
331
+ # Note: Webhook#reload doesn't work.
332
+ webhook = Chargify::Webhook.first
333
+ last_sent_at = webhook.last_sent_at
334
+
335
+ webhook.replay
336
+
337
+ sleep 4
338
+ Chargify::Webhook.first.last_sent_at.should_not == last_sent_at
339
+ end
340
+
341
+ it 'should replay webhooks specified by id' do
342
+ webhooks = Chargify::Webhook.all
343
+ webhook_ids = [0, 1].map {|i| webhooks[i].id}
344
+ fetch_last_sent_times = lambda {|ary| ary.select{ |w| webhook_ids.include?(w.id) }.map(&:last_sent_at)}
345
+ last_sent_at_times = fetch_last_sent_times.call(webhooks)
346
+ Chargify::Webhook.replay(webhook_ids)
347
+ sleep 4
348
+ fetch_last_sent_times.call(Chargify::Webhook.all).should_not == last_sent_at_times
349
+ end
350
+ end
351
+
352
+ describe 'Events' do
353
+ before(:all) do
354
+ @subscription = Chargify::Subscription.create(
355
+ :product_handle => pro_plan.handle,
356
+ :customer_reference => johnadoe.reference,
357
+ :payment_profile_attributes => good_payment_profile_attributes)
358
+ end
359
+
360
+ it 'should list all events for the site' do
361
+ Chargify::Event.all.should_not be_empty
362
+ end
363
+
364
+ it 'should lits all events for a subscription' do
365
+ @subscription.events.should_not be_empty
366
+ end
367
+ end
316
368
  end
317
369
 
318
370
  def clear_site_data
@@ -37,4 +37,27 @@ describe Chargify::Coupon do
37
37
  coupons.map{|c| c.should be_instance_of(Chargify::Coupon)}
38
38
  end
39
39
  end
40
+
41
+ context '.validate' do
42
+ let(:coupon_1) { Factory.build(:coupon, :product_family_id => 6) }
43
+
44
+ before do
45
+ FakeWeb.register_uri(:get, "#{test_domain}/coupons/validate.xml?product_family_id=6&coupon_code=foobar123", :body => coupon_1.attributes.to_xml)
46
+ FakeWeb.register_uri(:get, "#{test_domain}/coupons/validate.xml?coupon_code=foobar123", :body => coupon_1.attributes.to_xml)
47
+ end
48
+
49
+ it 'returns the coupon that matches the coupon code' do
50
+ coupon = Chargify::Coupon.validate(:product_family_id => 6, :coupon_code => 'foobar123')
51
+ coupon.should be_instance_of Chargify::Coupon
52
+ end
53
+
54
+ it 'treats the product_family_id as an optional parameter' do
55
+ coupon = Chargify::Coupon.validate(:coupon_code => 'foobar123')
56
+ coupon.should be_instance_of Chargify::Coupon
57
+ end
58
+
59
+ it 'treats the coupon_code as a required parameter' do
60
+ expect { coupon = Chargify::Coupon.validate }.to raise_error(ArgumentError)
61
+ end
62
+ end
40
63
  end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Chargify::ProductFamily::Component do
4
+ context 'create' do
5
+ let(:component) { Chargify::ProductFamily::Component }
6
+ let(:connection) { double('connection').as_null_object }
7
+ let(:response) { double('response').as_null_object }
8
+
9
+ before :each do
10
+ component.any_instance.stub(:connection).and_return(connection)
11
+ response.stub(:tap)
12
+ end
13
+
14
+ it 'should post to the correct url' do
15
+ connection.should_receive(:post) do |path, body, headers|
16
+ path.should == '/product_families/123/quantity_based_components.xml'
17
+
18
+ response
19
+ end
20
+
21
+ component.create(:product_family_id => 123, :kind => 'quantity_based_component', :name => 'Foo Component')
22
+ end
23
+
24
+ it 'should not include the kind attribute in the post' do
25
+ connection.should_receive(:post) do |path, body, headers|
26
+ body.should_not match(/kind/)
27
+
28
+ response
29
+ end
30
+
31
+ component.create(:product_family_id => 123, :kind => 'quantity_based_component', :name => 'Foo Component')
32
+ end
33
+
34
+ it 'should have the component kind as the root' do
35
+ connection.should_receive(:post) do |path, body, headers|
36
+ #The second line in the xml should be the root. This saves us from using nokogiri for this one example.
37
+ body.split($/)[1].should match(/quantity_based_component/)
38
+
39
+ response
40
+ end
41
+
42
+ component.create(:product_family_id => 123, :kind => 'quantity_based_component', :name => 'Foo Component')
43
+ end
44
+ end
45
+ end
metadata CHANGED
@@ -1,124 +1,179 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: chargify_api_ares
3
- version: !ruby/object:Gem::Version
4
- version: 0.5.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 3
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 4
10
+ version: 0.5.4
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Michael Klett
9
14
  - Nathan Verni
15
+ - Graham McIntire
10
16
  - Rodrigo Franco
11
17
  - Shay Frendt
12
18
  autorequire:
13
19
  bindir: bin
14
20
  cert_chain: []
15
- date: 2012-12-15 00:00:00.000000000 Z
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
21
+
22
+ date: 2013-02-14 00:00:00 Z
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
25
+ type: :runtime
18
26
  name: activeresource
19
- requirement: &70241045282040 !ruby/object:Gem::Requirement
27
+ version_requirements: &id001 !ruby/object:Gem::Requirement
20
28
  none: false
21
- requirements:
22
- - - ! '>='
23
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ hash: 9
33
+ segments:
34
+ - 2
35
+ - 3
36
+ - 5
24
37
  version: 2.3.5
25
- type: :runtime
38
+ requirement: *id001
26
39
  prerelease: false
27
- version_requirements: *70241045282040
28
- - !ruby/object:Gem::Dependency
40
+ - !ruby/object:Gem::Dependency
41
+ type: :development
29
42
  name: rake
30
- requirement: &70241045281580 !ruby/object:Gem::Requirement
43
+ version_requirements: &id002 !ruby/object:Gem::Requirement
31
44
  none: false
32
- requirements:
45
+ requirements:
33
46
  - - ~>
34
- - !ruby/object:Gem::Version
47
+ - !ruby/object:Gem::Version
48
+ hash: 63
49
+ segments:
50
+ - 0
51
+ - 9
52
+ - 2
35
53
  version: 0.9.2
36
- type: :development
54
+ requirement: *id002
37
55
  prerelease: false
38
- version_requirements: *70241045281580
39
- - !ruby/object:Gem::Dependency
56
+ - !ruby/object:Gem::Dependency
57
+ type: :development
40
58
  name: rspec
41
- requirement: &70241045281120 !ruby/object:Gem::Requirement
59
+ version_requirements: &id003 !ruby/object:Gem::Requirement
42
60
  none: false
43
- requirements:
61
+ requirements:
44
62
  - - ~>
45
- - !ruby/object:Gem::Version
63
+ - !ruby/object:Gem::Version
64
+ hash: 19
65
+ segments:
66
+ - 2
67
+ - 7
68
+ - 0
46
69
  version: 2.7.0
47
- type: :development
70
+ requirement: *id003
48
71
  prerelease: false
49
- version_requirements: *70241045281120
50
- - !ruby/object:Gem::Dependency
72
+ - !ruby/object:Gem::Dependency
73
+ type: :development
51
74
  name: factory_girl
52
- requirement: &70241045280660 !ruby/object:Gem::Requirement
75
+ version_requirements: &id004 !ruby/object:Gem::Requirement
53
76
  none: false
54
- requirements:
77
+ requirements:
55
78
  - - ~>
56
- - !ruby/object:Gem::Version
79
+ - !ruby/object:Gem::Version
80
+ hash: 11
81
+ segments:
82
+ - 2
83
+ - 1
84
+ - 0
57
85
  version: 2.1.0
58
- type: :development
86
+ requirement: *id004
59
87
  prerelease: false
60
- version_requirements: *70241045280660
61
- - !ruby/object:Gem::Dependency
88
+ - !ruby/object:Gem::Dependency
89
+ type: :development
62
90
  name: fakeweb
63
- requirement: &70241045280200 !ruby/object:Gem::Requirement
91
+ version_requirements: &id005 !ruby/object:Gem::Requirement
64
92
  none: false
65
- requirements:
93
+ requirements:
66
94
  - - ~>
67
- - !ruby/object:Gem::Version
95
+ - !ruby/object:Gem::Version
96
+ hash: 27
97
+ segments:
98
+ - 1
99
+ - 3
100
+ - 0
68
101
  version: 1.3.0
69
- type: :development
102
+ requirement: *id005
70
103
  prerelease: false
71
- version_requirements: *70241045280200
72
- - !ruby/object:Gem::Dependency
104
+ - !ruby/object:Gem::Dependency
105
+ type: :development
73
106
  name: faker
74
- requirement: &70241045279740 !ruby/object:Gem::Requirement
107
+ version_requirements: &id006 !ruby/object:Gem::Requirement
75
108
  none: false
76
- requirements:
109
+ requirements:
77
110
  - - ~>
78
- - !ruby/object:Gem::Version
79
- version: 1.0.1
80
- type: :development
111
+ - !ruby/object:Gem::Version
112
+ hash: 23
113
+ segments:
114
+ - 1
115
+ - 1
116
+ - 2
117
+ version: 1.1.2
118
+ requirement: *id006
81
119
  prerelease: false
82
- version_requirements: *70241045279740
83
- - !ruby/object:Gem::Dependency
120
+ - !ruby/object:Gem::Dependency
121
+ type: :development
84
122
  name: guard-rspec
85
- requirement: &70241045279280 !ruby/object:Gem::Requirement
123
+ version_requirements: &id007 !ruby/object:Gem::Requirement
86
124
  none: false
87
- requirements:
125
+ requirements:
88
126
  - - ~>
89
- - !ruby/object:Gem::Version
127
+ - !ruby/object:Gem::Version
128
+ hash: 11
129
+ segments:
130
+ - 0
131
+ - 5
132
+ - 0
90
133
  version: 0.5.0
91
- type: :development
134
+ requirement: *id007
92
135
  prerelease: false
93
- version_requirements: *70241045279280
94
- - !ruby/object:Gem::Dependency
136
+ - !ruby/object:Gem::Dependency
137
+ type: :development
95
138
  name: growl
96
- requirement: &70241045278820 !ruby/object:Gem::Requirement
139
+ version_requirements: &id008 !ruby/object:Gem::Requirement
97
140
  none: false
98
- requirements:
141
+ requirements:
99
142
  - - ~>
100
- - !ruby/object:Gem::Version
143
+ - !ruby/object:Gem::Version
144
+ hash: 17
145
+ segments:
146
+ - 1
147
+ - 0
148
+ - 3
101
149
  version: 1.0.3
102
- type: :development
150
+ requirement: *id008
103
151
  prerelease: false
104
- version_requirements: *70241045278820
105
- - !ruby/object:Gem::Dependency
152
+ - !ruby/object:Gem::Dependency
153
+ type: :development
106
154
  name: rb-fsevent
107
- requirement: &70241045278360 !ruby/object:Gem::Requirement
155
+ version_requirements: &id009 !ruby/object:Gem::Requirement
108
156
  none: false
109
- requirements:
157
+ requirements:
110
158
  - - ~>
111
- - !ruby/object:Gem::Version
112
- version: 0.4.2
113
- type: :development
159
+ - !ruby/object:Gem::Version
160
+ hash: 63
161
+ segments:
162
+ - 0
163
+ - 9
164
+ - 2
165
+ version: 0.9.2
166
+ requirement: *id009
114
167
  prerelease: false
115
- version_requirements: *70241045278360
116
- description: ''
168
+ description: ""
117
169
  email: support@chargify.com
118
170
  executables: []
171
+
119
172
  extensions: []
173
+
120
174
  extra_rdoc_files: []
121
- files:
175
+
176
+ files:
122
177
  - .gitignore
123
178
  - .travis.yml
124
179
  - Gemfile
@@ -140,6 +195,7 @@ files:
140
195
  - lib/chargify_api_ares/resources/component.rb
141
196
  - lib/chargify_api_ares/resources/coupon.rb
142
197
  - lib/chargify_api_ares/resources/customer.rb
198
+ - lib/chargify_api_ares/resources/event.rb
143
199
  - lib/chargify_api_ares/resources/payment_profile.rb
144
200
  - lib/chargify_api_ares/resources/product.rb
145
201
  - lib/chargify_api_ares/resources/product_family.rb
@@ -148,6 +204,7 @@ files:
148
204
  - lib/chargify_api_ares/resources/subscription.rb
149
205
  - lib/chargify_api_ares/resources/transaction.rb
150
206
  - lib/chargify_api_ares/resources/usage.rb
207
+ - lib/chargify_api_ares/resources/webhook.rb
151
208
  - spec/factories.rb
152
209
  - spec/remote/remote.example.yml
153
210
  - spec/remote/remote_spec.rb
@@ -155,6 +212,7 @@ files:
155
212
  - spec/resources/base_spec.rb
156
213
  - spec/resources/coupon_spec.rb
157
214
  - spec/resources/customer_spec.rb
215
+ - spec/resources/product_family_component_spec.rb
158
216
  - spec/resources/product_family_spec.rb
159
217
  - spec/resources/product_spec.rb
160
218
  - spec/resources/subscription_component_spec.rb
@@ -165,29 +223,38 @@ files:
165
223
  - spec/support/fake_resource.rb
166
224
  homepage: http://github.com/chargify/chargify_api_ares
167
225
  licenses: []
226
+
168
227
  post_install_message:
169
228
  rdoc_options: []
170
- require_paths:
229
+
230
+ require_paths:
171
231
  - lib
172
- required_ruby_version: !ruby/object:Gem::Requirement
232
+ required_ruby_version: !ruby/object:Gem::Requirement
173
233
  none: false
174
- requirements:
175
- - - ! '>='
176
- - !ruby/object:Gem::Version
177
- version: '0'
178
- required_rubygems_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ hash: 3
238
+ segments:
239
+ - 0
240
+ version: "0"
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
242
  none: false
180
- requirements:
181
- - - ! '>='
182
- - !ruby/object:Gem::Version
183
- version: '0'
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ hash: 3
247
+ segments:
248
+ - 0
249
+ version: "0"
184
250
  requirements: []
251
+
185
252
  rubyforge_project:
186
- rubygems_version: 1.8.10
253
+ rubygems_version: 1.8.25
187
254
  signing_key:
188
255
  specification_version: 3
189
256
  summary: A Chargify API wrapper for Ruby using ActiveResource
190
- test_files:
257
+ test_files:
191
258
  - spec/factories.rb
192
259
  - spec/remote/remote.example.yml
193
260
  - spec/remote/remote_spec.rb
@@ -195,6 +262,7 @@ test_files:
195
262
  - spec/resources/base_spec.rb
196
263
  - spec/resources/coupon_spec.rb
197
264
  - spec/resources/customer_spec.rb
265
+ - spec/resources/product_family_component_spec.rb
198
266
  - spec/resources/product_family_spec.rb
199
267
  - spec/resources/product_spec.rb
200
268
  - spec/resources/subscription_component_spec.rb