spree_cm_commissioner 1.14.0 → 1.15.0.pre.beta1

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +12 -1
  3. data/README.md +43 -1
  4. data/app/assets/images/category_icons/art_icon.png +0 -0
  5. data/app/assets/images/category_icons/concert_icon.png +0 -0
  6. data/app/assets/images/category_icons/fundraising_icon.png +0 -0
  7. data/app/assets/images/category_icons/marathon_icon.png +0 -0
  8. data/app/assets/images/category_icons/online_icon.png +0 -0
  9. data/app/assets/images/category_icons/workshop_icon.png +0 -0
  10. data/app/controllers/spree/admin/users_controller_decorator.rb +13 -0
  11. data/app/controllers/spree/api/chatrace/guests_controller.rb +2 -1
  12. data/app/controllers/spree/api/v2/organizer/invite_guests_controller.rb +1 -0
  13. data/app/controllers/spree/api/v2/storefront/cart_payment_method_groups_controller.rb +12 -1
  14. data/app/controllers/spree/api/v2/storefront/guests_controller.rb +3 -1
  15. data/app/controllers/spree/api/v2/tenant/cart_controller.rb +11 -0
  16. data/app/controllers/spree/api/v2/tenant/checkout_controller.rb +1 -0
  17. data/app/controllers/spree/api/v2/tenant/order_histories_controller.rb +65 -0
  18. data/app/controllers/spree_cm_commissioner/admin/variants_controller_decorator.rb +1 -1
  19. data/app/controllers/spree_cm_commissioner/well_known_controller.rb +46 -0
  20. data/app/factory/spree_cm_commissioner/invite_guest_claimed_telegram_message_factory.rb +8 -8
  21. data/app/helpers/spree_cm_commissioner/transit/order_query_helper.rb +17 -0
  22. data/app/interactors/spree_cm_commissioner/create_event.rb +31 -6
  23. data/app/interactors/spree_cm_commissioner/create_ticket.rb +36 -1
  24. data/app/interactors/spree_cm_commissioner/host_matcher.rb +28 -0
  25. data/app/interactors/spree_cm_commissioner/place_decoder.rb +16 -0
  26. data/app/interactors/spree_cm_commissioner/place_service.rb +32 -0
  27. data/app/interactors/spree_cm_commissioner/user_pin_code_authenticator.rb +9 -0
  28. data/app/models/concerns/spree_cm_commissioner/json_preference_validator.rb +23 -0
  29. data/app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb +3 -1
  30. data/app/models/concerns/spree_cm_commissioner/store_preference.rb +2 -0
  31. data/app/models/concerns/spree_cm_commissioner/tenant_preference.rb +11 -0
  32. data/app/models/spree_cm_commissioner/guest.rb +11 -2
  33. data/app/models/spree_cm_commissioner/invite_guest.rb +8 -0
  34. data/app/models/spree_cm_commissioner/order_decorator.rb +5 -0
  35. data/app/models/spree_cm_commissioner/payment_method_decorator.rb +8 -1
  36. data/app/models/spree_cm_commissioner/place.rb +3 -0
  37. data/app/models/spree_cm_commissioner/store_decorator.rb +2 -1
  38. data/app/models/spree_cm_commissioner/taxon_decorator.rb +4 -0
  39. data/app/models/spree_cm_commissioner/taxon_place.rb +12 -0
  40. data/app/models/spree_cm_commissioner/tenant.rb +5 -0
  41. data/app/models/spree_cm_commissioner/user_decorator.rb +14 -3
  42. data/app/models/spree_cm_commissioner/vendor_decorator.rb +7 -3
  43. data/app/models/spree_cm_commissioner/vendor_place.rb +11 -3
  44. data/app/overrides/spree/admin/stores/_form/store_preferences.html.erb.deface +85 -12
  45. data/app/overrides/spree/admin/variants/_form/kyc_field.html.erb.deface +3 -4
  46. data/app/queries/spree_cm_commissioner/reservation_query.rb +12 -0
  47. data/app/serializers/spree/v2/organizer/invite_guest_serializer.rb +1 -1
  48. data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +1 -0
  49. data/app/serializers/spree/v2/tenant/cart_serializer.rb +8 -0
  50. data/app/serializers/spree_cm_commissioner/v2/storefront/guest_serializer.rb +1 -1
  51. data/app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb +63 -0
  52. data/app/services/spree_cm_commissioner/payment_method_type_mapper.rb +11 -0
  53. data/app/views/spree/admin/tenants/_form.html.erb +68 -2
  54. data/config/initializers/spree_permitted_attributes.rb +3 -0
  55. data/config/routes.rb +7 -0
  56. data/db/migrate/20250127081646_add_preferences_to_cm_tenants.rb +7 -0
  57. data/db/migrate/20250527043231_create_spree_commissioner_taxon_places.rb +15 -0
  58. data/db/migrate/20250528090330_add_place_type_to_cm_vendor_place.rb +6 -0
  59. data/db/migrate/20250602094751_add_host_to_cm_tenants.rb +6 -0
  60. data/db/migrate/20250609015216_remove_claimed_at_and_expires_at_from_cm_invite_guest.rb +6 -0
  61. data/db/migrate/20250610080108_add_contact_to_cm_guests.rb +5 -0
  62. data/db/migrate/20250611023548_add_country_code_to_guests.rb +5 -0
  63. data/db/migrate/20250612035937_add_intel_phone_number_to_guests.rb +5 -0
  64. data/lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb +6 -0
  65. data/lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb +1 -0
  66. data/lib/spree_cm_commissioner/test_helper/factories/vendor_place_factory.rb +17 -4
  67. data/lib/spree_cm_commissioner/version.rb +1 -1
  68. data/lib/spree_cm_commissioner.rb +1 -0
  69. data/spree_cm_commissioner.gemspec +2 -0
  70. metadata +60 -4
