spree_core 2.3.1 → 2.3.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.
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