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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js +19 -0
- data/app/controllers/spree/base_controller.rb +2 -1
- data/app/controllers/spree/errors_controller.rb +11 -0
- data/app/finders/spree/orders/find_current.rb +1 -1
- data/app/finders/spree/products/find.rb +14 -3
- data/app/helpers/spree/base_helper.rb +2 -1
- data/app/helpers/spree/currency_helper.rb +34 -0
- data/app/helpers/spree/locale_helper.rb +31 -0
- data/app/helpers/spree/products_helper.rb +37 -12
- data/app/models/concerns/spree/product_scopes.rb +1 -1
- data/app/models/concerns/spree/user_payment_source.rb +1 -1
- data/app/models/spree/ability.rb +45 -30
- data/app/models/spree/app_configuration.rb +2 -2
- data/app/models/spree/app_dependencies.rb +3 -1
- data/app/models/spree/credit_card.rb +4 -0
- data/app/models/spree/image.rb +14 -14
- data/app/models/spree/line_item.rb +6 -9
- data/app/models/spree/price.rb +1 -1
- data/app/models/spree/product.rb +29 -15
- data/app/models/spree/promotion/rules/option_value.rb +1 -1
- data/app/models/spree/store.rb +38 -9
- data/app/models/spree/variant.rb +8 -8
- data/app/paginators/spree/shared/paginate.rb +8 -1
- data/app/presenters/spree/variant_presenter.rb +2 -5
- data/app/services/spree/build_localized_redirect_url.rb +101 -0
- data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
- data/app/views/spree/errors/forbidden.html.erb +0 -0
- data/app/views/spree/errors/unauthorized.html.erb +0 -0
- data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +13 -2
- data/app/views/spree/shared/_purchased_items_table.html.erb +15 -6
- data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +2 -2
- data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +2 -2
- data/config/locales/en.yml +8 -54
- data/config/routes.rb +2 -1
- data/db/default/spree/stores.rb +1 -0
- data/db/default/spree/zones.rb +4 -1
- data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +1 -0
- data/db/migrate/20201012091259_add_filterable_column_to_spree_option_types.rb +6 -2
- data/db/migrate/20210120142527_ensure_default_locale_in_spree_stores.rb +5 -0
- data/db/migrate/20210205211040_add_supported_locales_to_spree_stores.rb +11 -0
- data/db/migrate/20210215202602_migrate_spree_i18n_globalize_config.rb +22 -0
- data/lib/generators/spree/install/install_generator.rb +9 -6
- data/lib/spree/core.rb +2 -1
- data/lib/spree/core/controller_helpers/auth.rb +3 -1
- data/lib/spree/core/controller_helpers/common.rb +6 -8
- data/lib/spree/core/controller_helpers/currency.rb +54 -0
- data/lib/spree/core/controller_helpers/locale.rb +58 -0
- data/lib/spree/core/controller_helpers/search.rb +1 -1
- data/lib/spree/core/controller_helpers/store.rb +4 -16
- data/lib/spree/core/version.rb +3 -1
- data/lib/spree/i18n.rb +12 -0
- data/lib/spree/permitted_attributes.rb +1 -1
- data/lib/spree/service_module.rb +2 -2
- data/lib/spree/testing_support/common_rake.rb +1 -1
- data/lib/spree/testing_support/controller_requests.rb +10 -10
- data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_factory.rb +1 -0
- data/lib/spree/testing_support/flatpickr_capybara.rb +101 -0
- data/lib/spree/testing_support/locale_helpers.rb +78 -0
- data/lib/spree/testing_support/next_instance_of.rb +38 -0
- data/spree_core.gemspec +1 -1
- metadata +20 -9
- data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +0 -1
- data/lib/generators/spree/install/templates/config/spree_storefront.yml +0 -67
- 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+
|
data/lib/spree/core/version.rb
CHANGED
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
|
|
data/lib/spree/service_module.rb
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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.
|
24
|
-
stock_location.stock_items.where(variant_id: product_2.
|
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.
|
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.
|
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-
|
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.
|
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.
|
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/
|
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.
|
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.
|
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:
|