spree_core 4.2.0.rc3 → 4.2.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js +19 -0
  3. data/app/controllers/spree/base_controller.rb +2 -1
  4. data/app/controllers/spree/errors_controller.rb +11 -0
  5. data/app/finders/spree/orders/find_current.rb +1 -1
  6. data/app/finders/spree/products/find.rb +14 -3
  7. data/app/helpers/spree/base_helper.rb +2 -1
  8. data/app/helpers/spree/currency_helper.rb +34 -0
  9. data/app/helpers/spree/locale_helper.rb +31 -0
  10. data/app/helpers/spree/products_helper.rb +37 -12
  11. data/app/models/concerns/spree/product_scopes.rb +1 -1
  12. data/app/models/concerns/spree/user_payment_source.rb +1 -1
  13. data/app/models/spree/ability.rb +45 -30
  14. data/app/models/spree/app_configuration.rb +2 -2
  15. data/app/models/spree/app_dependencies.rb +3 -1
  16. data/app/models/spree/credit_card.rb +4 -0
  17. data/app/models/spree/image.rb +14 -14
  18. data/app/models/spree/line_item.rb +6 -9
  19. data/app/models/spree/price.rb +1 -1
  20. data/app/models/spree/product.rb +29 -15
  21. data/app/models/spree/promotion/rules/option_value.rb +1 -1
  22. data/app/models/spree/store.rb +38 -9
  23. data/app/models/spree/variant.rb +8 -8
  24. data/app/paginators/spree/shared/paginate.rb +8 -1
  25. data/app/presenters/spree/variant_presenter.rb +2 -5
  26. data/app/services/spree/build_localized_redirect_url.rb +101 -0
  27. data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
  28. data/app/views/spree/errors/forbidden.html.erb +0 -0
  29. data/app/views/spree/errors/unauthorized.html.erb +0 -0
  30. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +13 -2
  31. data/app/views/spree/shared/_purchased_items_table.html.erb +15 -6
  32. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +2 -2
  33. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +2 -2
  34. data/config/locales/en.yml +8 -54
  35. data/config/routes.rb +2 -1
  36. data/db/default/spree/stores.rb +1 -0
  37. data/db/default/spree/zones.rb +4 -1
  38. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +1 -0
  39. data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -2
  40. data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
  41. data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +11 -0
  42. data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +22 -0
  43. data/lib/generators/spree/install/install_generator.rb +9 -6
  44. data/lib/spree/core.rb +2 -1
  45. data/lib/spree/core/controller_helpers/auth.rb +3 -1
  46. data/lib/spree/core/controller_helpers/common.rb +6 -8
  47. data/lib/spree/core/controller_helpers/currency.rb +54 -0
  48. data/lib/spree/core/controller_helpers/locale.rb +58 -0
  49. data/lib/spree/core/controller_helpers/search.rb +1 -1
  50. data/lib/spree/core/controller_helpers/store.rb +4 -16
  51. data/lib/spree/core/version.rb +3 -1
  52. data/lib/spree/i18n.rb +12 -0
  53. data/lib/spree/permitted_attributes.rb +1 -1
  54. data/lib/spree/service_module.rb +2 -2
  55. data/lib/spree/testing_support/common_rake.rb +1 -1
  56. data/lib/spree/testing_support/controller_requests.rb +10 -10
  57. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  58. data/lib/spree/testing_support/factories/store_factory.rb +1 -0
  59. data/lib/spree/testing_support/flatpickr_capybara.rb +101 -0
  60. data/lib/spree/testing_support/locale_helpers.rb +78 -0
  61. data/lib/spree/testing_support/next_instance_of.rb +38 -0
  62. data/spree_core.gemspec +1 -1
  63. metadata +20 -9
  64. data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +0 -1
  65. data/lib/generators/spree/install/templates/config/spree_storefront.yml +0 -67
  66. data/lib/spree/core/controller_helpers/currency_helpers.rb +0 -15
@@ -5,7 +5,7 @@ module Spree
5
5
  def build_searcher(params)