@@ -0,0 +1,7 @@
1
+ class AddPreferencesToCmTenants < ActiveRecord::Migration[7.0]
2
+ def change
3
+ unless column_exists?(:cm_tenants, :preferences)
4
+ add_column :cm_tenants, :preferences, :text
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ class CreateSpreeCommissionerTaxonPlaces < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :cm_taxon_places, if_not_exists: true do |t|
4
+ t.references :place, null: false, foreign_key: { to_table: :cm_places }
5
+ t.references :taxon, null: false, foreign_key: { to_table: :spree_taxons }
6
+ t.integer :type, default: 0, null: false
7
+ t.integer :position, default: 0, null: false
8
+ t.text :description
9
+
10
+ t.index [:place_id, :taxon_id], unique: true
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ class AddPlaceTypeToCmVendorPlace < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_vendor_places, :place_type, :integer, default: 0, null: false, if_not_exists: true
4
+ add_index :cm_vendor_places, :place_type, if_not_exists: true
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddHostToCmTenants < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_tenants, :host, :string, if_not_exists: true
4
+ add_index :cm_tenants, :host, unique: true, if_not_exists: true
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class RemoveClaimedAtAndExpiresAtFromCmInviteGuest < ActiveRecord::Migration[7.0]
2
+ def change
3
+ remove_column :cm_invite_guests, :claimed_at, :datetime, if_exists: true
4
+ remove_column :cm_invite_guests, :expires_at, :datetime, if_exists: true
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddContactToCmGuests < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_guests, :contact, :string, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddCountryCodeToGuests < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_guests, :country_code, :string, limit: 5, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddIntelPhoneNumberToGuests < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :cm_guests, :intel_phone_number, :string, if_not_exists: true
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ factory :invite_guest, class: SpreeCmCommissioner::InviteGuest do
3
+ association :order, factory: :order
4
+ token { SecureRandom.hex(16) }
5
+ end
6
+ end
@@ -1,5 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :cm_tenant, class: 'SpreeCmCommissioner::Tenant' do
3
3
  name { "Tenant_a" }
4
+ host { "tenant_a.example.com" }
4
5
  end
5
6
  end
@@ -1,8 +1,21 @@
1
1
  FactoryBot.define do
2
- factory :cm_vendor_place, class: SpreeCmCommissioner::VendorPlace do
3
- vendor { vendor}
4
- place { place }
2
+ factory :vendor_place, class: SpreeCmCommissioner::VendorPlace do
3
+ association :vendor, factory: :vendor
4
+ association :place, factory: :cm_place
5
5
  distance { FFaker::Number.decimal }
6
6
  position { FFaker::Number.number }
7
+ place_type { :branch }
8
+
9
+ trait :branch do
10
+ place_type { :branch }
11
+ end
12
+
13
+ trait :stop do
14
+ place_type { :stop }
15
+ end
16
+
17
+ trait :locations do
18
+ place_type { :locations }
19
+ end
7
20
  end
8
- end
21
+ end
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '1.14.0'.freeze
2
+ VERSION = '1.15.0-beta1'.freeze
3
3
 
4
4
  module_function
