spree_core 4.2.0.rc2 → 4.2.1
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 +20 -0
- data/app/controllers/spree/base_controller.rb +2 -3
- data/app/controllers/spree/errors_controller.rb +11 -0
- data/app/finders/spree/addresses/find.rb +1 -12
- data/app/finders/spree/base_finder.rb +14 -0
- data/app/finders/spree/countries/find.rb +11 -3
- data/app/finders/spree/credit_cards/find.rb +2 -2
- data/app/finders/spree/orders/find_current.rb +2 -2
- data/app/finders/spree/products/find.rb +14 -3
- data/app/helpers/spree/base_helper.rb +3 -8
- 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/mailers/spree/base_mailer.rb +4 -4
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/mailers/spree/shipment_mailer.rb +1 -1
- data/app/models/concerns/spree/default_price.rb +1 -5
- data/app/models/concerns/spree/product_scopes.rb +1 -1
- data/app/models/concerns/spree/user_methods.rb +2 -2
- data/app/models/concerns/spree/user_payment_source.rb +1 -1
- data/app/models/spree/ability.rb +45 -34
- data/app/models/spree/address.rb +4 -0
- data/app/models/spree/app_configuration.rb +2 -2
- data/app/models/spree/app_dependencies.rb +6 -2
- data/app/models/spree/base.rb +5 -0
- data/app/models/spree/credit_card.rb +4 -0
- data/app/models/spree/fulfilment_changer.rb +58 -16
- data/app/models/spree/image.rb +14 -14
- data/app/models/spree/inventory_unit.rb +2 -7
- data/app/models/spree/line_item.rb +7 -15
- data/app/models/spree/order.rb +1 -0
- data/app/models/spree/payment.rb +18 -4
- data/app/models/spree/payment/processing.rb +2 -2
- data/app/models/spree/payment_method.rb +3 -3
- data/app/models/spree/price.rb +2 -7
- data/app/models/spree/product.rb +41 -17
- data/app/models/spree/promotion/rules/option_value.rb +1 -1
- data/app/models/spree/promotion/rules/product.rb +2 -1
- data/app/models/spree/promotion/rules/user.rb +2 -1
- data/app/models/spree/refund.rb +2 -2
- data/app/models/spree/return_item/eligibility_validator/default.rb +0 -2
- data/app/models/spree/return_item/eligibility_validator/{r_m_a_required.rb → rma_required.rb} +0 -0
- data/app/models/spree/shipment.rb +1 -1
- data/app/models/spree/shipping_method.rb +1 -5
- data/app/models/spree/shipping_rate.rb +2 -11
- data/app/models/spree/stock/availability_validator.rb +3 -4
- data/app/models/spree/stock_item.rb +1 -5
- data/app/models/spree/store.rb +55 -2
- data/app/models/spree/store_credit.rb +1 -1
- data/app/models/spree/variant.rb +9 -16
- data/app/models/spree/zone.rb +13 -4
- data/app/paginators/spree/shared/paginate.rb +8 -1
- data/app/presenters/spree/variant_presenter.rb +2 -5
- data/app/services/spree/account/addresses/create.rb +6 -1
- data/app/services/spree/account/addresses/{base.rb → helper.rb} +1 -3
- data/app/services/spree/account/addresses/update.rb +6 -1
- data/app/services/spree/build_localized_redirect_url.rb +101 -0
- data/app/services/spree/cart/estimate_shipping_rates.rb +1 -1
- data/app/services/spree/compare_line_items.rb +4 -2
- data/app/sorters/spree/base_sorter.rb +35 -0
- data/app/sorters/spree/orders/sort.rb +1 -37
- data/app/sorters/spree/products/sort.rb +9 -32
- data/app/validators/email_validator.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/initializers/inflections.rb +3 -0
- data/config/initializers/rails61_fixes.rb +3 -0
- data/config/locales/en.yml +31 -60
- 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/20130326175857_add_stock_location_to_rma.rb +1 -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/20201127084048_add_default_country_kind_to_spree_zones.rb +5 -0
- data/db/migrate/20210112193440_remove_contact_email_from_spree_stores.rb +5 -0
- data/db/migrate/20210114182625_create_spree_payment_methods_stores.rb +10 -0
- data/db/migrate/20210114220232_migrate_data_payment_methods_stores.rb +15 -0
- data/db/migrate/20210117112551_remove_store_id_from_spree_payment_methods.rb +5 -0
- 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/product_filters.rb +3 -3
- data/lib/spree/core/version.rb +3 -1
- data/lib/spree/i18n.rb +17 -19
- data/lib/spree/permitted_attributes.rb +2 -2
- data/lib/spree/service_module.rb +8 -4
- data/lib/spree/testing_support/capybara_config.rb +1 -1
- 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/shipment_factory.rb +7 -9
- 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/factories/zone_factory.rb +16 -13
- 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/lib/spree/testing_support/order_walkthrough.rb +8 -3
- data/lib/spree/testing_support/rspec_retry_config.rb +10 -0
- data/spree_core.gemspec +5 -4
- metadata +71 -26
- 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
- data/lib/spree/i18n/base.rb +0 -17
- data/lib/spree/i18n/initializer.rb +0 -1
@@ -0,0 +1,15 @@
|
|
1
|
+
class MigrateDataPaymentMethodsStores < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
Spree::PaymentMethod.all.each do |payment_method|
|
4
|
+
next if payment_method.store_ids.any?
|
5
|
+
|
6
|
+
if payment_method[:store_id].present?
|
7
|
+
payment_method.store_ids = payment_method[:store_id]
|
8
|
+
else
|
9
|
+
payment_method.store_ids = Spree::Store.ids
|
10
|
+
end
|
11
|
+
|
12
|
+
payment_method.save
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddSupportedLocalesToSpreeStores < ActiveRecord::Migration[6.0]
|
2
|
+
def change
|
3
|
+
unless column_exists?(:spree_stores, :supported_locales)
|
4
|
+
add_column :spree_stores, :supported_locales, :string
|
5
|
+
Spree::Store.reset_column_information
|
6
|
+
Spree::Store.all.each do |store|
|
7
|
+
store.update_attribute(:supported_locales, store.default_locale)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class MigrateSpreeI18nGlobalizeConfig < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
locales = []
|
4
|
+
|
5
|
+
if defined?(SpreeI18n) && defined?(SpreeI18n::Config)
|
6
|
+
locales = (locales << SpreeI18n::Config[:available_locales]).flatten.uniq.compact
|
7
|
+
end
|
8
|
+
|
9
|
+
if defined?(SpreeGlobalize) && defined?(SpreeGlobalize::Config)
|
10
|
+
locales = (locales << SpreeGlobalize::Config[:supported_locales]).flatten.uniq.compact
|
11
|
+
end
|
12
|
+
|
13
|
+
default_store = Spree::Store.default
|
14
|
+
if default_store.supported_locales.blank? || default_store.supported_locales == default_store.default_locale
|
15
|
+
locales = (locales << default_store.default_locale).uniq.compact.join(',')
|
16
|
+
default_store.update(supported_locales: locales)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def down
|
21
|
+
end
|
22
|
+
end
|
@@ -10,7 +10,8 @@ module Spree
|
|
10
10
|
class_option :migrate, type: :boolean, default: true, banner: 'Run Spree migrations'
|
11
11
|
class_option :seed, type: :boolean, default: true, banner: 'load seed data (migrations must be run)'
|
12
12
|
class_option :sample, type: :boolean, default: true, banner: 'load sample data (migrations must be run)'
|
13
|
-
class_option :
|
13
|
+
class_option :install_storefront, type: :boolean, default: true, banner: 'installs storefront configuration files'
|
14
|
+
class_option :copy_storefront, type: :boolean, default: false, banner: 'copy all storefront views and stylesheets'
|
14
15
|
class_option :auto_accept, type: :boolean
|
15
16
|
class_option :user_class, type: :string
|
16
17
|
class_option :admin_email, type: :string
|
@@ -30,6 +31,7 @@ module Spree
|
|
30
31
|
@run_migrations = options[:migrate]
|
31
32
|
@load_seed_data = options[:seed]
|
32
33
|
@load_sample_data = options[:sample]
|
34
|
+
@install_storefront = options[:install_storefront]
|
33
35
|
@copy_storefront = options[:copy_storefront]
|
34
36
|
|
35
37
|
unless @run_migrations
|
@@ -40,11 +42,6 @@ module Spree
|
|
40
42
|
|
41
43
|
def add_files
|
42
44
|
template 'config/initializers/spree.rb', 'config/initializers/spree.rb'
|
43
|
-
|
44
|
-
if Spree::Core::Engine.frontend_available? || Rails.env.test?
|
45
|
-
template 'config/initializers/spree_storefront.rb', 'config/initializers/spree_storefront.rb'
|
46
|
-
template 'config/spree_storefront.yml', 'config/spree_storefront.yml'
|
47
|
-
end
|
48
45
|
end
|
49
46
|
|
50
47
|
def additional_tweaks
|
@@ -91,6 +88,12 @@ module Spree
|
|
91
88
|
empty_directory 'app/overrides'
|
92
89
|
end
|
93
90
|
|
91
|
+
def install_storefront
|
92
|
+
if @install_storefront && Spree::Core::Engine.frontend_available?
|
93
|
+
generate 'spree:frontend:install'
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
94
97
|
def copy_storefront
|
95
98
|
if @copy_storefront && Spree::Core::Engine.frontend_available?
|
96
99
|
generate 'spree:frontend:copy_storefront'
|
data/lib/spree/core.rb
CHANGED
@@ -105,4 +105,5 @@ require 'spree/core/controller_helpers/order'
|
|
105
105
|
require 'spree/core/controller_helpers/search'
|
106
106
|
require 'spree/core/controller_helpers/store'
|
107
107
|
require 'spree/core/controller_helpers/strong_parameters'
|
108
|
-
require 'spree/core/controller_helpers/
|
108
|
+
require 'spree/core/controller_helpers/locale'
|
109
|
+
require 'spree/core/controller_helpers/currency'
|
@@ -76,7 +76,9 @@ module Spree
|
|
76
76
|
redirect_to spree.forbidden_path
|
77
77
|
else
|
78
78
|
store_location
|
79
|
-
if
|
79
|
+
if request.fullpath.match(Spree.admin_path) && defined?(spree.admin_login_path)
|
80
|
+
redirect_to spree.admin_login_path
|
81
|
+
elsif respond_to?(:spree_login_path)
|
80
82
|
redirect_to spree_login_path
|
81
83
|
elsif spree.respond_to?(:root_path)
|
82
84
|
redirect_to spree.root_path
|
@@ -10,8 +10,6 @@ module Spree
|
|
10
10
|
|
11
11
|
layout :get_layout
|
12
12
|
|
13
|
-
before_action :set_user_language
|
14
|
-
|
15
13
|
protected
|
16
14
|
|
17
15
|
# can be used in views as well as controllers.
|
@@ -43,12 +41,12 @@ module Spree
|
|
43
41
|
private
|
44
42
|
|
45
43
|
def set_user_language
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
44
|
+
ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
|
45
|
+
ControllerHelpers::Common#set_user_language is deprecated and will be removed in Spree 5.0.
|
46
|
+
Please use `before_action :set_locale` instead
|
47
|
+
DEPRECATION
|
48
|
+
|
49
|
+
set_locale
|
52
50
|
end
|
53
51
|
|
54
52
|
# Returns which layout to render.
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Currency
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
helper_method :supported_currencies
|
9
|
+
helper_method :supported_currencies_for_all_stores
|
10
|
+
helper_method :current_currency
|
11
|
+
helper_method :supported_currency?
|
12
|
+
helper_method :currency_param
|
13
|
+
end
|
14
|
+
|
15
|
+
def current_currency
|
16
|
+
@current_currency ||= if defined?(session) && session.key?(:currency) && supported_currency?(session[:currency])
|
17
|
+
session[:currency]
|
18
|
+
elsif params[:currency].present? && supported_currency?(params[:currency])
|
19
|
+
params[:currency]
|
20
|
+
elsif current_store.present?
|
21
|
+
current_store.default_currency
|
22
|
+
else
|
23
|
+
Spree::Config[:currency]
|
24
|
+
end&.upcase
|
25
|
+
end
|
26
|
+
|
27
|
+
def supported_currencies
|
28
|
+
@supported_currencies ||= current_store&.supported_currencies_list
|
29
|
+
end
|
30
|
+
|
31
|
+
def supported_currencies_for_all_stores
|
32
|
+
@supported_currencies_for_all_stores ||= begin
|
33
|
+
(
|
34
|
+
Spree::Store.pluck(:supported_currencies).map { |c| c&.split(',') }.flatten + Spree::Store.pluck(:default_currency)
|
35
|
+
).
|
36
|
+
compact.uniq.map { |code| ::Money::Currency.find(code.strip) }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def supported_currency?(currency_iso_code)
|
41
|
+
return false if supported_currencies.nil?
|
42
|
+
|
43
|
+
supported_currencies.map(&:iso_code).include?(currency_iso_code.upcase)
|
44
|
+
end
|
45
|
+
|
46
|
+
def currency_param
|
47
|
+
return if current_currency == current_store.default_currency
|
48
|
+
|
49
|
+
current_currency
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Locale
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
before_action :set_locale
|
9
|
+
|
10
|
+
helper_method :supported_locales
|
11
|
+
helper_method :supported_locales_for_all_stores
|
12
|
+
helper_method :current_locale
|
13
|
+
helper_method :supported_locale?
|
14
|
+
helper_method :available_locales
|
15
|
+
helper_method :locale_param
|
16
|
+
end
|
17
|
+
|
18
|
+
def set_locale
|
19
|
+
I18n.locale = current_locale
|
20
|
+
end
|
21
|
+
|
22
|
+
def current_locale
|
23
|
+
@current_locale ||= if params[:locale].present? && supported_locale?(params[:locale])
|
24
|
+
params[:locale]
|
25
|
+
elsif respond_to?(:config_locale, true) && config_locale.present?
|
26
|
+
config_locale
|
27
|
+
else
|
28
|
+
current_store&.default_locale || Rails.application.config.i18n.default_locale || I18n.default_locale
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def supported_locales
|
33
|
+
@supported_locales ||= current_store&.supported_locales_list
|
34
|
+
end
|
35
|
+
|
36
|
+
def supported_locale?(locale_code)
|
37
|
+
return false if supported_locales.nil?
|
38
|
+
|
39
|
+
supported_locales.include?(locale_code&.to_s)
|
40
|
+
end
|
41
|
+
|
42
|
+
def supported_locales_for_all_stores
|
43
|
+
@supported_locales_for_all_stores ||= Spree.available_locales
|
44
|
+
end
|
45
|
+
|
46
|
+
def available_locales
|
47
|
+
Spree::Store.available_locales
|
48
|
+
end
|
49
|
+
|
50
|
+
def locale_param
|
51
|
+
return if I18n.locale.to_s == current_store.default_locale || current_store.default_locale.nil?
|
52
|
+
|
53
|
+
I18n.locale.to_s
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -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+
|
@@ -68,9 +68,9 @@ module Spree
|
|
68
68
|
def self.price_filter
|
69
69
|
v = Spree::Price.arel_table
|
70
70
|
conds = [[Spree.t(:under_price, price: format_price(10)), v[:amount].lteq(10)],
|
71
|
-
["#{format_price(10)} - #{format_price(15)}", v[:amount].
|
72
|
-
["#{format_price(15)} - #{format_price(18)}", v[:amount].
|
73
|
-
["#{format_price(18)} - #{format_price(20)}", v[:amount].
|
71
|
+
["#{format_price(10)} - #{format_price(15)}", v[:amount].between(10..15)],
|
72
|
+
["#{format_price(15)} - #{format_price(18)}", v[:amount].between(15..18)],
|
73
|
+
["#{format_price(18)} - #{format_price(20)}", v[:amount].between(18..20)],
|
74
74
|
[Spree.t(:or_over_price, price: format_price(20)), v[:amount].gteq(20)]]
|
75
75
|
{
|
76
76
|
name: Spree.t(:price_range),
|
data/lib/spree/core/version.rb
CHANGED
data/lib/spree/i18n.rb
CHANGED
@@ -1,35 +1,33 @@
|
|
1
1
|
require 'i18n'
|
2
2
|
require 'active_support/core_ext/array/extract_options'
|
3
|
-
require '
|
3
|
+
require 'action_view'
|
4
4
|
|
5
5
|
module Spree
|
6
|
-
|
7
|
-
|
6
|
+
class TranslationHelperWrapper
|
7
|
+
include ActionView::Helpers::TranslationHelper
|
8
|
+
end
|
8
9
|
|
9
10
|
class << self
|
10
11
|
# Add spree namespace and delegate to Rails TranslationHelper for some nice
|
11
12
|
# extra functionality. e.g return reasonable strings for missing translations
|
12
|
-
def translate(
|
13
|
-
|
13
|
+
def translate(key, options = {})
|
14
|
+
options[:scope] = [*options[:scope]].unshift(:spree).uniq
|
14
15
|
|
15
|
-
options
|
16
|
-
options[:scope] = [*options[:scope]].unshift(:spree)
|
17
|
-
args << options
|
18
|
-
super(*args)
|
16
|
+
TranslationHelperWrapper.new.translate(key, **options)
|
19
17
|
end
|
20
18
|
|
21
|
-
|
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
|
22
27
|
|
23
|
-
|
24
|
-
Spree::ViewContext.context
|
28
|
+
(locales + locales_from_i18n).uniq.compact
|
25
29
|
end
|
26
30
|
|
27
|
-
|
28
|
-
if context
|
29
|
-
path = context.instance_variable_get('@virtual_path')
|
30
|
-
|
31
|
-
path&.gsub(/spree/, '')
|
32
|
-
end
|
33
|
-
end
|
31
|
+
alias t translate
|
34
32
|
end
|
35
33
|
end
|
@@ -99,9 +99,9 @@ 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, :
|
102
|
+
:description, :address, :contact_phone, :supported_locales,
|
103
103
|
:default_locale, :default_country_id, :supported_currencies,
|
104
|
-
:new_order_notifications_email, :mailer_logo, :checkout_zone_id]
|
104
|
+
:new_order_notifications_email, :mailer_logo, :checkout_zone_id, :seo_robots]
|
105
105
|
|
106
106
|
@@store_credit_attributes = %i[amount currency category_id memo]
|
107
107
|
|
data/lib/spree/service_module.rb
CHANGED
@@ -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
|
@@ -47,7 +47,11 @@ module Spree
|
|
47
47
|
def call(input = nil)
|
48
48
|
input ||= {}
|
49
49
|
@_passed_input = Result.new(true, input)
|
50
|
-
result =
|
50
|
+
result = if input.is_a?(Hash)
|
51
|
+
super(**input)
|
52
|
+
else
|
53
|
+
super(input)
|
54
|
+
end
|
51
55
|
@_passed_input = result if result.is_a? Result
|
52
56
|
enforce_data_format
|
53
57
|
@_passed_input
|
@@ -71,7 +75,7 @@ module Spree
|
|
71
75
|
end
|
72
76
|
|
73
77
|
begin
|
74
|
-
@_passed_input = callable.call(
|
78
|
+
@_passed_input = callable.call(**@_passed_input.value)
|
75
79
|
rescue ArgumentError => e
|
76
80
|
if e.message.include? 'missing'
|
77
81
|
raise IncompatibleParamsPassed, "You didn't pass #{e.message} to callable '#{callable.name}'"
|