6
6
  Spree::Config.searcher_class.new(params).tap do |searcher|
7
7
  searcher.current_user = try_spree_current_user
8
- searcher.current_currency = current_currency
8
+ searcher.current_currency = current_currency&.upcase
9
9
  end
10
10
  end
11
11
  end
@@ -5,30 +5,18 @@ module Spree
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- helper_method :supported_currencies
9
- helper_method :current_currency
10
8
  helper_method :current_store
11
9
  helper_method :current_price_options
12
10
  end
13
11
 
14
- def current_currency
15
- if defined?(session) && session.key?(:currency) && supported_currencies.map(&:iso_code).include?(session[:currency])
16
- session[:currency]
17
- elsif params[:currency].present? && supported_currencies.map(&:iso_code).include?(params[:currency])
18
- params[:currency]
19
- else
20
- current_store.default_currency
21
- end
22
- end
23
-
24
- def supported_currencies
25
- current_store.supported_currencies_list
26
- end
27
-
28
12
  def current_store
29
13
  @current_store ||= Spree::Store.current(request.env['SERVER_NAME'])
30
14
  end
31
15
 
16
+ def store_locale
17
+ current_store.default_locale
18
+ end
19
+
32
20
  # Return a Hash of things that influence the prices displayed in your shop.
33
21
  #
34
22
  # By default, the only thing that influences prices that is the current order's +tax_zone+
@@ -1,5 +1,7 @@
1
1
  module Spree
2
+ VERSION = '4.2.2'.freeze
3
+
2
4
  def self.version
3
- '4.2.0.rc3'
5
+ VERSION
4
6
  end
5
7
  end
data/lib/spree/i18n.rb CHANGED
@@ -16,6 +16,18 @@ module Spree
16
16
  TranslationHelperWrapper.new.translate(key, **options)
17
17
  end
18
18
 
19
+ def available_locales
20
+ locales_from_i18n = I18n.available_locales
21
+ locales =
22
+ if defined?(SpreeI18n)
23
+ (SpreeI18n::Locale.all << :en).map(&:to_s)
24
+ else
25
+ [Rails.application.config.i18n.default_locale, I18n.locale, :en]
26
+ end
27
+
28
+ (locales + locales_from_i18n).uniq.compact
29
+ end
30
+
19
31
  alias t translate
20
32
  end
21
33
  end
@@ -99,7 +99,7 @@ module Spree
99
99
  @@store_attributes = [:name, :url, :seo_title, :code, :meta_keywords, :logo,
100
100
  :meta_description, :default_currency, :mail_from_address,
101
101
  :customer_support_email, :facebook, :twitter, :instagram,
102
- :description, :address, :contact_phone,
102
+ :description, :address, :contact_phone, :supported_locales,
103
103
  :default_locale, :default_country_id, :supported_currencies,
104
104
  :new_order_notifications_email, :mailer_logo, :checkout_zone_id, :seo_robots]
105
105
 
@@ -1,8 +1,8 @@
1
1
  module Spree
2
2
  module ServiceModule
3
3
  module Callable
4
- def call(*args)
5
- new.call(*args).tap do |result|
4
+ def call(*args, **kwargs)
5
+ new.call(*args, **kwargs).tap do |result|
6
6
  return yield(result) if block_given?
7
7
  end
8
8
  end
@@ -15,7 +15,7 @@ namespace :common do
15
15
  Rails.env = 'test'
16
16
 
17
17
  Spree::DummyGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--quiet']
18
- Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--auto-accept', '--migrate=false', '--seed=false', '--sample=false', '--quiet', '--copy_storefront=false', "--user_class=#{args[:user_class]}"]
18
+ Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--auto-accept', '--migrate=false', '--seed=false', '--sample=false', '--quiet', '--copy_storefront=false', '--install_storefront=false', "--user_class=#{args[:user_class]}"]
19
19
 
20
20
  puts 'Setting up dummy database...'
21
21
  system("bundle exec rake db:drop db:create > #{File::NULL}")
