solidus_core 3.4.2 → 4.1.0
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/README.md +1 -1
- data/app/controllers/spree/base_controller.rb +0 -2
- data/app/helpers/spree/products_helper.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +0 -17
- data/app/models/concerns/spree/default_price.rb +0 -15
- data/app/models/concerns/spree/ransackable_attributes.rb +0 -21
- data/app/models/spree/adjustment.rb +0 -13
- data/app/models/spree/carton.rb +1 -1
- data/app/models/spree/fulfilment_changer.rb +2 -14
- data/app/models/spree/option_value.rb +2 -11
- data/app/models/spree/order.rb +23 -39
- data/app/models/spree/order_contents.rb +2 -2
- data/app/models/spree/order_merger.rb +2 -4
- data/app/models/spree/order_updater.rb +3 -30
- data/app/models/spree/payment.rb +5 -37
- data/app/models/spree/product/scopes.rb +0 -5
- data/app/models/spree/product.rb +3 -10
- data/app/models/spree/promotion/rules/item_total.rb +0 -11
- data/app/models/spree/promotion.rb +7 -30
- data/app/models/spree/promotion_rule.rb +0 -5
- data/app/models/spree/refund.rb +1 -1
- data/app/models/spree/taxon/paperclip_attachment.rb +1 -1
- data/app/models/spree/taxon.rb +2 -2
- data/app/models/spree/taxonomy.rb +1 -1
- data/app/models/spree/variant/price_selector.rb +1 -14
- data/app/models/spree/variant.rb +1 -17
- data/bin/rails +13 -0
- data/config/locales/en.yml +0 -1
- data/db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb +16 -0
- data/db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb +5 -0
- data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +5 -0
- data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +6 -0
- data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +13 -0
- data/db/migrate/20230425103509_remove_taxon_position.rb +5 -0
- data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +11 -0
- data/lib/generators/solidus/install/app_templates/frontend/none.rb +1 -2
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -3
- data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +2 -14
- data/lib/generators/solidus/install/app_templates/payment_method/stripe.rb +5 -0
- data/lib/generators/solidus/install/install_generator.rb +59 -153
- data/lib/spree/app_configuration.rb +10 -82
- data/lib/spree/bus.rb +2 -11
- data/lib/spree/core/controller_helpers/auth.rb +0 -16
- data/lib/spree/core/engine.rb +11 -31
- data/lib/spree/core/importer/order.rb +1 -1
- data/lib/spree/core/validators/email.rb +0 -4
- data/lib/spree/core/version.rb +2 -2
- data/lib/spree/core.rb +0 -2
- data/lib/spree/migration_helpers.rb +3 -3
- data/lib/spree/permission_sets/configuration_display.rb +19 -1
- data/lib/spree/permission_sets/configuration_management.rb +18 -1
- data/lib/spree/permission_sets/dashboard_display.rb +5 -0
- data/lib/spree/permission_sets/default_customer.rb +29 -0
- data/lib/spree/permission_sets/order_display.rb +19 -0
- data/lib/spree/permission_sets/order_management.rb +18 -0
- data/lib/spree/permission_sets/product_display.rb +14 -0
- data/lib/spree/permission_sets/product_management.rb +16 -0
- data/lib/spree/permission_sets/promotion_display.rb +10 -0
- data/lib/spree/permission_sets/promotion_management.rb +10 -0
- data/lib/spree/permission_sets/restricted_stock_display.rb +5 -0
- data/lib/spree/permission_sets/restricted_stock_management.rb +5 -0
- data/lib/spree/permission_sets/stock_display.rb +4 -0
- data/lib/spree/permission_sets/stock_management.rb +4 -0
- data/lib/spree/permission_sets/super_user.rb +5 -0
- data/lib/spree/permission_sets/user_display.rb +4 -0
- data/lib/spree/permission_sets/user_management.rb +9 -0
- data/lib/spree/preferences/preferable_class_methods.rb +1 -25
- data/lib/spree/testing_support/common_rake.rb +5 -1
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +4 -8
- data/lib/spree/testing_support/dummy_app.rb +1 -7
- data/lib/spree/testing_support/factories/address_factory.rb +0 -7
- data/lib/spree/testing_support/factories/adjustment_factory.rb +0 -11
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/calculator_factory.rb +0 -5
- data/lib/spree/testing_support/factories/carton_factory.rb +0 -8
- data/lib/spree/testing_support/factories/country_factory.rb +0 -5
- data/lib/spree/testing_support/factories/credit_card_factory.rb +0 -5
- data/lib/spree/testing_support/factories/customer_return_factory.rb +0 -9
- data/lib/spree/testing_support/factories/image_factory.rb +0 -5
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +0 -10
- data/lib/spree/testing_support/factories/line_item_factory.rb +0 -8
- data/lib/spree/testing_support/factories/option_type_factory.rb +0 -8
- data/lib/spree/testing_support/factories/option_value_factory.rb +0 -5
- data/lib/spree/testing_support/factories/order_factory.rb +0 -12
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
- data/lib/spree/testing_support/factories/payment_factory.rb +0 -10
- data/lib/spree/testing_support/factories/payment_method_factory.rb +0 -5
- data/lib/spree/testing_support/factories/price_factory.rb +0 -7
- data/lib/spree/testing_support/factories/product_factory.rb +0 -11
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +0 -8
- data/lib/spree/testing_support/factories/product_property_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -5
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -8
- data/lib/spree/testing_support/factories/property_factory.rb +0 -5
- data/lib/spree/testing_support/factories/refund_factory.rb +0 -8
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +0 -7
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +0 -5
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +0 -9
- data/lib/spree/testing_support/factories/return_item_factory.rb +0 -9
- data/lib/spree/testing_support/factories/return_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/role_factory.rb +0 -5
- data/lib/spree/testing_support/factories/shipment_factory.rb +0 -10
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +0 -5
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +0 -9
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +0 -8
- data/lib/spree/testing_support/factories/state_factory.rb +0 -8
- data/lib/spree/testing_support/factories/stock_item_factory.rb +0 -8
- data/lib/spree/testing_support/factories/stock_location_factory.rb +0 -9
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +0 -7
- data/lib/spree/testing_support/factories/stock_package_factory.rb +0 -8
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +0 -8
- data/lib/spree/testing_support/factories/store_credit_factory.rb +0 -9
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -5
- data/lib/spree/testing_support/factories/store_factory.rb +0 -5
- data/lib/spree/testing_support/factories/tax_category_factory.rb +0 -8
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +0 -9
- data/lib/spree/testing_support/factories/taxon_factory.rb +0 -7
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +0 -5
- data/lib/spree/testing_support/factories/user_factory.rb +0 -9
- data/lib/spree/testing_support/factories/variant_factory.rb +0 -10
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +0 -8
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +0 -9
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +0 -8
- data/lib/spree/testing_support/factories/zone_factory.rb +0 -8
- data/lib/spree/testing_support/factory_bot.rb +4 -28
- data/lib/spree/testing_support/sequences.rb +0 -5
- data/solidus_core.gemspec +3 -3
- metadata +48 -58
- data/app/subscribers/spree/mailer_subscriber.rb +0 -29
- data/lib/generators/solidus/install/app_templates/frontend/break_down_solidus_gem.rb +0 -54
- data/lib/generators/solidus/install/app_templates/frontend/classic.rb +0 -16
- data/lib/generators/solidus/install/app_templates/payment_method/bolt.rb +0 -13
- data/lib/spree/core/controller_helpers/current_host.rb +0 -19
- data/lib/spree/event/adapters/active_support_notifications.rb +0 -67
- data/lib/spree/event/configuration.rb +0 -25
- data/lib/spree/event/subscriber.rb +0 -86
- data/lib/spree/event/subscriber_registry.rb +0 -92
- data/lib/spree/event.rb +0 -119
- data/lib/spree/promotion/match_policies.rb +0 -2
- data/lib/spree/rails_compatibility.rb +0 -106
- data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +0 -10
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/spree/frontend/all.css +0 -9
- data/lib/spree/testing_support/dummy_app/views/layouts/application.html.erb +0 -1
- data/lib/spree/testing_support/factories.rb +0 -11
- data/lib/spree/testing_support.rb +0 -36
- data/lib/tasks/solidus/check_orders_with_invalid_email.rake +0 -18
- data/lib/tasks/solidus/split_promotions_with_any_match_policy.rake +0 -33
@@ -1,92 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
module Event
|
5
|
-
class SubscriberRegistry
|
6
|
-
def initialize
|
7
|
-
@registry = {}
|
8
|
-
@semaphore = Mutex.new
|
9
|
-
end
|
10
|
-
|
11
|
-
def register(subscriber)
|
12
|
-
registry[subscriber.name] ||= {}
|
13
|
-
end
|
14
|
-
|
15
|
-
def activate_autoloadable_subscribers
|
16
|
-
require_subscriber_files
|
17
|
-
activate_all_subscribers
|
18
|
-
end
|
19
|
-
|
20
|
-
def activate_all_subscribers
|
21
|
-
registry.each_key { |subscriber_name| activate_subscriber(subscriber_name.constantize) }
|
22
|
-
end
|
23
|
-
|
24
|
-
def deactivate_all_subscribers
|
25
|
-
registry.each_key { |subscriber_name| deactivate_subscriber(subscriber_name.constantize) }
|
26
|
-
end
|
27
|
-
|
28
|
-
def activate_subscriber(subscriber)
|
29
|
-
return unless registry[subscriber.name]
|
30
|
-
|
31
|
-
subscriber.event_actions.each do |event_action, event_name|
|
32
|
-
@semaphore.synchronize do
|
33
|
-
unsafe_deactivate_subscriber(subscriber, event_action)
|
34
|
-
|
35
|
-
subscription = Spree::Event.subscribe(event_name) { |event| subscriber.send(event_action, event) }
|
36
|
-
|
37
|
-
# deprecated mappings, to be removed when Solidus 2.10 is not supported anymore:
|
38
|
-
if subscriber.respond_to?("#{event_action}_handler=")
|
39
|
-
subscriber.send("#{event_action}_handler=", subscription)
|
40
|
-
end
|
41
|
-
|
42
|
-
registry[subscriber.name][event_action] = subscription
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def deactivate_subscriber(subscriber, event_action_name = nil)
|
48
|
-
@semaphore.synchronize do
|
49
|
-
unsafe_deactivate_subscriber(subscriber, event_action_name)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
|
55
|
-
attr_reader :registry
|
56
|
-
|
57
|
-
# Loads all Solidus' core and application's event subscribers files.
|
58
|
-
# The latter are loaded automatically only when the preference
|
59
|
-
# Spree::Config.events.autoload_subscribers is set to a truthy value.
|
60
|
-
#
|
61
|
-
# Files must be placed under the directory `app/subscribers` and their
|
62
|
-
# name must end with `_subscriber.rb`.
|
63
|
-
#
|
64
|
-
# Loading the files has the side effect of adding their module to the
|
65
|
-
# list in Spree::Event.subscribers.
|
66
|
-
def require_subscriber_files
|
67
|
-
require_dependency(
|
68
|
-
Spree::Core::Engine.root.join('app', 'subscribers', 'spree', 'mailer_subscriber.rb')
|
69
|
-
)
|
70
|
-
|
71
|
-
pattern = "app/subscribers/**/*_subscriber.rb"
|
72
|
-
|
73
|
-
# Load application subscribers, only when the flag is set to true:
|
74
|
-
if Spree::Config.events.autoload_subscribers
|
75
|
-
Rails.root.glob(pattern) { |c| require_dependency(c.to_s) }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def unsafe_deactivate_subscriber(subscriber, event_action_name = nil)
|
80
|
-
to_unsubscribe = Array.wrap(event_action_name || subscriber.event_actions.keys)
|
81
|
-
|
82
|
-
to_unsubscribe.each do |event_action|
|
83
|
-
if (subscription = registry.dig(subscriber.name, event_action))
|
84
|
-
Spree::Event.unsubscribe(subscription)
|
85
|
-
|
86
|
-
registry[subscriber.name].delete(event_action)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
data/lib/spree/event.rb
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'event/adapters/active_support_notifications'
|
4
|
-
require_relative 'event/subscriber_registry'
|
5
|
-
require_relative 'event/configuration'
|
6
|
-
require_relative 'event/subscriber'
|
7
|
-
|
8
|
-
module Spree
|
9
|
-
module Event
|
10
|
-
extend self
|
11
|
-
|
12
|
-
delegate :activate_autoloadable_subscribers, :activate_all_subscribers, :deactivate_all_subscribers, to: :subscriber_registry
|
13
|
-
|
14
|
-
# Allows to trigger events that can be subscribed using #subscribe. An
|
15
|
-
# optional block can be passed that will be executed immediately. The
|
16
|
-
# actual code implementation is delegated to the adapter.
|
17
|
-
#
|
18
|
-
# @param [String] event_name the name of the event. The suffix ".spree"
|
19
|
-
# will be added automatically if not present
|
20
|
-
# @param [Hash] opts a list of options to be passed to the triggered event
|
21
|
-
#
|
22
|
-
# @example Trigger an event named 'order_finalized'
|
23
|
-
# Spree::Event.fire 'order_finalized', order: @order do
|
24
|
-
# @order.complete!
|
25
|
-
# end
|
26
|
-
def fire(event_name, opts = {})
|
27
|
-
adapter.fire normalize_name(event_name), opts do
|
28
|
-
yield opts if block_given?
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# Subscribe to an event with the given name. The provided block is executed
|
33
|
-
# every time the subscribed event is fired.
|
34
|
-
#
|
35
|
-
# @param [String, Regexp] event_name the name of the event.
|
36
|
-
# When String, the suffix ".spree" will be added automatically if not present,
|
37
|
-
# when using the default adapter for ActiveSupportNotifications.
|
38
|
-
# When Regexp, due to the unpredictability of all possible regexp combinations,
|
39
|
-
# adding the suffix is developer's responsibility (if you don't, you will
|
40
|
-
# subscribe to all notifications, including internal Rails notifications
|
41
|
-
# as well).
|
42
|
-
#
|
43
|
-
# @see Spree::Event::Adapters::ActiveSupportNotifications#normalize_name
|
44
|
-
#
|
45
|
-
# @return a subscription object that can be used as reference in order
|
46
|
-
# to remove the subscription
|
47
|
-
#
|
48
|
-
# @example Subscribe to the `order_finalized` event
|
49
|
-
# Spree::Event.subscribe 'order_finalized' do |event|
|
50
|
-
# order = event.payload[:order]
|
51
|
-
# Spree::Mailer.order_finalized(order).deliver_later
|
52
|
-
# end
|
53
|
-
#
|
54
|
-
# @see Spree::Event#unsubscribe
|
55
|
-
def subscribe(event_name, &block)
|
56
|
-
name = normalize_name(event_name)
|
57
|
-
listener_names << name
|
58
|
-
adapter.subscribe(name, &block)
|
59
|
-
end
|
60
|
-
|
61
|
-
# Unsubscribes a whole event or a specific subscription object
|
62
|
-
#
|
63
|
-
# @param [String, Object] subscriber the event name as a string (with
|
64
|
-
# or without the ".spree" suffix) or the subscription object
|
65
|
-
#
|
66
|
-
# @example Unsubscribe a single subscription
|
67
|
-
# subscription = Spree::Event.fire 'order_finalized'
|
68
|
-
# Spree::Event.unsubscribe(subscription)
|
69
|
-
# @example Unsubscribe all `order_finalized` event subscriptions
|
70
|
-
# Spree::Event.unsubscribe('order_finalized')
|
71
|
-
# @example Unsubscribe an event by name with explicit prefix
|
72
|
-
# Spree::Event.unsubscribe('order_finalized.spree')
|
73
|
-
def unsubscribe(subscriber)
|
74
|
-
name_or_subscriber = subscriber.is_a?(String) ? normalize_name(subscriber) : subscriber
|
75
|
-
adapter.unsubscribe(name_or_subscriber)
|
76
|
-
end
|
77
|
-
|
78
|
-
# Lists all subscriptions currently registered under the ".spree"
|
79
|
-
# namespace. Actual implementation is delegated to the adapter
|
80
|
-
#
|
81
|
-
# @return [Hash] an hash with event names as keys and arrays of subscriptions
|
82
|
-
# as values
|
83
|
-
#
|
84
|
-
# @example Current subscriptions
|
85
|
-
# Spree::Event.listeners
|
86
|
-
# # => {"order_finalized.spree"=> [#<ActiveSupport...>],
|
87
|
-
# "reimbursement_reimbursed.spree"=> [#<ActiveSupport...>]}
|
88
|
-
def listeners
|
89
|
-
adapter.listeners_for(listener_names)
|
90
|
-
end
|
91
|
-
|
92
|
-
# The adapter used by Spree::Event, defaults to
|
93
|
-
# Spree::Event::Adapters::ActiveSupportNotifications
|
94
|
-
#
|
95
|
-
# @example Change the adapter
|
96
|
-
# Spree::Config.events.adapter = "Spree::EventBus.new"
|
97
|
-
#
|
98
|
-
# @see Spree::AppConfiguration
|
99
|
-
def adapter
|
100
|
-
Spree::Config.events.adapter
|
101
|
-
end
|
102
|
-
|
103
|
-
# @!attribute [r] subscribers
|
104
|
-
# @return <Spree::Event::SubscriberRegistry> The registry for supporting class reloading for Spree::Event::Subscriber instances
|
105
|
-
def subscriber_registry
|
106
|
-
Spree::Config.events.subscriber_registry
|
107
|
-
end
|
108
|
-
|
109
|
-
private
|
110
|
-
|
111
|
-
def normalize_name(name)
|
112
|
-
adapter.normalize_name(name)
|
113
|
-
end
|
114
|
-
|
115
|
-
def listener_names
|
116
|
-
@listeners_names ||= Set.new
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'rails/gem_version'
|
4
|
-
|
5
|
-
module Spree
|
6
|
-
# Supported Rails versions compatibility
|
7
|
-
#
|
8
|
-
# This module is meant to wrap some Rails API changes between supported
|
9
|
-
# versions. It's also meant to contain compatibility for features that we use
|
10
|
-
# internally in the Solidus code base.
|
11
|
-
module RailsCompatibility
|
12
|
-
# Method `#to_fs`
|
13
|
-
#
|
14
|
-
# Available since Rails 7.0, substitutes `#to_s(format)`
|
15
|
-
#
|
16
|
-
# It includes:
|
17
|
-
#
|
18
|
-
# ActiveSupport::NumericWithFormat
|
19
|
-
# ActiveSupport::RangeWithFormat
|
20
|
-
# ActiveSupport::TimeWithZone
|
21
|
-
# Array
|
22
|
-
# Date
|
23
|
-
# DateTime
|
24
|
-
# Time
|
25
|
-
#
|
26
|
-
# See https://github.com/rails/rails/pull/43772 &
|
27
|
-
# https://github.com/rails/rails/pull/44354
|
28
|
-
#
|
29
|
-
# TODO: Remove when deprecating Rails 6.1
|
30
|
-
def self.to_fs(value, *args, **kwargs, &block)
|
31
|
-
if version_gte?('7.0')
|
32
|
-
value.to_fs(*args, **kwargs, &block)
|
33
|
-
else
|
34
|
-
value.to_s(*args, **kwargs, &block)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# `raise_on_missing_translations` config option
|
39
|
-
#
|
40
|
-
# Changed from ActionView to I18n on Rails 6.1
|
41
|
-
#
|
42
|
-
# See https://github.com/rails/rails/pull/31571
|
43
|
-
#
|
44
|
-
# TODO: Remove when deprecating Rails 6.0
|
45
|
-
def self.raise_on_missing_translations(value)
|
46
|
-
if version_gte?('6.1')
|
47
|
-
Rails.application.config.i18n.raise_on_missing_translations = value
|
48
|
-
else
|
49
|
-
Rails.application.config.action_view.raise_on_missing_translations = value
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
# Set default image attachment adapter
|
54
|
-
#
|
55
|
-
# TODO: Remove when deprecating Rails 6.0
|
56
|
-
def self.default_image_attachment_module
|
57
|
-
if version_gte?("6.1")
|
58
|
-
"Spree::Image::ActiveStorageAttachment"
|
59
|
-
else
|
60
|
-
"Spree::Image::PaperclipAttachment"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Set default taxon attachment adapter
|
65
|
-
#
|
66
|
-
# TODO: Remove when deprecating Rails 6.0
|
67
|
-
def self.default_taxon_attachment_module
|
68
|
-
if version_gte?("6.1")
|
69
|
-
"Spree::Taxon::ActiveStorageAttachment"
|
70
|
-
else
|
71
|
-
"Spree::Taxon::PaperclipAttachment"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
# Set current host for ActiveStorage
|
76
|
-
#
|
77
|
-
# Changed from `#host` to `#url_options` on Rails 7
|
78
|
-
#
|
79
|
-
# See https://github.com/rails/rails/issues/41388
|
80
|
-
#
|
81
|
-
# TODO: Remove when deprecating Rails 6.1
|
82
|
-
def self.active_storage_url_options_host(value)
|
83
|
-
if version_gte?('7')
|
84
|
-
ActiveStorage::Current.url_options = { host: value }
|
85
|
-
else
|
86
|
-
ActiveStorage::Current.host = value
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# Default ActiveStorage variant processor
|
91
|
-
#
|
92
|
-
# Changed from `:mini_magick` to `vips` on Rails 7
|
93
|
-
#
|
94
|
-
# See https://github.com/rails/rails/issues/42744
|
95
|
-
#
|
96
|
-
# TODO: Remove when deprecating Rails 6.1
|
97
|
-
def self.variant_processor
|
98
|
-
version_gte?('7') ? :vips : :mini_magick
|
99
|
-
end
|
100
|
-
|
101
|
-
def self.version_gte?(version)
|
102
|
-
::Rails.gem_version >= Gem::Version.new(version)
|
103
|
-
end
|
104
|
-
private_class_method :version_gte?
|
105
|
-
end
|
106
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
-
// Add new JavaScript code in separate files in this directory and they'll automatically
|
3
|
-
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
-
// the compiled file.
|
6
|
-
//
|
7
|
-
//= require jquery
|
8
|
-
//= require rails-ujs
|
9
|
-
//= require spree/frontend
|
10
|
-
//= require_tree .
|
@@ -1,9 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
-
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
-
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
-
*
|
6
|
-
*= require spree/frontend
|
7
|
-
*= require_self
|
8
|
-
*= require_tree .
|
9
|
-
*/
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= yield %>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
|
5
|
-
Spree::Deprecation.warn(
|
6
|
-
"Please do not try to load factories directly. " \
|
7
|
-
'Use factory_bot_rails and rely on the default configuration instead.', caller(1)
|
8
|
-
)
|
9
|
-
|
10
|
-
Spree::TestingSupport::FactoryBot.check_version
|
11
|
-
Spree::TestingSupport::FactoryBot::PATHS.each { |path| require path }
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spree/testing_support/factory_bot'
|
4
|
-
require 'spree/deprecation'
|
5
|
-
|
6
|
-
Spree::Deprecation.warn <<-WARN
|
7
|
-
Using `require 'spree/testing_support'` is deprecated and will be removed in
|
8
|
-
Solidus 4.0.
|
9
|
-
WARN
|
10
|
-
|
11
|
-
module Spree
|
12
|
-
module TestingSupport
|
13
|
-
autoload :FactoryBot, "spree/testing_support/factory_bot"
|
14
|
-
autoload :SEQUENCES, "spree/testing_support/factory_bot"
|
15
|
-
autoload :FACTORIES, "spree/testing_support/factory_bot"
|
16
|
-
|
17
|
-
def factory_bot_paths
|
18
|
-
Spree::TestingSupport::FactoryBot.definition_file_paths
|
19
|
-
end
|
20
|
-
|
21
|
-
def check_factory_bot_version
|
22
|
-
Spree::TestingSupport::FactoryBot.check_version
|
23
|
-
end
|
24
|
-
|
25
|
-
def load_all_factories
|
26
|
-
Spree::TestingSupport::FactoryBot.add_paths_and_load!
|
27
|
-
end
|
28
|
-
|
29
|
-
deprecate(
|
30
|
-
factory_bot_paths: "Spree::TestingSupport::FactoryBot.definition_file_paths",
|
31
|
-
check_factory_bot_version: "Spree::TestingSupport::FactoryBot.check_version",
|
32
|
-
load_all_factories: "Spree::TestingSupport::FactoryBot.add_paths_and_load!",
|
33
|
-
deprecator: Spree::Deprecation
|
34
|
-
)
|
35
|
-
end
|
36
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
namespace :solidus do
|
4
|
-
desc 'Prints orders with invalid email (after fix for GHSA-qxmr-qxh6-2cc9)'
|
5
|
-
task check_orders_with_invalid_email: :environment do
|
6
|
-
matches = Spree::Order.find_each.reduce([]) do |matches, order|
|
7
|
-
order.email.nil? || Spree::EmailValidator::EMAIL_REGEXP.match?(order.email) ? matches : matches + [order]
|
8
|
-
end
|
9
|
-
if matches.any?
|
10
|
-
puts 'Email / ID / Number'
|
11
|
-
puts(matches.map do |order|
|
12
|
-
"#{order.email} / #{order.id} / #{order.number}"
|
13
|
-
end.join("\n"))
|
14
|
-
else
|
15
|
-
puts 'NO MATCHES'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
namespace :solidus do
|
4
|
-
desc "Split Promotions with 'any' match policy"
|
5
|
-
task split_promotions_with_any_match_policy: :environment do
|
6
|
-
Spree::Promotion.where(match_policy: :any).includes(:promotion_rules).all.each do |promotion|
|
7
|
-
if promotion.promotion_rules.length <= 1
|
8
|
-
promotion.update!(match_policy: :all)
|
9
|
-
elsif promotion.active?
|
10
|
-
promotion.rules.map do |rule|
|
11
|
-
new_promotion = promotion.dup
|
12
|
-
new_promotion.promotion_rules = [rule]
|
13
|
-
new_promotion.match_policy = "all"
|
14
|
-
new_promotion.promotion_actions = promotion.actions.map do |action|
|
15
|
-
new_action = action.dup
|
16
|
-
if action.respond_to?(:calculator)
|
17
|
-
new_action.calculator = action.calculator.dup
|
18
|
-
end
|
19
|
-
new_action.promotion = new_promotion
|
20
|
-
new_action.save!
|
21
|
-
new_action
|
22
|
-
end
|
23
|
-
new_promotion.expires_at = promotion.expires_at
|
24
|
-
new_promotion.starts_at = Time.current
|
25
|
-
new_promotion.save!
|
26
|
-
end
|
27
|
-
promotion.update!(expires_at: Time.current)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
Spree::Order.where(completed_at: nil).each { |order| Spree::PromotionHandler::Cart.new(order).activate }
|
32
|
-
end
|
33
|
-
end
|