5
5
 
@@ -5,6 +5,7 @@ require 'spree_auth_devise'
5
5
  require 'spree_multi_vendor'
6
6
  require 'blazer'
7
7
  require 'spree_extension'
8
+ require 'spree_vpago'
8
9
 
9
10
  require 'spree_cm_commissioner/engine'
10
11
  require 'spree_cm_commissioner/version'
@@ -57,5 +57,7 @@ Gem::Specification.new do |s|
57
57
  s.add_development_dependency 'pg'
58
58
  s.add_development_dependency 'spree_dev_tools'
59
59
  s.add_dependency 'blazer', '~> 3.0.4'
60
+ s.add_dependency 'strong_password', '~> 0.0.10'
61
+ s.add_dependency 'spree_vpago'
60
62
  s.metadata['rubygems_mfa_required'] = 'true'
61
63
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.15.0.pre.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-30 00:00:00.000000000 Z
11
+ date: 2025-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -506,6 +506,34 @@ dependencies:
506
506
  - - "~>"
507
507
  - !ruby/object:Gem::Version
508
508
  version: 3.0.4
509
+ - !ruby/object:Gem::Dependency
510
+ name: strong_password
511
+ requirement: !ruby/object:Gem::Requirement
512
+ requirements:
513
+ - - "~>"
514
+ - !ruby/object:Gem::Version
515
+ version: 0.0.10
516
+ type: :runtime
517
+ prerelease: false
518
+ version_requirements: !ruby/object:Gem::Requirement
519
+ requirements:
520
+ - - "~>"
521
+ - !ruby/object:Gem::Version
522
+ version: 0.0.10
523
+ - !ruby/object:Gem::Dependency
524
+ name: spree_vpago
525
+ requirement: !ruby/object:Gem::Requirement
526
+ requirements:
527
+ - - ">="
528
+ - !ruby/object:Gem::Version
529
+ version: '0'
530
+ type: :runtime
531
+ prerelease: false
532
+ version_requirements: !ruby/object:Gem::Requirement
533
+ requirements:
534
+ - - ">="
535
+ - !ruby/object:Gem::Version
536
+ version: '0'
509
537
  description: Add (optional) extension description here
510
538
  email: you@example.com
511
539
  executables: []
@@ -537,6 +565,12 @@ files:
537
565
  - app/assets/images/backend-accept_all.svg
538
566
  - app/assets/images/backend-alert_request_to_vendor.svg
539
567
  - app/assets/images/backend-reject_all.svg
568
+ - app/assets/images/category_icons/art_icon.png
569
+ - app/assets/images/category_icons/concert_icon.png
570
+ - app/assets/images/category_icons/fundraising_icon.png
571
+ - app/assets/images/category_icons/marathon_icon.png
572
+ - app/assets/images/category_icons/online_icon.png
573
+ - app/assets/images/category_icons/workshop_icon.png
540
574
  - app/assets/images/cm-24-hour-hot-water-icon.svg
541
575
  - app/assets/images/cm-ac-icon.svg
542
576
  - app/assets/images/cm-alarm-clock-icon.svg
@@ -868,6 +902,7 @@ files:
868
902
  - app/controllers/spree/api/v2/tenant/id_cards_controller.rb
869
903
  - app/controllers/spree/api/v2/tenant/line_items_controller.rb
870
904
  - app/controllers/spree/api/v2/tenant/notifications_controller.rb
905
+ - app/controllers/spree/api/v2/tenant/order_histories_controller.rb
871
906
  - app/controllers/spree/api/v2/tenant/pin_code_checkers_controller.rb
872
907
  - app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb
873
908
  - app/controllers/spree/api/v2/tenant/products_controller.rb
@@ -952,6 +987,7 @@ files:
952
987
  - app/controllers/spree_cm_commissioner/line_item_qr_images_controller.rb
953
988
  - app/controllers/spree_cm_commissioner/orders_controller.rb
954
989
  - app/controllers/spree_cm_commissioner/qr_images_controller.rb
990
+ - app/controllers/spree_cm_commissioner/well_known_controller.rb
955
991
  - app/errors/spree_cm_commissioner/connection_error.rb
956
992
  - app/errors/spree_cm_commissioner/exceeding_range_error.rb
957
993
  - app/errors/spree_cm_commissioner/payment_creation_error.rb
@@ -986,6 +1022,7 @@ files:
986
1022
  - app/helpers/spree_cm_commissioner/billing/qrcodes_helper.rb