@@ -9,7 +9,7 @@ module Spree
9
9
 
10
10
  def spree_get(action, parameters = nil, session = nil, flash = nil)
11
11
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
12
- ControllerRequests#spree_get is deprecated and will be removed in Spree 4.1.
12
+ ControllerRequests#spree_get is deprecated and will be removed in Spree 5.0.
13
13
  Please use get, params: {}
14
14
  DEPRECATION
15
15
  process_spree_action(action, parameters, session, flash, 'GET')
@@ -18,7 +18,7 @@ module Spree
18
18
  # Executes a request simulating POST HTTP method and set/volley the response
19
19
  def spree_post(action, parameters = nil, session = nil, flash = nil)
20
20
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
21
- ControllerRequests#spree_post is deprecated and will be removed in Spree 4.1.
21
+ ControllerRequests#spree_post is deprecated and will be removed in Spree 5.0.
22
22
  Please use post, params: {}
23
23
  DEPRECATION
24
24
  process_spree_action(action, parameters, session, flash, 'POST')
@@ -27,7 +27,7 @@ module Spree
27
27
  # Executes a request simulating PUT HTTP method and set/volley the response
28
28
  def spree_put(action, parameters = nil, session = nil, flash = nil)
29
29
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
30
- ControllerRequests#spree_put is deprecated and will be removed in Spree 4.1.
30
+ ControllerRequests#spree_put is deprecated and will be removed in Spree 5.0.
31
31
  Please use put, params: {}
32
32
  DEPRECATION
33
33
  process_spree_action(action, parameters, session, flash, 'PUT')
@@ -36,7 +36,7 @@ module Spree
36
36
  # # Executes a request simulating PATCH HTTP method and set/volley the response
37
37
  def spree_patch(action, parameters = nil, session = nil, flash = nil)
38
38
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
39
- ControllerRequests#spree_patch is deprecated and will be removed in Spree 4.1.
39
+ ControllerRequests#spree_patch is deprecated and will be removed in Spree 5.0.
40
40
  Please use patch, params: {}
41
41
  DEPRECATION
42
42
  process_spree_action(action, parameters, session, flash, 'PATCH')
@@ -45,7 +45,7 @@ module Spree
45
45
  # Executes a request simulating DELETE HTTP method and set/volley the response
46
46
  def spree_delete(action, parameters = nil, session = nil, flash = nil)
47
47
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
48
- ControllerRequests#spree_delete is deprecated and will be removed in Spree 4.1.
48
+ ControllerRequests#spree_delete is deprecated and will be removed in Spree 5.0.
49
49
  Please use delete, params: {}
50
50
  DEPRECATION
51
51
  process_spree_action(action, parameters, session, flash, 'DELETE')
@@ -53,35 +53,35 @@ module Spree
53
53
 
54
54
  def spree_xhr_get(action, parameters = nil, session = nil, flash = nil)
55
55
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
56
- ControllerRequests#spree_xhr_get is deprecated and will be removed in Spree 4.1.
56
+ ControllerRequests#spree_xhr_get is deprecated and will be removed in Spree 5.0.
57
57
  DEPRECATION
58
58
  process_spree_xhr_action(action, parameters, session, flash, :get)
59
59
  end
60
60
 
61
61
  def spree_xhr_post(action, parameters = nil, session = nil, flash = nil)
62
62
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
63
- ControllerRequests#spree_xhr_post is deprecated and will be removed in Spree 4.1.
63
+ ControllerRequests#spree_xhr_post is deprecated and will be removed in Spree 5.0.
64
64
  DEPRECATION
65
65
  process_spree_xhr_action(action, parameters, session, flash, :post)
66
66
  end
67
67
 
68
68
  def spree_xhr_put(action, parameters = nil, session = nil, flash = nil)
69
69
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
70
- ControllerRequests#spree_xhr_put is deprecated and will be removed in Spree 4.1.
70
+ ControllerRequests#spree_xhr_put is deprecated and will be removed in Spree 5.0.
71
71
  DEPRECATION
