carter 0.5.6 → 0.6.0
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/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: []
|