spree_core 2.3.1 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +3 -3
  3. data/app/models/spree/ability.rb +1 -0
  4. data/app/models/spree/app_configuration.rb +0 -1
  5. data/app/models/spree/base.rb +6 -0
  6. data/app/models/spree/calculator/flat_percent_item_total.rb +9 -3
  7. data/app/models/spree/calculator/flexi_rate.rb +1 -1
  8. data/app/models/spree/calculator/percent_on_line_item.rb +1 -1
  9. data/app/models/spree/calculator/tiered_flat_rate.rb +37 -0
  10. data/app/models/spree/calculator/tiered_percent.rb +44 -0
  11. data/app/models/spree/credit_card.rb +35 -14
  12. data/app/models/spree/inventory_unit.rb +1 -0
  13. data/app/models/spree/item_adjustments.rb +3 -2
  14. data/app/models/spree/line_item.rb +2 -2
  15. data/app/models/spree/order.rb +36 -20
  16. data/app/models/spree/order/checkout.rb +60 -24
  17. data/app/models/spree/order_contents.rb +3 -6
  18. data/app/models/spree/order_populator.rb +1 -1
  19. data/app/models/spree/order_updater.rb +19 -4
  20. data/app/models/spree/payment.rb +4 -0
  21. data/app/models/spree/payment/processing.rb +6 -2
  22. data/app/models/spree/price.rb +10 -0
  23. data/app/models/spree/product.rb +81 -54
  24. data/app/models/spree/promotion/actions/create_adjustment.rb +2 -11
  25. data/app/models/spree/promotion/actions/create_item_adjustments.rb +2 -19
  26. data/app/models/spree/promotion_handler/cart.rb +14 -2
  27. data/app/models/spree/promotion_handler/coupon.rb +8 -2
  28. data/app/models/spree/return_authorization.rb +2 -2
  29. data/app/models/spree/shipping_rate.rb +2 -2
  30. data/app/models/spree/stock/availability_validator.rb +3 -7
  31. data/app/models/spree/stock/estimator.rb +1 -1
  32. data/app/models/spree/stock/package.rb +1 -0
  33. data/app/models/spree/stock_item.rb +6 -1
  34. data/app/models/spree/stock_location.rb +4 -0
  35. data/app/models/spree/tax_rate.rb +15 -2
  36. data/app/models/spree/variant.rb +8 -3
  37. data/app/models/spree/zone.rb +2 -2
  38. data/config/locales/en.yml +33 -3
  39. data/db/default/spree/countries.rb +2 -1
  40. data/db/migrate/20130807024302_rename_adjustment_fields.rb +2 -5
  41. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +10 -0
  42. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +12 -4
  43. data/lib/generators/spree/install/install_generator.rb +8 -0
  44. data/lib/spree/core.rb +1 -0
  45. data/lib/spree/core/adjustment_source.rb +26 -0
  46. data/lib/spree/core/controller_helpers.rb +10 -9
  47. data/lib/spree/core/controller_helpers/order.rb +18 -5
  48. data/lib/spree/core/engine.rb +6 -2
  49. data/lib/spree/core/importer/order.rb +52 -9
  50. data/lib/spree/core/version.rb +1 -1
  51. data/lib/spree/permitted_attributes.rb +4 -4
  52. data/lib/spree/testing_support/authorization_helpers.rb +1 -1
  53. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  54. metadata +27 -37
@@ -65,6 +65,7 @@ require 'spree/core/user_payment_source'
65
65
  require 'spree/core/delegate_belongs_to'
66
66
  require 'spree/core/permalinks'
67
67
  require 'spree/core/calculated_adjustments'
68
+ require 'spree/core/adjustment_source'
68
69
  require 'spree/core/product_duplicator'
69
70
  require 'spree/core/controller_helpers'
70
71
  require 'spree/core/controller_helpers/search'