72
72
  process_spree_xhr_action(action, parameters, session, flash, :put)
73
73
  end
74
74
 
75
75
  def spree_xhr_patch(action, parameters = nil, session = nil, flash = nil)
76
76
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
77
- ControllerRequests#spree_xhr_patch is deprecated and will be removed in Spree 4.1.
77
+ ControllerRequests#spree_xhr_patch is deprecated and will be removed in Spree 5.0.
78
78
  DEPRECATION
79
79
  process_spree_xhr_action(action, parameters, session, flash, :patch)
80
80
  end
81
81
 
82
82
  def spree_xhr_delete(action, parameters = nil, session = nil, flash = nil)
83
83
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
84
- ControllerRequests#spree_xhr_delete is deprecated and will be removed in Spree 4.1.
84
+ ControllerRequests#spree_xhr_delete is deprecated and will be removed in Spree 5.0.
85
85
  DEPRECATION
86
86
  process_spree_xhr_action(action, parameters, session, flash, :delete)
87
87
  end
@@ -20,8 +20,8 @@ FactoryBot.define do
20
20
  product_1 = create(:product)
21
21
  product_2 = create(:product)
22
22
 
23
- stock_location.stock_items.where(variant_id: product_1.master.id).first.adjust_count_on_hand(10)
24
- stock_location.stock_items.where(variant_id: product_2.master.id).first.adjust_count_on_hand(20)
23
+ stock_location.stock_items.where(variant_id: product_1.master_id).first.adjust_count_on_hand(10)
24
+ stock_location.stock_items.where(variant_id: product_2.master_id).first.adjust_count_on_hand(20)
25
25
  end
26
26
  end
27
27
  end
@@ -8,6 +8,7 @@ FactoryBot.define do
8
8
  new_order_notifications_email { 'store-owner@example.com' }
9
9
  default_currency { 'USD' }
10
10
  supported_currencies { 'USD,EUR,GBP' }
11
+ default_locale { 'en' }
11
12
  facebook { 'spreecommerce' }
12
13
  twitter { 'spreecommerce' }
13
14
  instagram { 'spreecommerce' }
