spree_core 0.60.1 → 0.60.2
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/creditcard.rb +17 -3
- data/app/models/order.rb +1 -1
- data/app/models/product.rb +5 -0
- data/app/models/product_group.rb +8 -4
- data/app/models/product_scope.rb +1 -1
- data/lib/spree_core/version.rb +1 -1
- metadata +68 -70
data/app/models/creditcard.rb
CHANGED
|
@@ -2,6 +2,7 @@ class Creditcard < ActiveRecord::Base
|
|
|
2
2
|
has_many :payments, :as => :source
|
|
3
3
|
|
|
4
4
|
before_save :set_last_digits
|
|
5
|
+
after_validation :set_card_type
|
|
5
6
|
|
|
6
7
|
attr_accessor :number, :verification_value
|
|
7
8
|
|
|
@@ -22,7 +23,20 @@ class Creditcard < ActiveRecord::Base
|
|
|
22
23
|
verification_value.to_s.gsub!(/\s/,'') unless number.nil?
|
|
23
24
|
self.last_digits ||= number.to_s.length <= 4 ? number : number.to_s.slice(-4..-1)
|
|
24
25
|
end
|
|
25
|
-
|
|
26
|
+
|
|
27
|
+
# cheap hack to get to the type? method from deep within ActiveMerchant without stomping on
|
|
28
|
+
# potentially existing methods in CreditCard
|
|
29
|
+
class CardDetector
|
|
30
|
+
class << self
|
|
31
|
+
include ActiveMerchant::Billing::CreditCardMethods::ClassMethods
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# sets self.cc_type while we still have the card number
|
|
36
|
+
def set_card_type
|
|
37
|
+
self.cc_type ||= CardDetector.type?(self.number)
|
|
38
|
+
end
|
|
39
|
+
|
|
26
40
|
def name?
|
|
27
41
|
first_name? && last_name?
|
|
28
42
|
end
|
|
@@ -239,8 +253,8 @@ class Creditcard < ActiveRecord::Base
|
|
|
239
253
|
end
|
|
240
254
|
|
|
241
255
|
def spree_cc_type
|
|
242
|
-
return "visa" if
|
|
243
|
-
self.
|
|
256
|
+
return "visa" if ::Rails.env == "development"
|
|
257
|
+
self.cc_type
|
|
244
258
|
end
|
|
245
259
|
|
|
246
260
|
# Saftey check to make sure we're not accidentally performing operations on a live gateway.
|
data/app/models/order.rb
CHANGED
|
@@ -264,7 +264,7 @@ class Order < ActiveRecord::Base
|
|
|
264
264
|
|
|
265
265
|
# Creates a new shipment (adjustment is created by shipment model)
|
|
266
266
|
def create_shipment!
|
|
267
|
-
shipping_method
|
|
267
|
+
shipping_method(true)
|
|
268
268
|
if shipment.present?
|
|
269
269
|
shipment.update_attributes(:shipping_method => shipping_method)
|
|
270
270
|
else
|
data/app/models/product.rb
CHANGED
|
@@ -38,6 +38,7 @@ class Product < ActiveRecord::Base
|
|
|
38
38
|
after_create :set_master_variant_defaults
|
|
39
39
|
after_create :add_properties_and_option_types_from_prototype
|
|
40
40
|
before_save :recalculate_count_on_hand
|
|
41
|
+
before_update :sanitize_permalink
|
|
41
42
|
after_save :update_memberships if ProductGroup.table_exists?
|
|
42
43
|
after_save :set_master_on_hand_to_zero_when_product_has_variants
|
|
43
44
|
after_save :save_master
|
|
@@ -222,6 +223,10 @@ class Product < ActiveRecord::Base
|
|
|
222
223
|
end
|
|
223
224
|
|
|
224
225
|
private
|
|
226
|
+
|
|
227
|
+
def sanitize_permalink
|
|
228
|
+
self.permalink = self.permalink.to_url
|
|
229
|
+
end
|
|
225
230
|
|
|
226
231
|
def recalculate_count_on_hand
|
|
227
232
|
product_count_on_hand = has_variants? ?
|
data/app/models/product_group.rb
CHANGED
|
@@ -90,10 +90,14 @@ class ProductGroup < ActiveRecord::Base
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
def add_scope(scope_name, arguments=[])
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
if scope_name.to_s !~ /eval|send|system|[^a-z0-9_!?]/
|
|
94
|
+
self.product_scopes << ProductScope.new({
|
|
95
|
+
:name => scope_name.to_s,
|
|
96
|
+
:arguments => [*arguments]
|
|
97
|
+
})
|
|
98
|
+
else
|
|
99
|
+
raise ArgumentError.new("'#{scope_name}` can't be used as scope")
|
|
100
|
+
end
|
|
97
101
|
self
|
|
98
102
|
end
|
|
99
103
|
|
data/app/models/product_scope.rb
CHANGED
|
@@ -31,7 +31,7 @@ class ProductScope < ActiveRecord::Base
|
|
|
31
31
|
Product.send(self.name.intern, *array)
|
|
32
32
|
end
|
|
33
33
|
else
|
|
34
|
-
relation2 = Product.
|
|
34
|
+
relation2 = Product.metasearch({self.name.intern => array}).relation
|
|
35
35
|
end
|
|
36
36
|
unless another_scope.class == ActiveRecord::Relation
|
|
37
37
|
another_scope = another_scope.send(:relation)
|
data/lib/spree_core/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 235
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 60
|
|
9
|
-
-
|
|
10
|
-
version: 0.60.
|
|
9
|
+
- 2
|
|
10
|
+
version: 0.60.2
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Sean Schofield
|
|
@@ -15,12 +15,10 @@ autorequire:
|
|
|
15
15
|
bindir: bin
|
|
16
16
|
cert_chain: []
|
|
17
17
|
|
|
18
|
-
date: 2011-
|
|
19
|
-
default_executable:
|
|
18
|
+
date: 2011-10-05 00:00:00 Z
|
|
20
19
|
dependencies:
|
|
21
20
|
- !ruby/object:Gem::Dependency
|
|
22
|
-
|
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
|
24
22
|
none: false
|
|
25
23
|
requirements:
|
|
26
24
|
- - "="
|
|
@@ -31,28 +29,28 @@ dependencies:
|
|
|
31
29
|
- 1
|
|
32
30
|
- 2
|
|
33
31
|
version: 0.1.2
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
requirement: *id001
|
|
33
|
+
type: :runtime
|
|
36
34
|
prerelease: false
|
|
35
|
+
name: acts_as_list
|
|
37
36
|
- !ruby/object:Gem::Dependency
|
|
38
|
-
|
|
39
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
|
40
38
|
none: false
|
|
41
39
|
requirements:
|
|
42
40
|
- - "="
|
|
43
41
|
- !ruby/object:Gem::Version
|
|
44
|
-
hash:
|
|
42
|
+
hash: 1
|
|
45
43
|
segments:
|
|
46
44
|
- 1
|
|
47
45
|
- 6
|
|
48
|
-
-
|
|
49
|
-
version: 1.6.
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
- 7
|
|
47
|
+
version: 1.6.7
|
|
48
|
+
requirement: *id002
|
|
49
|
+
type: :runtime
|
|
52
50
|
prerelease: false
|
|
51
|
+
name: nested_set
|
|
53
52
|
- !ruby/object:Gem::Dependency
|
|
54
|
-
|
|
55
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
|
56
54
|
none: false
|
|
57
55
|
requirements:
|
|
58
56
|
- - "="
|
|
@@ -63,12 +61,12 @@ dependencies:
|
|
|
63
61
|
- 1
|
|
64
62
|
- 0
|
|
65
63
|
version: 0.1.0
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
requirement: *id003
|
|
65
|
+
type: :runtime
|
|
68
66
|
prerelease: false
|
|
67
|
+
name: rd_unobtrusive_date_picker
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
|
|
71
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
|
69
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
|
72
70
|
none: false
|
|
73
71
|
requirements:
|
|
74
72
|
- - "="
|
|
@@ -79,12 +77,12 @@ dependencies:
|
|
|
79
77
|
- 1
|
|
80
78
|
- 1
|
|
81
79
|
version: 0.1.1
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
requirement: *id004
|
|
81
|
+
type: :runtime
|
|
84
82
|
prerelease: false
|
|
83
|
+
name: rd_find_by_param
|
|
85
84
|
- !ruby/object:Gem::Dependency
|
|
86
|
-
|
|
87
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
|
85
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
|
88
86
|
none: false
|
|
89
87
|
requirements:
|
|
90
88
|
- - "="
|
|
@@ -95,12 +93,12 @@ dependencies:
|
|
|
95
93
|
- 5
|
|
96
94
|
- 1
|
|
97
95
|
version: 1.5.1
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
requirement: *id005
|
|
97
|
+
type: :runtime
|
|
100
98
|
prerelease: false
|
|
99
|
+
name: highline
|
|
101
100
|
- !ruby/object:Gem::Dependency
|
|
102
|
-
|
|
103
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
|
101
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
|
104
102
|
none: false
|
|
105
103
|
requirements:
|
|
106
104
|
- - "="
|
|
@@ -111,12 +109,12 @@ dependencies:
|
|
|
111
109
|
- 0
|
|
112
110
|
- 3
|
|
113
111
|
version: 1.0.3
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
requirement: *id006
|
|
113
|
+
type: :runtime
|
|
116
114
|
prerelease: false
|
|
115
|
+
name: stringex
|
|
117
116
|
- !ruby/object:Gem::Dependency
|
|
118
|
-
|
|
119
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
|
117
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
|
120
118
|
none: false
|
|
121
119
|
requirements:
|
|
122
120
|
- - "="
|
|
@@ -127,12 +125,12 @@ dependencies:
|
|
|
127
125
|
- 9
|
|
128
126
|
- 4
|
|
129
127
|
version: 0.9.4
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
requirement: *id007
|
|
129
|
+
type: :runtime
|
|
132
130
|
prerelease: false
|
|
131
|
+
name: state_machine
|
|
133
132
|
- !ruby/object:Gem::Dependency
|
|
134
|
-
|
|
135
|
-
requirement: &id008 !ruby/object:Gem::Requirement
|
|
133
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
|
136
134
|
none: false
|
|
137
135
|
requirements:
|
|
138
136
|
- - "="
|
|
@@ -143,12 +141,12 @@ dependencies:
|
|
|
143
141
|
- 9
|
|
144
142
|
- 5
|
|
145
143
|
version: 0.9.5
|
|
146
|
-
|
|
147
|
-
|
|
144
|
+
requirement: *id008
|
|
145
|
+
type: :runtime
|
|
148
146
|
prerelease: false
|
|
147
|
+
name: faker
|
|
149
148
|
- !ruby/object:Gem::Dependency
|
|
150
|
-
|
|
151
|
-
requirement: &id009 !ruby/object:Gem::Requirement
|
|
149
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
|
152
150
|
none: false
|
|
153
151
|
requirements:
|
|
154
152
|
- - "="
|
|
@@ -159,12 +157,12 @@ dependencies:
|
|
|
159
157
|
- 3
|
|
160
158
|
- 11
|
|
161
159
|
version: 2.3.11
|
|
162
|
-
|
|
163
|
-
|
|
160
|
+
requirement: *id009
|
|
161
|
+
type: :runtime
|
|
164
162
|
prerelease: false
|
|
163
|
+
name: paperclip
|
|
165
164
|
- !ruby/object:Gem::Dependency
|
|
166
|
-
|
|
167
|
-
requirement: &id010 !ruby/object:Gem::Requirement
|
|
165
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
|
168
166
|
none: false
|
|
169
167
|
requirements:
|
|
170
168
|
- - ">="
|
|
@@ -173,12 +171,12 @@ dependencies:
|
|
|
173
171
|
segments:
|
|
174
172
|
- 0
|
|
175
173
|
version: "0"
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
requirement: *id010
|
|
175
|
+
type: :runtime
|
|
178
176
|
prerelease: false
|
|
177
|
+
name: rd_resource_controller
|
|
179
178
|
- !ruby/object:Gem::Dependency
|
|
180
|
-
|
|
181
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
|
179
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
|
182
180
|
none: false
|
|
183
181
|
requirements:
|
|
184
182
|
- - "="
|
|
@@ -189,12 +187,12 @@ dependencies:
|
|
|
189
187
|
- 0
|
|
190
188
|
- 5
|
|
191
189
|
version: 1.0.5
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
requirement: *id011
|
|
191
|
+
type: :runtime
|
|
194
192
|
prerelease: false
|
|
193
|
+
name: meta_search
|
|
195
194
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
|
|
197
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
|
195
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
|
198
196
|
none: false
|
|
199
197
|
requirements:
|
|
200
198
|
- - "="
|
|
@@ -205,12 +203,12 @@ dependencies:
|
|
|
205
203
|
- 15
|
|
206
204
|
- 0
|
|
207
205
|
version: 1.15.0
|
|
208
|
-
|
|
209
|
-
|
|
206
|
+
requirement: *id012
|
|
207
|
+
type: :runtime
|
|
210
208
|
prerelease: false
|
|
209
|
+
name: activemerchant
|
|
211
210
|
- !ruby/object:Gem::Dependency
|
|
212
|
-
|
|
213
|
-
requirement: &id013 !ruby/object:Gem::Requirement
|
|
211
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
|
214
212
|
none: false
|
|
215
213
|
requirements:
|
|
216
214
|
- - "="
|
|
@@ -222,12 +220,12 @@ dependencies:
|
|
|
222
220
|
- pre
|
|
223
221
|
- 2
|
|
224
222
|
version: 3.0.pre2
|
|
225
|
-
|
|
226
|
-
|
|
223
|
+
requirement: *id013
|
|
224
|
+
type: :runtime
|
|
227
225
|
prerelease: false
|
|
226
|
+
name: will_paginate
|
|
228
227
|
- !ruby/object:Gem::Dependency
|
|
229
|
-
|
|
230
|
-
requirement: &id014 !ruby/object:Gem::Requirement
|
|
228
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
|
231
229
|
none: false
|
|
232
230
|
requirements:
|
|
233
231
|
- - "="
|
|
@@ -238,12 +236,12 @@ dependencies:
|
|
|
238
236
|
- 0
|
|
239
237
|
- 9
|
|
240
238
|
version: 3.0.9
|
|
241
|
-
|
|
242
|
-
|
|
239
|
+
requirement: *id014
|
|
240
|
+
type: :runtime
|
|
243
241
|
prerelease: false
|
|
242
|
+
name: rails
|
|
244
243
|
- !ruby/object:Gem::Dependency
|
|
245
|
-
|
|
246
|
-
requirement: &id015 !ruby/object:Gem::Requirement
|
|
244
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
|
247
245
|
none: false
|
|
248
246
|
requirements:
|
|
249
247
|
- - "="
|
|
@@ -254,9 +252,10 @@ dependencies:
|
|
|
254
252
|
- 2
|
|
255
253
|
- 6
|
|
256
254
|
version: 0.2.6
|
|
257
|
-
|
|
258
|
-
|
|
255
|
+
requirement: *id015
|
|
256
|
+
type: :runtime
|
|
259
257
|
prerelease: false
|
|
258
|
+
name: jquery-rails
|
|
260
259
|
description: Required dependancy for Spree
|
|
261
260
|
email: sean@railsdog.com
|
|
262
261
|
executables: []
|
|
@@ -1111,7 +1110,6 @@ files:
|
|
|
1111
1110
|
- public/stylesheets/datepicker.css
|
|
1112
1111
|
- public/stylesheets/jquery.autocomplete.css
|
|
1113
1112
|
- public/stylesheets/screen.css
|
|
1114
|
-
has_rdoc: true
|
|
1115
1113
|
homepage: http://spreecommerce.com
|
|
1116
1114
|
licenses: []
|
|
1117
1115
|
|
|
@@ -1143,7 +1141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1143
1141
|
requirements:
|
|
1144
1142
|
- none
|
|
1145
1143
|
rubyforge_project: spree_core
|
|
1146
|
-
rubygems_version: 1.
|
|
1144
|
+
rubygems_version: 1.8.10
|
|
1147
1145
|
signing_key:
|
|
1148
1146
|
specification_version: 3
|
|
1149
1147
|
summary: Core e-commerce functionality for the Spree project.
|