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.
@@ -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 ENV['RAILS_ENV'] == "development"
243
- self.class.type?(number)
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.reload
267
+ shipping_method(true)
268
268
  if shipment.present?
269
269
  shipment.update_attributes(:shipping_method => shipping_method)
270
270
  else
@@ -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? ?
@@ -90,10 +90,14 @@ class ProductGroup < ActiveRecord::Base
90
90
  end
91
91
 
92
92
  def add_scope(scope_name, arguments=[])
93
- self.product_scopes << ProductScope.new({
94
- :name => scope_name.to_s,
95
- :arguments => [*arguments]
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
 
@@ -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.search({self.name.intern => array}).relation
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)
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "0.60.1"
3
+ "0.60.2"
4
4
  end
5
5
  end
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: 237
4
+ hash: 235
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 60
9
- - 1
10
- version: 0.60.1
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-06-21 00:00:00 -04:00
19
- default_executable:
18
+ date: 2011-10-05 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- type: :runtime
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
- version_requirements: *id001
35
- name: acts_as_list
32
+ requirement: *id001
33
+ type: :runtime
36
34
  prerelease: false
35
+ name: acts_as_list
37
36
  - !ruby/object:Gem::Dependency
38
- type: :runtime
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: 3
42
+ hash: 1
45
43
  segments:
46
44
  - 1
47
45
  - 6
48
- - 6
49
- version: 1.6.6
50
- version_requirements: *id002
51
- name: nested_set
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
- type: :runtime
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
- version_requirements: *id003
67
- name: rd_unobtrusive_date_picker
64
+ requirement: *id003
65
+ type: :runtime
68
66
  prerelease: false
67
+ name: rd_unobtrusive_date_picker
69
68
  - !ruby/object:Gem::Dependency
70
- type: :runtime
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
- version_requirements: *id004
83
- name: rd_find_by_param
80
+ requirement: *id004
81
+ type: :runtime
84
82
  prerelease: false
83
+ name: rd_find_by_param
85
84
  - !ruby/object:Gem::Dependency
86
- type: :runtime
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
- version_requirements: *id005
99
- name: highline
96
+ requirement: *id005
97
+ type: :runtime
100
98
  prerelease: false
99
+ name: highline
101
100
  - !ruby/object:Gem::Dependency
102
- type: :runtime
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
- version_requirements: *id006
115
- name: stringex
112
+ requirement: *id006
113
+ type: :runtime
116
114
  prerelease: false
115
+ name: stringex
117
116
  - !ruby/object:Gem::Dependency
118
- type: :runtime
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
- version_requirements: *id007
131
- name: state_machine
128
+ requirement: *id007
129
+ type: :runtime
132
130
  prerelease: false
131
+ name: state_machine
133
132
  - !ruby/object:Gem::Dependency
134
- type: :runtime
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
- version_requirements: *id008
147
- name: faker
144
+ requirement: *id008
145
+ type: :runtime
148
146
  prerelease: false
147
+ name: faker
149
148
  - !ruby/object:Gem::Dependency
150
- type: :runtime
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
- version_requirements: *id009
163
- name: paperclip
160
+ requirement: *id009
161
+ type: :runtime
164
162
  prerelease: false
163
+ name: paperclip
165
164
  - !ruby/object:Gem::Dependency
166
- type: :runtime
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
- version_requirements: *id010
177
- name: rd_resource_controller
174
+ requirement: *id010
175
+ type: :runtime
178
176
  prerelease: false
177
+ name: rd_resource_controller
179
178
  - !ruby/object:Gem::Dependency
180
- type: :runtime
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
- version_requirements: *id011
193
- name: meta_search
190
+ requirement: *id011
191
+ type: :runtime
194
192
  prerelease: false
193
+ name: meta_search
195
194
  - !ruby/object:Gem::Dependency
196
- type: :runtime
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
- version_requirements: *id012
209
- name: activemerchant
206
+ requirement: *id012
207
+ type: :runtime
210
208
  prerelease: false
209
+ name: activemerchant
211
210
  - !ruby/object:Gem::Dependency
212
- type: :runtime
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
- version_requirements: *id013
226
- name: will_paginate
223
+ requirement: *id013
224
+ type: :runtime
227
225
  prerelease: false
226
+ name: will_paginate
228
227
  - !ruby/object:Gem::Dependency
229
- type: :runtime
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
- version_requirements: *id014
242
- name: rails
239
+ requirement: *id014
240
+ type: :runtime
243
241
  prerelease: false
242
+ name: rails
244
243
  - !ruby/object:Gem::Dependency
245
- type: :runtime
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
- version_requirements: *id015
258
- name: jquery-rails
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.6.2
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.