@@ -0,0 +1,101 @@
1
+ module Spree
2
+ module TestingSupport
3
+ module FlatpickrCapybara
4
+ def fill_in_date_manually(label_text, with:)
5
+ with_open_flatpickr(label_text) do |field|
6
+ fill_in field[:id], with: with
7
+ end
8
+ end
9
+
10
+ def fill_in_date_picker(label_text, with:)
11
+ within_open_flatpickr(label_text) do
12
+ within_flatpickr_months do
13
+ fill_in_flatpickr_year(with.split('-')[0])
14
+
15
+ select_flatpickr_month(with.split('-')[1])
16
+
17
+ click_on_flatpickr_day(with.split('-')[2])
18
+ end
19
+ end
20
+ end
21
+
22
+ def fill_in_date_time_picker(label_text, with:)
23
+ within_open_flatpickr(label_text) do
24
+ within_flatpickr_months do
25
+ fill_in_flatpickr_year(with.split('-')[0])
26
+
27
+ select_flatpickr_month(with.split('-')[1])
28
+
29
+ click_on_flatpickr_day(with.split('-')[2])
30
+ end
31
+
32
+ within_flatpickr_time do
33
+ select_flatpickr_hour(with.split('-')[3])
34
+
35
+ select_flatpickr_min(with.split('-')[4])
36
+ end
37
+ end
38
+ end
39
+
40
+ def fill_in_date_with_js(label_text, with:)
41
+ date_field = find("input[id='#{label_text}']")
42
+ script = "document.querySelector('#{date_field}').flatpickr().setDate('#{with}');"
43
+
44
+ page.execute_script(script)
45
+ end
46
+
47
+ private
48
+
49
+ def with_open_flatpickr(label_text)
50
+ field_label = find_field(id: label_text, type: :hidden)
51
+
52
+ date_field = field_label.sibling('.flatpickr-alt-input')
53
+ date_field.click # Open the widget
54
+
55
+ yield(date_field)
56
+
57
+ date_field.send_keys :tab # Close the date picker widget
58
+ end
59
+
60
+ def within_open_flatpickr(label_text)
61
+ with_open_flatpickr(label_text) do
62
+ within find(:xpath, "/html/body/div[contains(@class, 'flatpickr-calendar')]") { yield }
63
+ end
64
+ end
65
+
66
+ def within_flatpickr_months
67
+ within find('.flatpickr-months .flatpickr-month .flatpickr-current-month') { yield }
68
+ end
69
+
70
+ def within_flatpickr_time
71
+ within find('.flatpickr-time') { yield }
72
+ end
73
+
74
+ def select_flatpickr_month(month)
75
+ find("select.flatpickr-monthDropdown-months > option:nth-child(#{month.to_i})").select_option
76
+ end
77
+
78
+ def fill_in_flatpickr_year(year)
79
+ find('input.cur-year').set(year)
80
+ end
81
+
82
+ def click_on_flatpickr_day(day)
83
+ within_flatpickr_days do
84
+ find('span', text: day).click
85
+ end
86
+ end
87
+
88
+ def within_flatpickr_days
89
+ within find('.flatpickr-innerContainer > .flatpickr-rContainer > .flatpickr-days') { yield }
90
+ end
91
+
92
+ def select_flatpickr_hour(hour)
93
+ find('input.flatpickr-hour').set(hour)
94
+ end
95
+
96
+ def select_flatpickr_min(min)
97
+ find('input.flatpickr-minute').set(min)
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,78 @@
1
+ module Spree
2
+ module TestingSupport
3
+ module LocaleHelpers
4
+ # rubocop:disable Layout/ArgumentAlignment
5
+ def add_french_locales
6
+ I18n.backend.store_translations(:fr,
7
+ spree: {
8
+ added_to_cart: 'Ajouté au panier avec succès!',
9
+ continue_shopping: 'Continuer vos achats',
10
+ choose_currency: 'Choisir la devise',
11
+ internationalization: 'Internationalisation',
12
+ i18n: {
13
+ language: 'Langue',
14
+ this_file_language: 'Français (FR)'
15
+ },
16
+ cart_page: {
17
+ header: 'Votre panier',
18
+ empty_info: 'Votre panier est vide',
19
+ add_promo_code: 'AJOUTER UN CODE PROMOTIONNEL',
20
+ checkout: 'Passer la commande',
21
+ product: 'articles',
22
+ quantity: 'quantité',
23
+ title: 'Panier',
24
+ change_quantity: 'Changer la quantité',
25
+ remove_from_cart: 'Retirer du panier'
26
+ },
27
+ shopping_cart: 'Panier',
28
+ cart: 'Panier',
29
+ close: 'Fermer',
30
+ search: 'Rechercher',
31
+ home: 'Accueil',
32
+ nav_bar: {
33
+ admin_panel: "Panneau d'administration",
34
+ close_menu: 'Fermer le menu',
35
+ go_to_previous_menu: 'Vers le menu précédent',
36
+ show_menu: 'Afficher le menu',
37
+ show_search: 'Afficher la recherche',
38
+ show_user_menu: 'Afficher le menu utilisateur',
39
+ change_country: 'Changer de pays',
40
+ desktop: 'Navigation sur le bureau',
41
+ mobile: 'Navigation mobile'
42
+ },
43
+ login: 'Connexion',
44
+ logout: 'Se déconnecter',
45
+ sign_up: 'Enregistrer',
46
+ email: 'Courriel',
47
+ password: 'Mot de passe',
48
+ remember_me: 'Se souvenir de moi',
49
+ my_account: 'Mon compte',
50
+ my_orders: 'Mes commandes',
51
+ logged_in_succesfully: 'Connexion réussie'
52
+ })
53
+ end
54
+ # rubocop:enable Layout/ArgumentAlignment
55
+
56
+ def open_i18n_menu
57
+ find('#header #internationalization-button-desktop').click
58
+ expect(page).to have_selector('#internationalization-options-desktop')
59
+ end
60
+
61
+ def close_i18n_menu
62
+ find('#header #internationalization-button-desktop').click
63
+ expect(page).not_to have_selector('#internationalization-options-desktop')
64
+ end
65
+
66
+ def switch_to_currency(currency)
67
+ open_i18n_menu
68
+ select currency, from: 'switch_to_currency'
69
+ expect(page).to have_no_css '.turbolinks-progress-bar'
70
+ end
71
+
72
+ def switch_to_locale(locale)
73
+ open_i18n_menu
74
+ select locale, from: 'Language'
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,38 @@
1
+ # Helper services with prepended ServiceModule
2
+ # https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33587
3
+ #
4
+ # ex:
5
+ # expect_next_instance_of(service_class) do |instance|
6
+ # expect(instance).to receive(:call)
7
+ # end
8
+
9
+ module NextInstanceOf
10
+ def expect_next_instance_of(klass, *new_args)
11
+ stub_new(expect(klass), *new_args) do |expectation|
12
+ yield(expectation)
13
+ end
14
+ end
15
+
16
+ def allow_next_instance_of(klass, *new_args)
17
+ stub_new(allow(klass), *new_args) do |allowance|
18
+ yield(allowance)
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def stub_new(target, *new_args)
25
+ receive_new = receive(:new)
26
+ receive_new.with(*new_args) if new_args.any?
27
+
28
+ target.to receive_new.and_wrap_original do |method, *original_args|
29
+ method.call(*original_args).tap do |instance|
30
+ yield(instance)
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ RSpec.configure do |config|
37
+ config.include NextInstanceOf
38
+ end
data/spree_core.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_dependency 'acts_as_list', '~> 0.8'
31
31
  s.add_dependency 'awesome_nested_set', '>= 3.3.1', '< 4.0'