987
1023
  - app/helpers/spree_cm_commissioner/pin_code_sender_helper.rb
988
1024
  - app/helpers/spree_cm_commissioner/telegram/base_helper.rb
1025
+ - app/helpers/spree_cm_commissioner/transit/order_query_helper.rb
989
1026
  - app/helpers/spree_cm_commissioner/transit/service_calendars_helper.rb
990
1027
  - app/helpers/spree_cm_commissioner/transit/trip_helper.rb
991
1028
  - app/interactors/spree_cm_commissioner/accommodation_search_detail.rb
@@ -1019,6 +1056,7 @@ files:
1019
1056
  - app/interactors/spree_cm_commissioner/firebase_id_token_provider.rb
1020
1057
  - app/interactors/spree_cm_commissioner/google_places_fetcher.rb
1021
1058
  - app/interactors/spree_cm_commissioner/guest_id_card_manager.rb
1059
+ - app/interactors/spree_cm_commissioner/host_matcher.rb
1022
1060
  - app/interactors/spree_cm_commissioner/id_card_image_updater.rb
1023
1061
  - app/interactors/spree_cm_commissioner/image_saver.rb
1024
1062
  - app/interactors/spree_cm_commissioner/import_csv_template_downloader.rb
@@ -1050,6 +1088,8 @@ files:
1050
1088
  - app/interactors/spree_cm_commissioner/pin_code_creator.rb
1051
1089
  - app/interactors/spree_cm_commissioner/pin_code_generator.rb
1052
1090
  - app/interactors/spree_cm_commissioner/pin_code_sender.rb
1091
+ - app/interactors/spree_cm_commissioner/place_decoder.rb
1092
+ - app/interactors/spree_cm_commissioner/place_service.rb
1053
1093
  - app/interactors/spree_cm_commissioner/product_event_id_to_children_syncer.rb
1054
1094
  - app/interactors/spree_cm_commissioner/profile_image_destroyer.rb
1055
1095
  - app/interactors/spree_cm_commissioner/profile_image_updater.rb
@@ -1138,6 +1178,7 @@ files:
1138
1178
  - app/mailers/spree_cm_commissioner/pin_code_mailer.rb
1139
1179
  - app/models/.gitkeep
1140
1180
  - app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
1181
+ - app/models/concerns/spree_cm_commissioner/json_preference_validator.rb
1141
1182
  - app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
1142
1183
  - app/models/concerns/spree_cm_commissioner/line_item_durationable.rb
1143
1184
  - app/models/concerns/spree_cm_commissioner/line_item_guests_concern.rb
@@ -1154,6 +1195,7 @@ files:
1154
1195
  - app/models/concerns/spree_cm_commissioner/service_calendar_type.rb
1155
1196
  - app/models/concerns/spree_cm_commissioner/store_preference.rb
1156
1197
  - app/models/concerns/spree_cm_commissioner/taxon_kind.rb
1198
+ - app/models/concerns/spree_cm_commissioner/tenant_preference.rb
1157
1199
  - app/models/concerns/spree_cm_commissioner/tenant_updatable.rb
1158
1200
  - app/models/concerns/spree_cm_commissioner/user_identity.rb
1159
1201
  - app/models/concerns/spree_cm_commissioner/user_notification.rb
@@ -1290,6 +1332,7 @@ files:
1290
1332
  - app/models/spree_cm_commissioner/taxon_home_banner.rb
1291
1333
  - app/models/spree_cm_commissioner/taxon_option_type.rb
1292
1334
  - app/models/spree_cm_commissioner/taxon_option_value.rb
1335
+ - app/models/spree_cm_commissioner/taxon_place.rb
1293
1336
  - app/models/spree_cm_commissioner/taxon_vendor.rb
1294
1337
  - app/models/spree_cm_commissioner/taxon_video_banner.rb
1295
1338
  - app/models/spree_cm_commissioner/taxon_web_banner.rb
@@ -1480,6 +1523,7 @@ files:
1480
1523
  - app/queries/spree_cm_commissioner/line_item_searcher_query.rb
1481
1524
  - app/queries/spree_cm_commissioner/organizer_profile_event_query.rb
1482
1525
  - app/queries/spree_cm_commissioner/pie_chart_event_aggregator_queries.rb
1526
+ - app/queries/spree_cm_commissioner/reservation_query.rb
1483
1527
  - app/queries/spree_cm_commissioner/subscription_orders_query.rb
1484
1528
  - app/queries/spree_cm_commissioner/subscription_revenue_overview_query.rb
