spree_core 0.60.1 → 0.60.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.