32
32
  s.add_dependency 'carmen', '>= 1.0', '< 1.2'
33
- s.add_dependency 'cancancan', '~> 3.0'
33
+ s.add_dependency 'cancancan', '~> 3.2'
34
34
  s.add_dependency 'ffaker', '~> 2.9'
35
35
  s.add_dependency 'friendly_id', '>= 5.2.1', '< 5.5.0'
36
36
  s.add_dependency 'highline', '~> 2.0.0' # Necessary for the install generator
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.rc3
4
+ version: 4.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-18 00:00:00.000000000 Z
12
+ date: 2021-04-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemerchant
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '3.0'
88
+ version: '3.2'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '3.0'
95
+ version: '3.2'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: ffaker
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -447,6 +447,7 @@ files:
447
447
  - app/assets/images/noimage/small.png
448
448
  - app/assets/javascripts/spree.js
449
449
  - app/controllers/spree/base_controller.rb
450
+ - app/controllers/spree/errors_controller.rb
450
451
  - app/finders/spree/addresses/find.rb
451
452
  - app/finders/spree/base_finder.rb
452
453
  - app/finders/spree/countries/find.rb
@@ -459,6 +460,8 @@ files:
459
460
  - app/finders/spree/variants/option_types_finder.rb
460
461
  - app/finders/spree/variants/visible_finder.rb
461
462
  - app/helpers/spree/base_helper.rb
463
+ - app/helpers/spree/currency_helper.rb
464
+ - app/helpers/spree/locale_helper.rb
462
465
  - app/helpers/spree/mail_helper.rb
463
466
  - app/helpers/spree/products_helper.rb
464
467
  - app/mailers/spree/base_mailer.rb
@@ -665,6 +668,7 @@ files:
665
668
  - app/services/spree/account/addresses/create.rb
666
669
  - app/services/spree/account/addresses/helper.rb
667
670
  - app/services/spree/account/addresses/update.rb
671
+ - app/services/spree/build_localized_redirect_url.rb
668
672
  - app/services/spree/cart/add_item.rb