1485
1529
  - app/queries/spree_cm_commissioner/tickets_searcher_query.rb
@@ -1543,6 +1587,7 @@ files:
1543
1587
  - app/serializers/spree/v2/tenant/asset_serializer.rb
1544
1588
  - app/serializers/spree/v2/tenant/base_serializer.rb
1545
1589
  - app/serializers/spree/v2/tenant/booking_card_class_serializer.rb
1590
+ - app/serializers/spree/v2/tenant/cart_serializer.rb
1546
1591
  - app/serializers/spree/v2/tenant/customer_notification_serializer.rb
1547
1592
  - app/serializers/spree/v2/tenant/digital_link_serializer.rb
1548
1593
  - app/serializers/spree/v2/tenant/guest_card_class_serializer.rb
@@ -1664,6 +1709,8 @@ files:
1664
1709
  - app/services/spree_cm_commissioner/order_params_checker.rb
1665
1710
  - app/services/spree_cm_commissioner/orders/generate_commissions_decorator.rb
1666
1711
  - app/services/spree_cm_commissioner/organizer/export_guest_csv_service.rb
1712
+ - app/services/spree_cm_commissioner/organizer/export_invite_guest_csv_service.rb
1713
+ - app/services/spree_cm_commissioner/payment_method_type_mapper.rb
1667
1714
  - app/services/spree_cm_commissioner/penalty_calculator.rb
1668
1715
  - app/services/spree_cm_commissioner/role_permissions_constructor.rb
1669
1716
  - app/services/spree_cm_commissioner/role_permissions_loader.rb
@@ -2387,6 +2434,7 @@ files:
2387
2434
  - db/migrate/20250124034128_add_tenant_id_to_spree_orders.rb
2388
2435
  - db/migrate/20250124034153_add_tenant_id_to_spree_products.rb
2389
2436
  - db/migrate/20250127081645_add_fields_to_cm_tenants.rb
2437
+ - db/migrate/20250127081646_add_preferences_to_cm_tenants.rb
2390
2438
  - db/migrate/20250131024730_add_tenant_id_to_cm_homepage_section.rb
2391
2439
  - db/migrate/20250212100328_add_foreign_key_to_spree_user_tenant_id.rb
2392
2440
  - db/migrate/20250214025007_add_required_self_check_in_location_to_spree_products.rb
@@ -2426,8 +2474,15 @@ files:
2426
2474
  - db/migrate/20250520044533_add_event_to_spree_line_items.rb
2427
2475
  - db/migrate/20250521024345_add_tenant_id_to_cm_waiting_room_sessions.rb
2428
2476
  - db/migrate/20250521095539_add_kyc_to_spree_variants.rb
2477
+ - db/migrate/20250527043231_create_spree_commissioner_taxon_places.rb
2429
2478
  - db/migrate/20250528073748_remove_unique_slug_index_on_spree_cms_pages.rb
2430
2479
  - db/migrate/20250528074043_add_unique_index_on_slug_tenant_id_deleted_at_to_spree_cms_pages.rb
2480
+ - db/migrate/20250528090330_add_place_type_to_cm_vendor_place.rb
2481
+ - db/migrate/20250602094751_add_host_to_cm_tenants.rb
2482
+ - db/migrate/20250609015216_remove_claimed_at_and_expires_at_from_cm_invite_guest.rb
2483
+ - db/migrate/20250610080108_add_contact_to_cm_guests.rb
2484
+ - db/migrate/20250611023548_add_country_code_to_guests.rb
2485
+ - db/migrate/20250612035937_add_intel_phone_number_to_guests.rb
2431
2486
  - docker-compose.yml
2432
2487
  - docs/option_types/attr_types.md
2433
2488
  - docs/private_key.pem
@@ -2483,6 +2538,7 @@ files:
2483
2538
  - lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
2484
2539
  - lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
2485
2540
  - lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
2541
+ - lib/spree_cm_commissioner/test_helper/factories/invite_guests_factory.rb
2486
2542
  - lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
2487
2543
  - lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
2488
2544
  - lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb
@@ -2579,9 +2635,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2579
2635
  version: '2.7'
2580
2636
  required_rubygems_version: !ruby/object:Gem::Requirement
2581
2637
  requirements:
2582
- - - ">="
2638
+ - - ">"
2583
2639
  - !ruby/object:Gem::Version
2584
- version: '0'
2640
+ version: 1.3.1
2585
2641
  requirements:
2586
2642
  - none
2587
2643
  rubygems_version: 3.4.1