redline 0.1.2 → 0.1.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/.gitignore +1 -0
- data/VERSION +1 -1
- data/lib/redline/customer.rb +36 -0
- data/lib/redline.rb +4 -34
- data/redline.gemspec +3 -3
- metadata +3 -3
- data/spec/db/test.sqlite3 +0 -0
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module RedLine
|
2
|
+
module Customer
|
3
|
+
def self.included(base)
|
4
|
+
base.class_eval do
|
5
|
+
send :extend, ActiveSupport::Memoizable
|
6
|
+
send :include, InstanceMethods
|
7
|
+
memoize :customer
|
8
|
+
before_create :create_customer
|
9
|
+
before_update :update_customer
|
10
|
+
before_destroy :delete_customer
|
11
|
+
cattr_accessor :braintree_customer
|
12
|
+
end
|
13
|
+
end
|
14
|
+
module InstanceMethods
|
15
|
+
def braintree_customer_attributes
|
16
|
+
wanted_attributes = Braintree::Customer._create_signature.reject{|a| a.is_a? Hash}.reject{|a| a == :id}
|
17
|
+
attributes.symbolize_keys.inject({}) do |rewritten_hash, (original_key, value)|
|
18
|
+
rewritten_hash[self.class.braintree_customer.fetch(original_key, original_key)] = value
|
19
|
+
rewritten_hash
|
20
|
+
end.reject{|key, value| !wanted_attributes.include?(key)}
|
21
|
+
end
|
22
|
+
def customer
|
23
|
+
Braintree::Customer.find(customer_id) if customer_id
|
24
|
+
end
|
25
|
+
def create_customer
|
26
|
+
self.customer_id = Braintree::Customer.create!(braintree_customer_attributes).id
|
27
|
+
end
|
28
|
+
def update_customer
|
29
|
+
Braintree::Customer.update!(customer_id, braintree_customer_attributes) && flush_cache(:customer) if customer_id
|
30
|
+
end
|
31
|
+
def delete_customer
|
32
|
+
Braintree::Customer.delete(customer_id) if customer_id
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/redline.rb
CHANGED
@@ -2,44 +2,14 @@ require 'rubygems'
|
|
2
2
|
require 'active_record'
|
3
3
|
|
4
4
|
module RedLine
|
5
|
+
|
6
|
+
autoload :Customer, 'redline/customer'
|
7
|
+
|
5
8
|
def acts_as_braintree_customer(attribute_rewriting = {})
|
6
9
|
send :include, RedLine::Customer
|
7
10
|
send 'braintree_customer=', attribute_rewriting
|
8
11
|
end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.class_eval do
|
12
|
-
send :extend, ActiveSupport::Memoizable
|
13
|
-
send :include, InstanceMethods
|
14
|
-
memoize :customer
|
15
|
-
before_create :create_customer
|
16
|
-
before_update :update_customer
|
17
|
-
before_destroy :delete_customer
|
18
|
-
cattr_accessor :braintree_customer
|
19
|
-
end
|
20
|
-
end
|
21
|
-
module InstanceMethods
|
22
|
-
def braintree_customer_attributes
|
23
|
-
wanted_attributes = Braintree::Customer._create_signature.reject{|a| a.is_a? Hash}.reject{|a| a == :id}
|
24
|
-
attributes.symbolize_keys.inject({}) do |rewritten_hash, (original_key, value)|
|
25
|
-
rewritten_hash[self.class.braintree_customer.fetch(original_key, original_key)] = value
|
26
|
-
rewritten_hash
|
27
|
-
end.reject{|key, value| !wanted_attributes.include?(key)}
|
28
|
-
end
|
29
|
-
def customer
|
30
|
-
Braintree::Customer.find(customer_id)
|
31
|
-
end
|
32
|
-
def create_customer
|
33
|
-
self.customer_id = Braintree::Customer.create!(braintree_customer_attributes).id
|
34
|
-
end
|
35
|
-
def update_customer
|
36
|
-
Braintree::Customer.update!(customer_id, braintree_customer_attributes) && flush_cache(:customer)
|
37
|
-
end
|
38
|
-
def delete_customer
|
39
|
-
Braintree::Customer.delete(customer_id)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
12
|
+
|
43
13
|
end
|
44
14
|
|
45
15
|
ActiveRecord::Base.extend RedLine
|
data/redline.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{redline}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["James Daniels"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-02-03}
|
13
13
|
s.description = %q{Manual subscriptions via the Braintree gem}
|
14
14
|
s.email = %q{james@marginleft.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -24,11 +24,11 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"lib/redline.rb",
|
27
|
+
"lib/redline/customer.rb",
|
27
28
|
"redline.gemspec",
|
28
29
|
"spec/db/database.yml",
|
29
30
|
"spec/db/models.rb",
|
30
31
|
"spec/db/schema.rb",
|
31
|
-
"spec/db/test.sqlite3",
|
32
32
|
"spec/redline_spec.rb",
|
33
33
|
"spec/spec.opts",
|
34
34
|
"spec/spec_helper.rb"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Daniels
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-03 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -69,11 +69,11 @@ files:
|
|
69
69
|
- Rakefile
|
70
70
|
- VERSION
|
71
71
|
- lib/redline.rb
|
72
|
+
- lib/redline/customer.rb
|
72
73
|
- redline.gemspec
|
73
74
|
- spec/db/database.yml
|
74
75
|
- spec/db/models.rb
|
75
76
|
- spec/db/schema.rb
|
76
|
-
- spec/db/test.sqlite3
|
77
77
|
- spec/redline_spec.rb
|
78
78
|
- spec/spec.opts
|
79
79
|
- spec/spec_helper.rb
|
data/spec/db/test.sqlite3
DELETED
Binary file
|