669
673
  - app/services/spree/cart/create.rb
670
674
  - app/services/spree/cart/estimate_shipping_rates.rb
@@ -688,6 +692,8 @@ files:
688
692
  - app/validators/db_maximum_length_validator.rb
689
693
  - app/validators/email_validator.rb
690
694
  - app/views/layouts/spree/base_mailer.html.erb
695
+ - app/views/spree/errors/forbidden.html.erb
696
+ - app/views/spree/errors/unauthorized.html.erb
691
697
  - app/views/spree/order_mailer/cancel_email.html.erb
692
698
  - app/views/spree/order_mailer/cancel_email.text.erb
693
699
  - app/views/spree/order_mailer/confirm_email.html.erb
@@ -1014,6 +1020,9 @@ files:
1014
1020
  - db/migrate/20210114182625_create_spree_payment_methods_stores.rb
1015
1021
  - db/migrate/20210114220232_migrate_data_payment_methods_stores.rb
1016
1022
  - db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb
1023
+ - db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb
1024
+ - db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb
1025
+ - db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb
1017
1026
  - db/seeds.rb
1018
1027
  - lib/friendly_id/slug_rails5_patch.rb
1019
1028
  - lib/generators/spree/custom_user/custom_user_generator.rb
@@ -1034,8 +1043,6 @@ files:
1034
1043
  - lib/generators/spree/dummy_model/templates/model.rb.tt
1035
1044
  - lib/generators/spree/install/install_generator.rb
1036
1045
  - lib/generators/spree/install/templates/config/initializers/spree.rb
1037
- - lib/generators/spree/install/templates/config/initializers/spree_storefront.rb
1038
- - lib/generators/spree/install/templates/config/spree_storefront.yml
1039
1046
  - lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js
1040
1047
  - lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js
1041
1048
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
@@ -1049,7 +1056,8 @@ files:
1049
1056
  - lib/spree/core/components.rb
1050
1057
  - lib/spree/core/controller_helpers/auth.rb
1051
1058
  - lib/spree/core/controller_helpers/common.rb
1052
- - lib/spree/core/controller_helpers/currency_helpers.rb
1059
+ - lib/spree/core/controller_helpers/currency.rb
1060
+ - lib/spree/core/controller_helpers/locale.rb
1053
1061
  - lib/spree/core/controller_helpers/order.rb
1054
1062
  - lib/spree/core/controller_helpers/search.rb
1055
1063
  - lib/spree/core/controller_helpers/store.rb
@@ -1139,9 +1147,12 @@ files:
1139
1147
  - lib/spree/testing_support/factories/zone_factory.rb
1140
1148
  - lib/spree/testing_support/factories/zone_member_factory.rb
1141
1149
  - lib/spree/testing_support/flash.rb
1150
+ - lib/spree/testing_support/flatpickr_capybara.rb
1142
1151
  - lib/spree/testing_support/i18n.rb
1143
1152
  - lib/spree/testing_support/image_helpers.rb
1144
1153
  - lib/spree/testing_support/kernel.rb
1154
+ - lib/spree/testing_support/locale_helpers.rb
1155
+ - lib/spree/testing_support/next_instance_of.rb
1145
1156
  - lib/spree/testing_support/order_walkthrough.rb
1146
1157
  - lib/spree/testing_support/preferences.rb
1147
1158
  - lib/spree/testing_support/rspec_retry_config.rb
@@ -1164,9 +1175,9 @@ licenses:
1164
1175
  - BSD-3-Clause
1165
1176
  metadata:
1166
1177
  bug_tracker_uri: https://github.com/spree/spree/issues
1167
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.0.rc3
1178
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.2
1168
1179
  documentation_uri: https://guides.spreecommerce.org/
1169
- source_code_uri: https://github.com/spree/spree/tree/v4.2.0.rc3
1180
+ source_code_uri: https://github.com/spree/spree/tree/v4.2.2
1170
1181
  post_install_message:
1171
1182
  rdoc_options: []
1172
1183
  require_paths: