chargify_api_ares 0.5.2 → 0.5.4

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.
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