@@ -0,0 +1,26 @@
1
+ module Spree
2
+ module Core
3
+ module AdjustmentSource
4
+ def self.included(klass)
5
+ klass.class_eval do
6
+ def deals_with_adjustments_for_deleted_source
7
+ adjustment_scope = self.adjustments.includes(:order).references(:spree_orders)
8
+
9
+ # For incomplete orders, remove the adjustment completely.
10
+ adjustment_scope.where("spree_orders.completed_at IS NULL").destroy_all
11
+
12
+ # For complete orders, the source will be invalid.
13
+ # Therefore we nullify the source_id, leaving the adjustment in place.
14
+ # This would mean that the order's total is not altered at all.
15
+ adjustment_scope.where("spree_orders.completed_at IS NOT NULL").each do |adjustment|
16
+ adjustment.update_columns(
17
+ source_id: nil,
18
+ updated_at: Time.now,
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,18 +1,19 @@
1
- require 'spree/core/controller_helpers/common'
2
1
  require 'spree/core/controller_helpers/auth'
3
- require 'spree/core/controller_helpers/respond_with'
2
+ require 'spree/core/controller_helpers/common'
4
3
  require 'spree/core/controller_helpers/order'
4
+ require 'spree/core/controller_helpers/respond_with'
5
+ require 'spree/core/controller_helpers/store'
5
6
 
6
7
  module Spree
7
8
  module Core
8
9
  module ControllerHelpers
9
- def self.included(klass)
10
- klass.class_eval do
11
- include Spree::Core::ControllerHelpers::Common
12
- include Spree::Core::ControllerHelpers::Auth
13
- include Spree::Core::ControllerHelpers::RespondWith
14
- include Spree::Core::ControllerHelpers::Order
15
- end
10
+ extend ActiveSupport::Concern
11
+ included do
12
+ include Spree::Core::ControllerHelpers::Auth
13
+ include Spree::Core::ControllerHelpers::Common
14
+ include Spree::Core::ControllerHelpers::Order
15
+ include Spree::Core::ControllerHelpers::RespondWith
16
+ include Spree::Core::ControllerHelpers::Store
16
17
  end
17
18
  end
18
19
  end
@@ -14,7 +14,7 @@ module Spree
14
14
 
15
15
  # Used in the link_to_cart helper.
16
16
  def simple_current_order
17
- @order ||= Spree::Order.find_by(completed_at: nil, currency: current_currency, guest_token: cookies.signed[:guest_token])
17
+ @simple_current_order ||= Spree::Order.incomplete.find_by(current_order_params)
18
18
  end
19
19
 
20
20
  # The current incomplete order from the guest_token for use in cart and during checkout
@@ -25,10 +25,15 @@ module Spree
25
25
  return @current_order if @current_order
26
26
 
27
27
  # Find any incomplete orders for the guest_token
28
- @current_order = Spree::Order.includes(:adjustments).lock(options[:lock]).find_by(completed_at: nil, currency: current_currency, guest_token: cookies.signed[:guest_token])
28
+ @current_order = Spree::Order.incomplete.includes(:adjustments).lock(options[:lock]).find_by(current_order_params)
29
+
30
+ # Find any incomplete orders for the current user
31
+ if @current_order.nil? && try_spree_current_user
32
+ @current_order = Spree::Order.incomplete.order('id DESC').where({ currency: current_currency, user_id: try_spree_current_user.try(:id)}).first
33
+ end
29
34
 
30
35
  if options[:create_order_if_necessary] and (@current_order.nil? or @current_order.completed?)
31
- @current_order = Spree::Order.new(currency: current_currency, guest_token: cookies.signed[:guest_token])
36
+ @current_order = Spree::Order.new(current_order_params)
32
37
  @current_order.user ||= try_spree_current_user
33
38
  # See issue #3346 for reasons why this line is here
34
39
  @current_order.created_by ||= try_spree_current_user
@@ -50,8 +55,7 @@ module Spree
50
55
 
51
56
  def set_current_order
52
57
  if user = try_spree_current_user
53
- last_incomplete_order = user.last_incomplete_spree_order
54
- if last_incomplete_order
58
+ if cookies.signed[:guest_token].nil? && last_incomplete_order
55
59
  cookies.permanent.signed[:guest_token] = last_incomplete_order.guest_token
56
60
  elsif current_order && last_incomplete_order && current_order != last_incomplete_order
57
61
  current_order.merge!(last_incomplete_order, user)
@@ -66,6 +70,15 @@ module Spree
66
70
  def ip_address
67
71
  request.remote_ip
68
72
  end
73
+
74
+ private
75
+ def last_incomplete_order
76
+ @last_incomplete_order ||= try_spree_current_user.last_incomplete_spree_order
77
+ end
78
+
79
+ def current_order_params
80
+ { currency: current_currency, guest_token: cookies.signed[:guest_token], user_id: try_spree_current_user.try(:id) }
81
+ end
69
82
  end
70
83
  end
71
84
  end
@@ -48,12 +48,16 @@ module Spree
48
48
  app.config.spree.calculators.promotion_actions_create_adjustments = [
49
49
  Spree::Calculator::FlatPercentItemTotal,
50
50
  Spree::Calculator::FlatRate,
51
- Spree::Calculator::FlexiRate
51
+ Spree::Calculator::FlexiRate,
52
+ Spree::Calculator::TieredPercent,
53
+ Spree::Calculator::TieredFlatRate
52
54
  ]
53
55
 
54
56
  app.config.spree.calculators.add_class('promotion_actions_create_item_adjustments')
55
57
  app.config.spree.calculators.promotion_actions_create_item_adjustments = [
56
- Spree::Calculator::PercentOnLineItem
58
+ Spree::Calculator::PercentOnLineItem,
59
+ Spree::Calculator::FlatRate,
60
+ Spree::Calculator::FlexiRate
57
61
  ]
58
62
  end
59
63
 
@@ -13,20 +13,22 @@ module Spree
13
13
  order = Spree::Order.create!
14
14
  order.associate_user!(user)
15
15
 
16
- create_shipments_from_params(params.delete(:shipments_attributes), order)
17
16
  create_line_items_from_params(params.delete(:line_items_attributes),order)
17
+ create_shipments_from_params(params.delete(:shipments_attributes), order)
18
18
  create_adjustments_from_params(params.delete(:adjustments_attributes), order)
19
19
  create_payments_from_params(params.delete(:payments_attributes), order)
20
20
 
21
- if(completed_at = params.delete(:completed_at))
21
+ if completed_at = params.delete(:completed_at)
22
22
  order.completed_at = completed_at
23
23
  order.state = 'complete'
24
24
  end
25
25
 
26
+ params.delete(:user_id) unless user.try(:has_spree_role?, "admin") && params.key?(:user_id)
27
+
26
28
  order.update_attributes!(params)
27
- # Really ensure that the order totals are correct
28
- order.update_totals
29
- order.persist_totals
29
+
30
+ # Really ensure that the order totals & states are correct
31
+ order.updater.update
30
32
  order.reload
31
33
  rescue Exception => e
32
34
  order.destroy if order && order.persisted?
@@ -36,10 +38,12 @@ module Spree
36
38
 
37
39
  def self.create_shipments_from_params(shipments_hash, order)
38
40
  return [] unless shipments_hash
41
+
42
+ line_items = order.line_items
39
43
  shipments_hash.each do |s|
40
44
  begin
41
45
  shipment = order.shipments.build
42
- shipment.tracking = s[:tracking]
46
+ shipment.tracking = s[:tracking]
43
47
  shipment.stock_location = Spree::StockLocation.find_by_name!(s[:stock_location])
44
48
 
45
49
  inventory_units = s[:inventory_units] || []
@@ -48,15 +52,33 @@ module Spree
48
52
 
49
53
  unit = shipment.inventory_units.build
50
54
  unit.order = order
55
+
56
+ # Spree expects a Inventory Unit to always reference a line
57
+ # item and variant otherwise users might get exceptions when
58
+ # trying to view these units. Note the Importer might not be
59
+ # able to find the line item if line_item.variant_id |= iu.variant_id
51
60
  unit.variant_id = iu[:variant_id]
61
+ unit.line_item_id = line_items.select do |l|
62
+ l.variant_id.to_i == iu[:variant_id].to_i
63
+ end.first.try(:id)
64
+ end
65
+
66
+ # Mark shipped if it should be.
67
+ if s[:shipped_at].present?
68
+ shipment.shipped_at = s[:shipped_at]
69
+ shipment.state = 'shipped'
70
+ shipment.inventory_units.each do |unit|
71
+ unit.state = 'shipped'
72
+ end
52
73
  end
53
74
 
54
75
  shipment.save!
55
76
 
56
- shipping_method = Spree::ShippingMethod.find_by_name!(s[:shipping_method])
77
+ shipping_method = Spree::ShippingMethod.find_by_name(s[:shipping_method]) || Spree::ShippingMethod.find_by_admin_name!(s[:shipping_method])
57
78
  rate = shipment.shipping_rates.create!(:shipping_method => shipping_method,
58
79
  :cost => s[:cost])
59
80
  shipment.selected_shipping_rate_id = rate.id
81
+ shipment.update_amounts
60
82
 
61
83
  rescue Exception => e
62
84
  raise "Order import shipments: #{e.message} #{s}"
@@ -98,10 +120,13 @@ module Spree
98
120
  return [] unless payments_hash
99
121
  payments_hash.each do |p|
100
122
  begin
101
- payment = order.payments.build
123
+ payment = order.payments.build order: order
102
124
  payment.amount = p[:amount].to_f
103
- payment.state = p.fetch(:state, 'completed')
125
+ # Order API should be using state as that's the normal payment field.
126
+ # spree_wombat serializes payment state as status so imported orders should fall back to status field.
127
+ payment.state = p[:state] || p[:status] || 'completed'
104
128
  payment.payment_method = Spree::PaymentMethod.find_by_name!(p[:payment_method])
129
+ payment.source = create_source_payment_from_params(p[:source], payment) if p[:source]
105
130
  payment.save!
106
131
  rescue Exception => e
107
132
  raise "Order import payments: #{e.message} #{p}"
@@ -109,6 +134,24 @@ module Spree
109
134
  end
110
135
  end
111
136
 
137
+ def self.create_source_payment_from_params(source_hash, payment)
138
+ begin
139
+ Spree::CreditCard.create(
140
+ month: source_hash[:month],
141
+ year: source_hash[:year],
142
+ cc_type: source_hash[:cc_type],
143
+ last_digits: source_hash[:last_digits],
144
+ name: source_hash[:name],
145
+ payment_method: payment.payment_method,
146
+ gateway_customer_profile_id: source_hash[:gateway_customer_profile_id],
147
+ gateway_payment_profile_id: source_hash[:gateway_payment_profile_id],
148
+ imported: true
149
+ )
150
+ rescue Exception => e
151
+ raise "Order import source payments: #{e.message} #{source_hash}"
152
+ end
153
+ end
154
+
112
155
  def self.ensure_variant_id_from_params(hash)
113
156
  begin
114
157
  unless hash[:variant_id].present?
@@ -1,5 +1,5 @@
1
1
  module Spree
2
2
  def self.version
3
- "2.3.1"
3
+ "2.3.2"
4
4
  end
5
5
  end
@@ -28,9 +28,9 @@ module Spree
28
28
  mattr_reader *ATTRIBUTES
29
29
 
30
30
  @@address_attributes = [
31
- :firstname, :lastname, :address1, :address2,
32
- :city, :country_id, :state_id, :zipcode, :phone,
33
- :state_name, :alternative_phone, :company,
31
+ :firstname, :lastname, :first_name, :last_name,
32
+ :address1, :address2, :city, :country_id, :state_id,
33
+ :zipcode, :phone, :state_name, :alternative_phone, :company,
34
34
  :country => [:iso, :name, :iso3, :iso_name],
35
35
  :state => [:name, :abbr]
36
36
  ]
@@ -96,7 +96,7 @@ module Spree
96
96
 
97
97
  @@variant_attributes = [
98
98
  :name, :presentation, :cost_price, :lock_version,
99
- :position, :option_value_ids,
99
+ :position, :option_value_ids, :track_inventory,
100
100
  :product_id, :product, :option_values_attributes, :price,
101
101
  :weight, :height, :width, :depth, :sku, :cost_currency, options: [ :name, :value ]]
102
102
  end
@@ -17,7 +17,7 @@ module Spree
17
17
  def stub_authorization!(&block)
18
18
  ability_class = build_ability(&block)
19
19
  before do
20
- allow(controller).to receive(:current_ability).and_return{ ability_class.new(nil) }
20
+ allow(controller).to receive(:current_ability).and_return(ability_class.new(nil))
21
21
  end
22
22
  end
23
23
  end
@@ -4,7 +4,7 @@ FactoryGirl.define do
4
4
  description { generate(:random_description) }
5
5
  price 19.99
6
6
  cost_price 17.00
7
- sku 'ABC'
7
+ sku { "ABC-#{Kernel.rand(9999)}" }
8
8
  available_on { 1.year.ago }
9
9
  deleted_at nil
10
10
  shipping_category { |r| Spree::ShippingCategory.first || r.association(:shipping_category) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-01 00:00:00.000000000 Z
11
+ date: 2014-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemerchant
@@ -67,19 +67,19 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.27.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: cancan
70
+ name: cancancan
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.6.10
75
+ version: 1.8.4
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.6.10
82
+ version: 1.8.4
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: deface
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,61 +109,61 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '1.16'
111
111
  - !ruby/object:Gem::Dependency
112
- name: friendly_id
112
+ name: font-awesome-rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 5.0.4
117
+ version: '4.0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 5.0.4
124
+ version: '4.0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: highline
126
+ name: friendly_id
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 1.6.18
131
+ version: 5.0.4
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 1.6.18
138
+ version: 5.0.4
139
139
  - !ruby/object:Gem::Dependency
140
- name: httparty
140
+ name: highline
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.11'
145
+ version: 1.6.18
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.11'
152
+ version: 1.6.18
153
153
  - !ruby/object:Gem::Dependency
154
- name: i18n
154
+ name: httparty
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '='
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.6.9
159
+ version: '0.11'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '='
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.6.9
166
+ version: '0.11'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: json
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 4.1.1
215
+ version: 4.2.0
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 4.1.1
222
+ version: 4.2.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: paranoia
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: 4.1.2
243
+ version: 4.1.4
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: 4.1.2
250
+ version: 4.1.4
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: ransack
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -304,20 +304,6 @@ dependencies:
304
304
  - - '='
305
305
  - !ruby/object:Gem::Version
306
306
  version: 0.9.2
307
- - !ruby/object:Gem::Dependency
308
- name: font-awesome-rails
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - "~>"
312
- - !ruby/object:Gem::Version
313
- version: '4.0'
314
- type: :runtime
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - "~>"
319
- - !ruby/object:Gem::Version
320
- version: '4.0'
321
307
  description: The bare bones necessary for Spree.
322
308
  email: sean@spreecommerce.com
323
309
  executables: []
@@ -366,6 +352,8 @@ files:
366
352
  - app/models/spree/calculator/shipping/flexi_rate.rb
367
353
  - app/models/spree/calculator/shipping/per_item.rb
368
354
  - app/models/spree/calculator/shipping/price_sack.rb
355
+ - app/models/spree/calculator/tiered_flat_rate.rb
356
+ - app/models/spree/calculator/tiered_percent.rb
369
357
  - app/models/spree/classification.rb
370
358
  - app/models/spree/configuration.rb
371
359
  - app/models/spree/country.rb
@@ -621,6 +609,7 @@ files:
621
609
  - db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb
622
610
  - db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb
623
611
  - db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb
612
+ - db/migrate/20140804185157_add_default_to_shipment_cost.rb
624
613
  - db/seeds.rb
625
614
  - lib/generators/spree/custom_user/custom_user_generator.rb
626
615
  - lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt
@@ -642,6 +631,7 @@ files:
642
631
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
643
632
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css
644
633
  - lib/spree/core.rb
634
+ - lib/spree/core/adjustment_source.rb
645
635
  - lib/spree/core/calculated_adjustments.rb
646
636
  - lib/spree/core/controller_helpers.rb
647
637
  - lib/spree/core/controller_helpers/auth.rb