spree_core 5.1.0.beta4 → 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/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/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_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +1 -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/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 +2 -2
- data/app/views/spree/addresses/_form.html.erb +1 -1
- data/app/views/spree/shared/_payment.html.erb +4 -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 +7 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +2 -1
- data/lib/spree/permitted_attributes.rb +22 -9
- 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/post_factory.rb +4 -0
- data/lib/spree/testing_support/factories/promotion_rule_factory.rb +4 -0
- data/lib/spree/testing_support/factories/user_factory.rb +2 -2
- metadata +45 -11
- data/config/initializers/state_machine.rb +0 -37
@@ -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
|
@@ -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
|
@@ -689,6 +711,8 @@ files:
|
|
689
711
|
- app/models/spree/gateway/bogus_simple.rb
|
690
712
|
- app/models/spree/gateway/custom_payment_source_method.rb
|
691
713
|
- app/models/spree/gateway_customer.rb
|
714
|
+
- app/models/spree/gift_card.rb
|
715
|
+
- app/models/spree/gift_card_batch.rb
|
692
716
|
- app/models/spree/image.rb
|
693
717
|
- app/models/spree/image/configuration/active_storage.rb
|
694
718
|
- app/models/spree/integration.rb
|
@@ -708,6 +732,7 @@ files:
|
|
708
732
|
- app/models/spree/order/currency_updater.rb
|
709
733
|
- app/models/spree/order/digital.rb
|
710
734
|
- app/models/spree/order/emails.rb
|
735
|
+
- app/models/spree/order/gift_card.rb
|
711
736
|
- app/models/spree/order/payments.rb
|
712
737
|
- app/models/spree/order/store_credit.rb
|
713
738
|
- app/models/spree/order/webhooks.rb
|
@@ -789,6 +814,7 @@ files:
|
|
789
814
|
- app/models/spree/preference.rb
|
790
815
|
- app/models/spree/price.rb
|
791
816
|
- app/models/spree/product.rb
|
817
|
+
- app/models/spree/product/slugs.rb
|
792
818
|
- app/models/spree/product/webhooks.rb
|
793
819
|
- app/models/spree/product_option_type.rb
|
794
820
|
- app/models/spree/product_promotion_rule.rb
|
@@ -942,6 +968,7 @@ files:
|
|
942
968
|
- app/services/spree/account/update.rb
|
943
969
|
- app/services/spree/addresses/create.rb
|
944
970
|
- app/services/spree/addresses/helper.rb
|
971
|
+
- app/services/spree/addresses/phone_validator.rb
|
945
972
|
- app/services/spree/addresses/update.rb
|
946
973
|
- app/services/spree/cart/add_item.rb
|
947
974
|
- app/services/spree/cart/associate.rb
|
@@ -976,6 +1003,9 @@ files:
|
|
976
1003
|
- app/services/spree/data_feeds/google/required_attributes.rb
|
977
1004
|
- app/services/spree/data_feeds/google/rss.rb
|
978
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
|
979
1009
|
- app/services/spree/line_items/create.rb
|
980
1010
|
- app/services/spree/line_items/destroy.rb
|
981
1011
|
- app/services/spree/line_items/helper.rb
|
@@ -1057,7 +1087,6 @@ files:
|
|
1057
1087
|
- config/initializers/mobility.rb
|
1058
1088
|
- config/initializers/oembed.rb
|
1059
1089
|
- config/initializers/rails61_fixes.rb
|
1060
|
-
- config/initializers/state_machine.rb
|
1061
1090
|
- config/locales/en.yml
|
1062
1091
|
- config/routes.rb
|
1063
1092
|
- db/migrate/20210914000000_spree_four_three.rb
|
@@ -1158,9 +1187,12 @@ files:
|
|
1158
1187
|
- db/migrate/20250407085228_create_spree_integrations.rb
|
1159
1188
|
- db/migrate/20250410061306_create_spree_invitations.rb
|
1160
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
|
1161
1191
|
- db/migrate/20250508060800_add_selected_locale_to_spree_admin_users.rb
|
1162
1192
|
- db/migrate/20250509143831_add_session_id_to_spree_assets.rb
|
1163
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
|
1164
1196
|
- db/seeds.rb
|
1165
1197
|
- lib/friendly_id/paranoia.rb
|
1166
1198
|
- lib/generators/spree/authentication/custom/custom_generator.rb
|
@@ -1251,6 +1283,8 @@ files:
|
|
1251
1283
|
- lib/spree/testing_support/factories/export_factory.rb
|
1252
1284
|
- lib/spree/testing_support/factories/favicon_image_factory.rb
|
1253
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
|
1254
1288
|
- lib/spree/testing_support/factories/google_data_feed_factory.rb
|
1255
1289
|
- lib/spree/testing_support/factories/image_factory.rb
|
1256
1290
|
- lib/spree/testing_support/factories/integration_factory.rb
|
@@ -1348,9 +1382,9 @@ licenses:
|
|
1348
1382
|
- BSD-3-Clause
|
1349
1383
|
metadata:
|
1350
1384
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
1351
|
-
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
|
1352
1386
|
documentation_uri: https://docs.spreecommerce.org/
|
1353
|
-
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
|
1354
1388
|
post_install_message:
|
1355
1389
|
rdoc_options: []
|
1356
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
|