jsmestad-chargify 0.3.2.2 → 0.3.3

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 CHANGED
@@ -4,19 +4,17 @@ group :runtime do
4
4
  gem 'httparty', '~> 0.6.1'
5
5
  gem 'hashie', '~> 0.1.8'
6
6
  gem 'json'
7
- gem 'activesupport', '~> 3.0.0', :require => 'active_support/all'
7
+ gem 'activesupport', '~> 3.0.0'
8
8
  gem 'i18n'
9
9
  end
10
10
 
11
11
  group :test do
12
12
  gem 'jeweler'
13
13
  gem 'rake'
14
- gem 'fakeweb', '>= 1.2.5'
14
+ gem 'fakeweb', '>= 1.3.0'
15
15
  gem 'mocha', '~> 0.9.8'
16
16
  gem 'rspec', '~> 2.0.0.beta.22'
17
-
18
17
  gem 'autotest'
19
18
  end
20
19
 
21
-
22
20
  # vim: ft=ruby
@@ -2,7 +2,7 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  activesupport (3.0.0)
5
- autotest (4.3.2)
5
+ autotest (4.4.0)
6
6
  crack (0.1.8)
7
7
  diff-lcs (1.1.2)
8
8
  fakeweb (1.3.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2.2
1
+ 0.3.3
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.3 October 01, 2010
4
+ * ProductFamily support (.find, .all, .find_by_handle, .components)
5
+
6
+ ## 0.3.2 September 2010
7
+ * Support for Customer.find_or_create method
8
+
3
9
  ## 0.3.0.pre July 08, 2010
4
10
  * Complete API Rewrite, please view wiki for API documentation
5
11
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{jsmestad-chargify}
8
- s.version = "0.3.2.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wynn Netherland", "Justin Smestad"]
12
- s.date = %q{2010-09-21}
12
+ s.date = %q{2010-10-02}
13
13
  s.email = %q{justin.smestad@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
33
33
  "lib/chargify/error.rb",
34
34
  "lib/chargify/parser.rb",
35
35
  "lib/chargify/product.rb",
36
+ "lib/chargify/product_family.rb",
36
37
  "lib/chargify/subscription.rb",
37
38
  "lib/chargify/transaction.rb",
38
39
  "spec/fixtures/charge_subscription.json",
@@ -6,18 +6,13 @@ require 'active_support/core_ext/hash'
6
6
  Hash.send :include, Hashie::HashExtensions
7
7
 
8
8
  module Chargify
9
-
10
- autoload :Base, 'chargify/base'
11
- autoload :Config, 'chargify/config'
12
- autoload :Customer, 'chargify/customer'
13
- autoload :Error, 'chargify/error'
14
- autoload :Parser, 'chargify/parser'
15
- autoload :Product, 'chargify/product'
16
- autoload :Subscription, 'chargify/subscription'
17
- autoload :Transaction, 'chargify/transaction'
18
-
19
- # TODO: migrate away from generic errors
20
- # Replace with Chargify::Errors
21
-
22
-
9
+ autoload :Base, 'chargify/base'
10
+ autoload :Config, 'chargify/config'
11
+ autoload :Customer, 'chargify/customer'
12
+ autoload :Error, 'chargify/error'
13
+ autoload :Parser, 'chargify/parser'
14
+ autoload :Product, 'chargify/product'
15
+ autoload :ProductFamily, 'chargify/product_family'
16
+ autoload :Subscription, 'chargify/subscription'
17
+ autoload :Transaction, 'chargify/transaction'
23
18
  end
@@ -0,0 +1,47 @@
1
+ module Chargify
2
+ class ProductFamily < Base
3
+ class << self
4
+
5
+ def all
6
+ result = api_request(:get, "/product_families.json")
7
+ result.map {|p| Hashie::Mash.new p['product_family']}
8
+ end
9
+
10
+ def find!(id)
11
+ return all if id == :all
12
+
13
+ result = api_request(:get, "/product_families/#{id}.json")
14
+ Hashie::Mash.new(result).product_family
15
+ end
16
+
17
+ def find(id)
18
+ find!(id)
19
+ rescue Chargify::Error::Base => e
20
+ return nil
21
+ end
22
+
23
+ def find_by_handle!(handle)
24
+ result = api_request(:get, "/product_families/lookup.json?handle=#{handle}")
25
+ Hashie::Mash.new(result).product_family
26
+ end
27
+
28
+ def find_by_handle(handle)
29
+ find_by_handle!(handle)
30
+ rescue Chargify::Error::Base => e
31
+ return nil
32
+ end
33
+
34
+ def components!(product_family_id)
35
+ result = api_request(:get, "/product_families/#{product_family_id}/components.json")
36
+ result.map {|p| Hashie::Mash.new p['component']}
37
+ end
38
+
39
+ def components(product_family_id)
40
+ components!(product_family_id)
41
+ rescue Chargify::Error::Base => e
42
+ return nil
43
+ end
44
+
45
+ end
46
+ end
47
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsmestad-chargify
3
3
  version: !ruby/object:Gem::Version
4
- hash: 91
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- - 2
11
- version: 0.3.2.2
9
+ - 3
10
+ version: 0.3.3
12
11
  platform: ruby
13
12
  authors:
14
13
  - Wynn Netherland
@@ -17,7 +16,7 @@ autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
18
 
20
- date: 2010-09-21 00:00:00 -06:00
19
+ date: 2010-10-02 00:00:00 -06:00
21
20
  default_executable:
22
21
  dependencies:
23
22
  - !ruby/object:Gem::Dependency
@@ -109,6 +108,7 @@ files:
109
108
  - lib/chargify/error.rb
110
109
  - lib/chargify/parser.rb
111
110
  - lib/chargify/product.rb
111
+ - lib/chargify/product_family.rb
112
112
  - lib/chargify/subscription.rb
113
113
  - lib/chargify/transaction.rb
114
114
  - spec/fixtures/charge_subscription.json