spree_core 5.1.0.beta3 → 5.1.0.rc1
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/helpers/spree/base_helper.rb +6 -1
- data/app/helpers/spree/images_helper.rb +19 -16
- data/app/helpers/spree/shipment_helper.rb +12 -0
- data/app/jobs/spree/gift_cards/bulk_generate_job.rb +13 -0
- data/app/models/concerns/spree/parameterizable_name.rb +11 -0
- data/app/models/concerns/spree/payment_source_concern.rb +39 -0
- data/app/models/concerns/spree/product_scopes.rb +1 -5
- data/app/models/concerns/spree/stores/socials.rb +6 -2
- data/app/models/concerns/spree/user_methods.rb +2 -1
- data/app/models/spree/ability.rb +2 -0
- data/app/models/spree/address.rb +11 -3
- data/app/models/spree/credit_card.rb +2 -24
- data/app/models/spree/gateway/custom_payment_source_method.rb +33 -0
- data/app/models/spree/gift_card.rb +162 -0
- data/app/models/spree/gift_card_batch.rb +79 -0
- data/app/models/spree/inventory_unit.rb +11 -4
- data/app/models/spree/line_item.rb +13 -2
- data/app/models/spree/option_type.rb +5 -15
- data/app/models/spree/option_value.rb +18 -12
- data/app/models/spree/order/checkout.rb +2 -0
- data/app/models/spree/order/gift_card.rb +51 -0
- data/app/models/spree/order/store_credit.rb +20 -1
- data/app/models/spree/order.rb +51 -6
- data/app/models/spree/order_merger.rb +12 -0
- data/app/models/spree/page_sections/featured_posts.rb +4 -0
- data/app/models/spree/payment.rb +2 -1
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +1 -0
- data/app/models/spree/payment_source.rb +21 -0
- data/app/models/spree/post.rb +1 -0
- data/app/models/spree/price.rb +7 -1
- data/app/models/spree/product/slugs.rb +103 -0
- data/app/models/spree/product.rb +7 -81
- data/app/models/spree/product_property.rb +2 -2
- data/app/models/spree/promotion_handler/coupon.rb +39 -0
- data/app/models/spree/property.rb +2 -8
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -1
- data/app/models/spree/return_item.rb +4 -0
- data/app/models/spree/shipment.rb +19 -0
- data/app/models/spree/shipping_method.rb +8 -9
- data/app/models/spree/store.rb +2 -0
- data/app/models/spree/store_credit.rb +9 -6
- data/app/models/spree/store_credit_event.rb +8 -4
- data/app/models/spree/taxon.rb +8 -1
- data/app/models/spree/theme.rb +1 -1
- data/app/models/spree/variant.rb +1 -1
- data/app/models/spree/wishlist.rb +7 -0
- data/app/presenters/spree/csv/product_variant_presenter.rb +14 -3
- data/app/services/spree/addresses/phone_validator.rb +20 -0
- data/app/services/spree/cart/destroy.rb +1 -1
- data/app/services/spree/cart/recalculate.rb +1 -0
- data/app/services/spree/gift_cards/apply.rb +66 -0
- data/app/services/spree/gift_cards/redeem.rb +17 -0
- data/app/services/spree/gift_cards/remove.rb +38 -0
- data/app/services/spree/products/prepare_nested_attributes.rb +9 -2
- data/app/views/spree/addresses/_form.html.erb +1 -1
- data/app/views/spree/shared/_payment.html.erb +13 -4
- data/config/locales/en.yml +44 -14
- data/config/routes.rb +1 -0
- data/db/migrate/20250506073057_create_spree_gift_cards_and_spree_gift_card_batches.rb +37 -0
- data/db/migrate/20250530101236_enable_pg_trgm_extension.rb +13 -0
- data/db/migrate/20250605131334_add_missing_fields_to_users.rb +25 -0
- data/lib/generators/spree/install/install_generator.rb +0 -8
- data/lib/spree/core/configuration.rb +4 -0
- data/lib/spree/core/controller_helpers/store.rb +13 -1
- data/lib/spree/core/dependencies.rb +5 -0
- data/lib/spree/core/engine.rb +8 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +2 -1
- data/lib/spree/permitted_attributes.rb +23 -10
- data/lib/spree/testing_support/authorization_helpers.rb +5 -9
- data/lib/spree/testing_support/common_rake.rb +7 -1
- data/lib/spree/testing_support/factories/gift_card_batch_factory.rb +5 -0
- data/lib/spree/testing_support/factories/gift_card_factory.rb +17 -0
- data/lib/spree/testing_support/factories/page_section_factory.rb +2 -1
- data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
- data/lib/spree/testing_support/factories/payment_source_factory.rb +5 -0
- data/lib/spree/testing_support/factories/post_factory.rb +4 -0
- data/lib/spree/testing_support/factories/promotion_rule_factory.rb +4 -0
- data/lib/spree/testing_support/factories/theme_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +2 -2
- metadata +48 -11
- data/config/initializers/state_machine.rb +0 -37
@@ -12,6 +12,8 @@ module Spree
|
|
12
12
|
:digital_attributes,
|
13
13
|
:digital_link_attributes,
|
14
14
|
:export_attributes,
|
15
|
+
:gift_card_attributes,
|
16
|
+
:gift_card_batch_attributes,
|
15
17
|
:image_attributes,
|
16
18
|
:integration_attributes,
|
17
19
|
:inventory_unit_attributes,
|
@@ -105,6 +107,10 @@ module Spree
|
|
105
107
|
|
106
108
|
@@export_attributes = [:type, :format, :record_selection, :search_params]
|
107
109
|
|
110
|
+
@@gift_card_attributes = [:code, :amount, :expires_at, :user_id]
|
111
|
+
|
112
|
+
@@gift_card_batch_attributes = [:prefix, :codes_count, :amount, :expires_at]
|
113
|
+
|
108
114
|
@@image_attributes = [:alt, :attachment, :position, :viewable_type, :viewable_id]
|
109
115
|
|
110
116
|
@@integration_attributes = [:type, :active]
|
@@ -127,7 +133,7 @@ module Spree
|
|
127
133
|
|
128
134
|
@@page_attributes = [:name, :slug, :meta_title, :meta_description, :meta_keywords]
|
129
135
|
|
130
|
-
@@page_block_attributes = [:type, :name, :text, :position]
|
136
|
+
@@page_block_attributes = [:type, :name, :text, :position, :asset]
|
131
137
|
|
132
138
|
@@page_link_attributes = [:linkable_id, :linkable_type, :position, :label, :url, :open_in_new_tab]
|
133
139
|
|
@@ -145,7 +151,7 @@ module Spree
|
|
145
151
|
|
146
152
|
@@product_attributes = [
|
147
153
|
:name, :description, :available_on, :make_active_at, :discontinue_on, :permalink, :meta_description,
|
148
|
-
:meta_keywords, :price, :sku, :deleted_at, :prototype_id,
|
154
|
+
:meta_keywords, :meta_title, :price, :sku, :deleted_at, :prototype_id,
|
149
155
|
:option_values_hash, :weight, :height, :width, :depth,
|
150
156
|
:shipping_category_id, :tax_category_id,
|
151
157
|
:cost_currency, :cost_price, :compare_at_price,
|
@@ -164,7 +170,7 @@ module Spree
|
|
164
170
|
@@promotion_attributes = [:name, :description, :starts_at, :expires_at, :code, :usage_limit, :path, :match_policy,
|
165
171
|
:advertise, :promotion_category_id, :code_prefix, :kind, :number_of_codes, :multi_codes, store_ids: []]
|
166
172
|
|
167
|
-
@@promotion_rule_attributes = [:type, :preferred_match_policy, user_ids_to_add: [], product_ids_to_add: [], taxon_ids_to_add: []]
|
173
|
+
@@promotion_rule_attributes = [:type, :preferred_match_policy, preferred_eligible_values: [], user_ids_to_add: [], product_ids_to_add: [], taxon_ids_to_add: []]
|
168
174
|
|
169
175
|
@@promotion_action_attributes = [:type, :calculator_type, calculator_attributes: {}, promotion_action_line_items_attributes: [:id, :promotion_action_id, :variant_id, :quantity, :_destroy]]
|
170
176
|
|
@@ -180,11 +186,18 @@ module Spree
|
|
180
186
|
|
181
187
|
@@report_attributes = [:type, :date_from, :date_to, :currency]
|
182
188
|
|
183
|
-
@@return_authorization_attributes = [
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
189
|
+
@@return_authorization_attributes = [
|
190
|
+
:amount, :memo, :stock_location_id, :inventory_units_attributes,
|
191
|
+
:return_authorization_reason_id, {
|
192
|
+
return_items_attributes: [
|
193
|
+
:_destroy,
|
194
|
+
:id, :inventory_unit_id,
|
195
|
+
:preferred_reimbursement_type_id,
|
196
|
+
:return_authorization_id, :returned, :pre_tax_amount,
|
197
|
+
:acceptance_status, :exchange_variant_id, :resellable
|
198
|
+
]
|
199
|
+
}
|
200
|
+
]
|
188
201
|
|
189
202
|
@@return_authorization_reason_attributes = [:name, :active]
|
190
203
|
|
@@ -199,7 +212,7 @@ module Spree
|
|
199
212
|
|
200
213
|
@@shipping_category_attributes = [:name]
|
201
214
|
|
202
|
-
@@shipping_method_attributes = [:name, :code
|
215
|
+
@@shipping_method_attributes = [:name, :admin_name, :code, :tracking_url, :tax_category_id, :display_on,
|
203
216
|
:estimated_transit_business_days_min, :estimated_transit_business_days_max,
|
204
217
|
:calculator_type, :preferences, zone_ids: [], shipping_category_ids: [], calculator_attributes: {}]
|
205
218
|
|
@@ -271,7 +284,7 @@ module Spree
|
|
271
284
|
:weight, :height, :width, :depth, :sku, :barcode, :cost_currency,
|
272
285
|
:weight_unit, :dimensions_unit,
|
273
286
|
{
|
274
|
-
options: [:id, :name, :
|
287
|
+
options: [:id, :name, :option_value_presentation, :option_value_name, :position, :_destroy],
|
275
288
|
stock_items_attributes: [:id, :count_on_hand, :stock_location_id, :backorderable, :_destroy],
|
276
289
|
prices_attributes: [:id, :amount, :compare_at_amount, :currency, :_destroy],
|
277
290
|
price: {},
|
@@ -15,15 +15,11 @@ module Spree
|
|
15
15
|
include CustomAbility
|
16
16
|
|
17
17
|
def stub_authorization!(&block)
|
18
|
-
|
19
|
-
|
20
|
-
let(:user) { Spree.admin_user_class.new(email: FFaker::Internet.email) }
|
18
|
+
let(:admin_user) { FactoryBot.create(:admin_user) }
|
21
19
|
|
22
20
|
before do
|
23
|
-
allow(controller).to receive(:current_ability).and_return(ability_class.new(nil))
|
24
|
-
|
25
21
|
if defined?(Spree::Admin::BaseController)
|
26
|
-
allow_any_instance_of(Spree::Admin::BaseController).to receive(:try_spree_current_user).and_return(
|
22
|
+
allow_any_instance_of(Spree::Admin::BaseController).to receive(:try_spree_current_user).and_return(admin_user)
|
27
23
|
end
|
28
24
|
end
|
29
25
|
end
|
@@ -44,12 +40,11 @@ module Spree
|
|
44
40
|
ability_class.register_ability(ability)
|
45
41
|
end
|
46
42
|
|
47
|
-
let(:
|
43
|
+
let(:admin_user) { FactoryBot.create(:admin_user) }
|
48
44
|
|
49
45
|
before do
|
50
|
-
allow(Spree.admin_user_class).to receive(:find_by).and_return(user)
|
51
46
|
if defined?(Spree::Admin::BaseController)
|
52
|
-
allow_any_instance_of(Spree::Admin::BaseController).to receive(:try_spree_current_user).and_return(
|
47
|
+
allow_any_instance_of(Spree::Admin::BaseController).to receive(:try_spree_current_user).and_return(admin_user)
|
53
48
|
end
|
54
49
|
end
|
55
50
|
end
|
@@ -73,4 +68,5 @@ end
|
|
73
68
|
RSpec.configure do |config|
|
74
69
|
config.extend Spree::TestingSupport::AuthorizationHelpers::Controller, type: :controller
|
75
70
|
config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :feature
|
71
|
+
config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :request
|
76
72
|
end
|
@@ -33,13 +33,19 @@ namespace :common do
|
|
33
33
|
system('bin/rails stimulus:install')
|
34
34
|
end
|
35
35
|
|
36
|
+
# install devise if it's not the legacy user, useful for testing storefront
|
37
|
+
if args[:authentication] == 'devise' && args[:user_class] != 'Spree::LegacyUser'
|
38
|
+
system('bin/rails g devise:install --force --auto-accept')
|
39
|
+
system("bin/rails g devise #{args[:user_class]} --force --auto-accept")
|
40
|
+
system('rm -rf spec') # we need to cleanup factories created by devise to avoid naming conflict
|
41
|
+
end
|
42
|
+
|
36
43
|
Spree::InstallGenerator.start [
|
37
44
|
"--lib_name=#{ENV['LIB_NAME']}",
|
38
45
|
'--auto-accept',
|
39
46
|
'--migrate=false',
|
40
47
|
'--seed=false',
|
41
48
|
'--sample=false',
|
42
|
-
'--copy_storefront=false',
|
43
49
|
"--install_storefront=#{args[:install_storefront]}",
|
44
50
|
"--install_admin=#{args[:install_admin]}",
|
45
51
|
"--user_class=#{args[:user_class]}",
|
@@ -0,0 +1,17 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :gift_card, class: Spree::GiftCard do
|
3
|
+
state { :active }
|
4
|
+
amount { 10.00 }
|
5
|
+
store { Spree::Store.default || create(:store) }
|
6
|
+
|
7
|
+
trait :redeemed do
|
8
|
+
state { :redeemed }
|
9
|
+
redeemed_at { Time.current }
|
10
|
+
amount_used { amount }
|
11
|
+
end
|
12
|
+
|
13
|
+
trait :expired do
|
14
|
+
expires_at { 1.day.ago }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :page_section, class: Spree::PageSection do
|
3
3
|
pageable { Spree::Page.find_by!(name: 'Homepage') }
|
4
|
-
pageable_type { 'Spree::Page' }
|
5
4
|
|
6
5
|
trait :without_links do
|
7
6
|
do_not_create_links { true }
|
@@ -22,5 +21,7 @@ FactoryBot.define do
|
|
22
21
|
factory :video_page_section, class: Spree::PageSections::Video
|
23
22
|
|
24
23
|
factory :image_with_text_page_section, class: Spree::PageSections::ImageWithText
|
24
|
+
|
25
|
+
factory :featured_posts_page_section, class: Spree::PageSections::FeaturedPosts
|
25
26
|
end
|
26
27
|
end
|
@@ -14,6 +14,11 @@ FactoryBot.define do
|
|
14
14
|
create(:refund, amount: 5, payment: payment)
|
15
15
|
end
|
16
16
|
end
|
17
|
+
|
18
|
+
factory :custom_payment, class: Spree::Payment do
|
19
|
+
payment_method { create(:custom_payment_method, stores: [order.store]) }
|
20
|
+
source { create(:payment_source, user: order.user, payment_method: payment_method) }
|
21
|
+
end
|
17
22
|
end
|
18
23
|
|
19
24
|
factory :check_payment, class: Spree::Payment do
|
@@ -37,4 +37,9 @@ FactoryBot.define do
|
|
37
37
|
active { true }
|
38
38
|
auto_capture { true }
|
39
39
|
end
|
40
|
+
|
41
|
+
factory :custom_payment_method, parent: :payment_method, class: Spree::Gateway::CustomPaymentSourceMethod do
|
42
|
+
type { 'Spree::Gateway::CustomPaymentSourceMethod' }
|
43
|
+
name { 'Custom' }
|
44
|
+
end
|
40
45
|
end
|
@@ -6,5 +6,9 @@ FactoryBot.define do
|
|
6
6
|
published_at { Time.current }
|
7
7
|
author { create(:admin_user) }
|
8
8
|
store { Spree::Store.default || create(:store) }
|
9
|
+
|
10
|
+
trait :with_image do
|
11
|
+
image { Rack::Test::UploadedFile.new(Spree::Core::Engine.root.join('spec/fixtures/thinking-cat.jpg'), 'image/jpeg') }
|
12
|
+
end
|
9
13
|
end
|
10
14
|
end
|
@@ -5,8 +5,8 @@ FactoryBot.define do
|
|
5
5
|
password { 'secret' }
|
6
6
|
password_confirmation { password }
|
7
7
|
|
8
|
-
first_name { FFaker::Name.first_name }
|
9
|
-
last_name { FFaker::Name.last_name }
|
8
|
+
first_name { FFaker::Name.first_name }
|
9
|
+
last_name { FFaker::Name.last_name }
|
10
10
|
|
11
11
|
public_metadata { {} }
|
12
12
|
private_metadata { {} }
|
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: 5.1.0.
|
4
|
+
version: 5.1.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-
|
13
|
+
date: 2025-07-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: i18n-tasks
|
@@ -336,28 +336,28 @@ dependencies:
|
|
336
336
|
requirements:
|
337
337
|
- - "~>"
|
338
338
|
- !ruby/object:Gem::Version
|
339
|
-
version: '0.
|
339
|
+
version: '0.10'
|
340
340
|
type: :runtime
|
341
341
|
prerelease: false
|
342
342
|
version_requirements: !ruby/object:Gem::Requirement
|
343
343
|
requirements:
|
344
344
|
- - "~>"
|
345
345
|
- !ruby/object:Gem::Version
|
346
|
-
version: '0.
|
346
|
+
version: '0.10'
|
347
347
|
- !ruby/object:Gem::Dependency
|
348
348
|
name: state_machines-activemodel
|
349
349
|
requirement: !ruby/object:Gem::Requirement
|
350
350
|
requirements:
|
351
351
|
- - "~>"
|
352
352
|
- !ruby/object:Gem::Version
|
353
|
-
version: '0.
|
353
|
+
version: '0.10'
|
354
354
|
type: :runtime
|
355
355
|
prerelease: false
|
356
356
|
version_requirements: !ruby/object:Gem::Requirement
|
357
357
|
requirements:
|
358
358
|
- - "~>"
|
359
359
|
- !ruby/object:Gem::Version
|
360
|
-
version: '0.
|
360
|
+
version: '0.10'
|
361
361
|
- !ruby/object:Gem::Dependency
|
362
362
|
name: stringex
|
363
363
|
requirement: !ruby/object:Gem::Requirement
|
@@ -434,14 +434,20 @@ dependencies:
|
|
434
434
|
requirements:
|
435
435
|
- - "~>"
|
436
436
|
- !ruby/object:Gem::Version
|
437
|
-
version: '1.
|
437
|
+
version: '1.3'
|
438
|
+
- - ">="
|
439
|
+
- !ruby/object:Gem::Version
|
440
|
+
version: 1.3.2
|
438
441
|
type: :runtime
|
439
442
|
prerelease: false
|
440
443
|
version_requirements: !ruby/object:Gem::Requirement
|
441
444
|
requirements:
|
442
445
|
- - "~>"
|
443
446
|
- !ruby/object:Gem::Version
|
444
|
-
version: '1.
|
447
|
+
version: '1.3'
|
448
|
+
- - ">="
|
449
|
+
- !ruby/object:Gem::Version
|
450
|
+
version: 1.3.2
|
445
451
|
- !ruby/object:Gem::Dependency
|
446
452
|
name: mobility-ransack
|
447
453
|
requirement: !ruby/object:Gem::Requirement
|
@@ -540,6 +546,20 @@ dependencies:
|
|
540
546
|
- - "~>"
|
541
547
|
- !ruby/object:Gem::Version
|
542
548
|
version: '0.4'
|
549
|
+
- !ruby/object:Gem::Dependency
|
550
|
+
name: phonelib
|
551
|
+
requirement: !ruby/object:Gem::Requirement
|
552
|
+
requirements:
|
553
|
+
- - "~>"
|
554
|
+
- !ruby/object:Gem::Version
|
555
|
+
version: '0.10'
|
556
|
+
type: :runtime
|
557
|
+
prerelease: false
|
558
|
+
version_requirements: !ruby/object:Gem::Requirement
|
559
|
+
requirements:
|
560
|
+
- - "~>"
|
561
|
+
- !ruby/object:Gem::Version
|
562
|
+
version: '0.10'
|
543
563
|
description: Spree Models, Helpers, Services and core libraries
|
544
564
|
email: hello@spreecommerce.org
|
545
565
|
executables: []
|
@@ -577,6 +597,7 @@ files:
|
|
577
597
|
- app/helpers/spree/locale_helper.rb
|
578
598
|
- app/helpers/spree/mail_helper.rb
|
579
599
|
- app/helpers/spree/products_helper.rb
|
600
|
+
- app/helpers/spree/shipment_helper.rb
|
580
601
|
- app/javascript/spree/core/controllers/address_autocomplete_controller.js
|
581
602
|
- app/javascript/spree/core/controllers/address_form_controller.js
|
582
603
|
- app/javascript/spree/core/controllers/disable_submit_button_controller.js
|
@@ -588,6 +609,7 @@ files:
|
|
588
609
|
- app/jobs/spree/base_job.rb
|
589
610
|
- app/jobs/spree/coupon_codes/bulk_generate_job.rb
|
590
611
|
- app/jobs/spree/exports/generate_job.rb
|
612
|
+
- app/jobs/spree/gift_cards/bulk_generate_job.rb
|
591
613
|
- app/jobs/spree/products/auto_match_taxons_job.rb
|
592
614
|
- app/jobs/spree/products/touch_taxons_job.rb
|
593
615
|
- app/jobs/spree/reports/generate_job.rb
|
@@ -622,6 +644,7 @@ files:
|
|
622
644
|
- app/models/concerns/spree/number_as_param.rb
|
623
645
|
- app/models/concerns/spree/number_identifier.rb
|
624
646
|
- app/models/concerns/spree/parameterizable_name.rb
|
647
|
+
- app/models/concerns/spree/payment_source_concern.rb
|
625
648
|
- app/models/concerns/spree/previewable.rb
|
626
649
|
- app/models/concerns/spree/product_scopes.rb
|
627
650
|
- app/models/concerns/spree/ransackable_attributes.rb
|
@@ -686,7 +709,10 @@ files:
|
|
686
709
|
- app/models/spree/gateway.rb
|
687
710
|
- app/models/spree/gateway/bogus.rb
|
688
711
|
- app/models/spree/gateway/bogus_simple.rb
|
712
|
+
- app/models/spree/gateway/custom_payment_source_method.rb
|
689
713
|
- app/models/spree/gateway_customer.rb
|
714
|
+
- app/models/spree/gift_card.rb
|
715
|
+
- app/models/spree/gift_card_batch.rb
|
690
716
|
- app/models/spree/image.rb
|
691
717
|
- app/models/spree/image/configuration/active_storage.rb
|
692
718
|
- app/models/spree/integration.rb
|
@@ -706,6 +732,7 @@ files:
|
|
706
732
|
- app/models/spree/order/currency_updater.rb
|
707
733
|
- app/models/spree/order/digital.rb
|
708
734
|
- app/models/spree/order/emails.rb
|
735
|
+
- app/models/spree/order/gift_card.rb
|
709
736
|
- app/models/spree/order/payments.rb
|
710
737
|
- app/models/spree/order/store_credit.rb
|
711
738
|
- app/models/spree/order/webhooks.rb
|
@@ -787,6 +814,7 @@ files:
|
|
787
814
|
- app/models/spree/preference.rb
|
788
815
|
- app/models/spree/price.rb
|
789
816
|
- app/models/spree/product.rb
|
817
|
+
- app/models/spree/product/slugs.rb
|
790
818
|
- app/models/spree/product/webhooks.rb
|
791
819
|
- app/models/spree/product_option_type.rb
|
792
820
|
- app/models/spree/product_promotion_rule.rb
|
@@ -940,6 +968,7 @@ files:
|
|
940
968
|
- app/services/spree/account/update.rb
|
941
969
|
- app/services/spree/addresses/create.rb
|
942
970
|
- app/services/spree/addresses/helper.rb
|
971
|
+
- app/services/spree/addresses/phone_validator.rb
|
943
972
|
- app/services/spree/addresses/update.rb
|
944
973
|
- app/services/spree/cart/add_item.rb
|
945
974
|
- app/services/spree/cart/associate.rb
|
@@ -974,6 +1003,9 @@ files:
|
|
974
1003
|
- app/services/spree/data_feeds/google/required_attributes.rb
|
975
1004
|
- app/services/spree/data_feeds/google/rss.rb
|
976
1005
|
- app/services/spree/generate_token.rb
|
1006
|
+
- app/services/spree/gift_cards/apply.rb
|
1007
|
+
- app/services/spree/gift_cards/redeem.rb
|
1008
|
+
- app/services/spree/gift_cards/remove.rb
|
977
1009
|
- app/services/spree/line_items/create.rb
|
978
1010
|
- app/services/spree/line_items/destroy.rb
|
979
1011
|
- app/services/spree/line_items/helper.rb
|
@@ -1055,7 +1087,6 @@ files:
|
|
1055
1087
|
- config/initializers/mobility.rb
|
1056
1088
|
- config/initializers/oembed.rb
|
1057
1089
|
- config/initializers/rails61_fixes.rb
|
1058
|
-
- config/initializers/state_machine.rb
|
1059
1090
|
- config/locales/en.yml
|
1060
1091
|
- config/routes.rb
|
1061
1092
|
- db/migrate/20210914000000_spree_four_three.rb
|
@@ -1156,9 +1187,12 @@ files:
|
|
1156
1187
|
- db/migrate/20250407085228_create_spree_integrations.rb
|
1157
1188
|
- db/migrate/20250410061306_create_spree_invitations.rb
|
1158
1189
|
- db/migrate/20250418174652_add_resource_to_spree_role_users.rb
|
1190
|
+
- db/migrate/20250506073057_create_spree_gift_cards_and_spree_gift_card_batches.rb
|
1159
1191
|
- db/migrate/20250508060800_add_selected_locale_to_spree_admin_users.rb
|
1160
1192
|
- db/migrate/20250509143831_add_session_id_to_spree_assets.rb
|
1161
1193
|
- db/migrate/20250527134027_add_company_to_spree_stock_locations.rb
|
1194
|
+
- db/migrate/20250530101236_enable_pg_trgm_extension.rb
|
1195
|
+
- db/migrate/20250605131334_add_missing_fields_to_users.rb
|
1162
1196
|
- db/seeds.rb
|
1163
1197
|
- lib/friendly_id/paranoia.rb
|
1164
1198
|
- lib/generators/spree/authentication/custom/custom_generator.rb
|
@@ -1249,6 +1283,8 @@ files:
|
|
1249
1283
|
- lib/spree/testing_support/factories/export_factory.rb
|
1250
1284
|
- lib/spree/testing_support/factories/favicon_image_factory.rb
|
1251
1285
|
- lib/spree/testing_support/factories/gateway_customer_factory.rb
|
1286
|
+
- lib/spree/testing_support/factories/gift_card_batch_factory.rb
|
1287
|
+
- lib/spree/testing_support/factories/gift_card_factory.rb
|
1252
1288
|
- lib/spree/testing_support/factories/google_data_feed_factory.rb
|
1253
1289
|
- lib/spree/testing_support/factories/image_factory.rb
|
1254
1290
|
- lib/spree/testing_support/factories/integration_factory.rb
|
@@ -1266,6 +1302,7 @@ files:
|
|
1266
1302
|
- lib/spree/testing_support/factories/payment_capture_event_factory.rb
|
1267
1303
|
- lib/spree/testing_support/factories/payment_factory.rb
|
1268
1304
|
- lib/spree/testing_support/factories/payment_method_factory.rb
|
1305
|
+
- lib/spree/testing_support/factories/payment_source_factory.rb
|
1269
1306
|
- lib/spree/testing_support/factories/post_category_factory.rb
|
1270
1307
|
- lib/spree/testing_support/factories/post_factory.rb
|
1271
1308
|
- lib/spree/testing_support/factories/price_factory.rb
|
@@ -1345,9 +1382,9 @@ licenses:
|
|
1345
1382
|
- BSD-3-Clause
|
1346
1383
|
metadata:
|
1347
1384
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
1348
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.0.
|
1385
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.0.rc1
|
1349
1386
|
documentation_uri: https://docs.spreecommerce.org/
|
1350
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.1.0.
|
1387
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.1.0.rc1
|
1351
1388
|
post_install_message:
|
1352
1389
|
rdoc_options: []
|
1353
1390
|
require_paths:
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module MachineDecorator
|
4
|
-
protected
|
5
|
-
|
6
|
-
# Determines whether there's already a helper method defined within the
|
7
|
-
# given scope. This is true only if one of the owner's ancestors defines
|
8
|
-
# the method and is further along in the ancestor chain than this
|
9
|
-
# machine's helper module.
|
10
|
-
def owner_class_ancestor_has_method?(scope, method)
|
11
|
-
return false unless owner_class_has_method?(scope, method)
|
12
|
-
|
13
|
-
superclasses = owner_class.ancestors.select { |ancestor| ancestor.is_a?(Class) }[1..-1]
|
14
|
-
|
15
|
-
if scope == :class
|
16
|
-
current = owner_class.singleton_class
|
17
|
-
superclass = superclasses.first
|
18
|
-
else
|
19
|
-
current = owner_class
|
20
|
-
superclass = owner_class.superclass
|
21
|
-
end
|
22
|
-
|
23
|
-
# Generate the list of modules that *only* occur in the owner class, but
|
24
|
-
# were included *prior* to the helper modules, in addition to the
|
25
|
-
# superclasses
|
26
|
-
ancestors = current.ancestors - superclass.ancestors + superclasses
|
27
|
-
ancestors = ancestors[ancestors.index(@helper_modules[scope])..-1].reverse
|
28
|
-
|
29
|
-
# Search for for the first ancestor that defined this method
|
30
|
-
ancestors.detect do |ancestor|
|
31
|
-
ancestor = ancestor.singleton_class if scope == :class && ancestor.is_a?(Class)
|
32
|
-
ancestor.method_defined?(method) || ancestor.private_method_defined?(method)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
::StateMachines::Machine.prepend MachineDecorator
|