carter 0.5.6 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/models/cart_item.rb +6 -6
- data/lib/carter.rb +1 -0
- data/lib/carter/state_machine.rb +0 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/support/active_record_helper.rb +1 -1
- data/spec/support/factories.rb +34 -16
- metadata +7 -39
data/app/models/cart_item.rb
CHANGED
@@ -10,16 +10,16 @@ class CartItem < ActiveRecord::Base
|
|
10
10
|
after_update :check_quantity
|
11
11
|
|
12
12
|
# Match a cart_item by owner and cartable
|
13
|
-
|
14
|
-
{ :
|
13
|
+
scope :for_cartable, lambda { |cartable|
|
14
|
+
where({ :cartable_type => cartable.class.to_s, :cartable_id => cartable.id })
|
15
15
|
}
|
16
16
|
|
17
|
-
|
18
|
-
{ :
|
17
|
+
scope :for_owner, lambda {|owner|
|
18
|
+
where({ :owner_id => (owner ? owner.id : nil), :owner_type => (owner ? owner.class.to_s : nil) })
|
19
19
|
}
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
scope :for_cartable_and_owner, lambda {|cartable, owner|
|
22
|
+
for_owner(owner).for_cartable(cartable)
|
23
23
|
}
|
24
24
|
|
25
25
|
money_composed_column :total_price,
|
data/lib/carter.rb
CHANGED
data/lib/carter/state_machine.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -16,7 +16,7 @@ end
|
|
16
16
|
def load_schema
|
17
17
|
|
18
18
|
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
19
|
-
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
|
19
|
+
# ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
|
20
20
|
|
21
21
|
db_adapter = ENV['DB']
|
22
22
|
|
data/spec/support/factories.rb
CHANGED
@@ -1,25 +1,43 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
|
2
|
+
FactoryGirl.define do
|
3
|
+
sequence :name do |n|
|
4
|
+
"name_#{n}"
|
5
|
+
end
|
6
|
+
|
7
|
+
factory :product do
|
8
|
+
Factory.next(:name) {|n| "name#{n}" }
|
9
|
+
price 2.00
|
10
|
+
end
|
8
11
|
end
|
9
12
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
FactoryGirl.define do
|
14
|
+
factory :thing do
|
15
|
+
Factory.next(:name) {|n| "name#{n}" }
|
16
|
+
price 4.00
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
|
-
|
16
|
-
|
20
|
+
FactoryGirl.define do
|
21
|
+
factory :user do
|
22
|
+
Factory.next(:name) {|n| "name#{n}" }
|
23
|
+
end
|
17
24
|
end
|
18
25
|
|
19
|
-
|
20
|
-
|
26
|
+
FactoryGirl.define do
|
27
|
+
|
28
|
+
factory :cart do
|
29
|
+
shopper {|a| a.association(:user) }
|
30
|
+
state "active"
|
31
|
+
after_create {|cart_item| cart_item.send(:initialize_state_machines, :dynamic => :force)}
|
32
|
+
end
|
21
33
|
end
|
22
34
|
|
23
|
-
|
24
|
-
|
35
|
+
FactoryGirl.define do
|
36
|
+
|
37
|
+
factory :cart_item do
|
38
|
+
state "in_cart"
|
39
|
+
cart {|a| a.association(:cart) }
|
40
|
+
after_create {|cart_item| cart_item.send(:initialize_state_machines, :dynamic => :force)}
|
41
|
+
end
|
25
42
|
end
|
43
|
+
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 5
|
9
8
|
- 6
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 0.6.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Louis Gillies
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-10-21 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -119,12 +119,12 @@ dependencies:
|
|
119
119
|
requirements:
|
120
120
|
- - "="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
hash:
|
122
|
+
hash: 19
|
123
123
|
segments:
|
124
|
+
- 1
|
124
125
|
- 0
|
125
|
-
-
|
126
|
-
|
127
|
-
version: 0.9.4
|
126
|
+
- 2
|
127
|
+
version: 1.0.2
|
128
128
|
requirement: *id007
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
prerelease: false
|
@@ -142,38 +142,6 @@ dependencies:
|
|
142
142
|
- 5
|
143
143
|
version: 3.1.5
|
144
144
|
requirement: *id008
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
prerelease: false
|
147
|
-
type: :runtime
|
148
|
-
name: state_machine
|
149
|
-
version_requirements: &id009 !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
|
-
requirements:
|
152
|
-
- - "="
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
hash: 51
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
- 9
|
158
|
-
- 4
|
159
|
-
version: 0.9.4
|
160
|
-
requirement: *id009
|
161
|
-
- !ruby/object:Gem::Dependency
|
162
|
-
prerelease: false
|
163
|
-
type: :development
|
164
|
-
name: money
|
165
|
-
version_requirements: &id010 !ruby/object:Gem::Requirement
|
166
|
-
none: false
|
167
|
-
requirements:
|
168
|
-
- - ">"
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
hash: 9
|
171
|
-
segments:
|
172
|
-
- 3
|
173
|
-
- 1
|
174
|
-
- 5
|
175
|
-
version: 3.1.5
|
176
|
-
requirement: *id010
|
177
145
|
description: A really simple shopping cart implementation for rails.
|
178
146
|
email: louisgillies@ygmail.com
|
179
147
|
executables: []
|