solidus_core 2.11.10 → 3.3.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/Rakefile +6 -2
 - data/app/assets/javascripts/spree.js.erb +0 -51
 - data/app/controllers/spree/base_controller.rb +1 -1
 - data/app/helpers/spree/base_helper.rb +1 -1
 - data/app/helpers/spree/products_helper.rb +2 -2
 - data/app/helpers/spree/store_helper.rb +0 -11
 - data/app/mailers/spree/carton_mailer.rb +1 -5
 - data/app/models/concerns/spree/active_storage_adapter/attachment.rb +30 -11
 - data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
 - data/app/models/concerns/spree/adjustment_source.rb +0 -15
 - data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
 - data/app/models/concerns/spree/default_price.rb +39 -10
 - data/app/models/concerns/spree/ransackable_attributes.rb +24 -4
 - data/app/models/concerns/spree/soft_deletable.rb +2 -4
 - data/app/models/concerns/spree/user_address_book.rb +10 -37
 - data/app/models/concerns/spree/user_methods.rb +38 -13
 - data/app/models/spree/ability.rb +0 -37
 - data/app/models/spree/address/name.rb +2 -20
 - data/app/models/spree/address.rb +8 -186
 - data/app/models/spree/adjustment.rb +7 -33
 - data/app/models/spree/base.rb +0 -53
 - data/app/models/spree/calculator/flat_fee.rb +21 -0
 - data/app/models/spree/calculator/flexi_rate.rb +0 -5
 - data/app/models/spree/calculator.rb +0 -7
 - data/app/models/spree/carton.rb +1 -1
 - data/app/models/spree/country.rb +2 -7
 - data/app/models/spree/credit_card.rb +1 -28
 - data/app/models/spree/customer_return.rb +5 -7
 - data/app/models/spree/image/active_storage_attachment.rb +2 -7
 - data/app/models/spree/image/paperclip_attachment.rb +2 -2
 - data/app/models/spree/image.rb +0 -7
 - data/app/models/spree/inventory_unit.rb +0 -21
 - data/app/models/spree/line_item.rb +6 -49
 - data/app/models/spree/log_entry.rb +74 -1
 - data/app/models/spree/option_type.rb +1 -1
 - data/app/models/spree/option_value.rb +10 -1
 - data/app/models/spree/order/number_generator.rb +7 -1
 - data/app/models/spree/order.rb +82 -170
 - data/app/models/spree/order_cancellations.rb +4 -24
 - data/app/models/spree/order_contents.rb +2 -1
 - data/app/models/spree/order_inventory.rb +1 -1
 - data/app/models/spree/order_merger.rb +2 -2
 - data/app/models/spree/order_promotion.rb +1 -1
 - data/app/models/spree/order_shipping.rb +6 -9
 - data/app/models/spree/order_taxation.rb +6 -4
 - data/app/models/spree/order_updater.rb +17 -16
 - data/app/models/spree/payment/cancellation.rb +1 -1
 - data/app/models/spree/payment/processing.rb +58 -55
 - data/app/models/spree/payment.rb +0 -3
 - data/app/models/spree/payment_create.rb +1 -13
 - data/app/models/spree/payment_method/bogus_credit_card.rb +6 -7
 - data/app/models/spree/payment_method/credit_card.rb +1 -3
 - data/app/models/spree/payment_method/simple_bogus_credit_card.rb +8 -0
 - data/app/models/spree/payment_method.rb +26 -110
 - data/app/models/spree/price.rb +3 -3
 - data/app/models/spree/product/scopes.rb +24 -33
 - data/app/models/spree/product.rb +15 -42
 - data/app/models/spree/product_property.rb +1 -1
 - data/app/models/spree/promotion/actions/create_adjustment.rb +4 -3
 - data/app/models/spree/promotion/actions/create_item_adjustments.rb +5 -9
 - data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
 - data/app/models/spree/promotion/actions/free_shipping.rb +1 -0
 - data/app/models/spree/promotion/order_adjustments_recalculator.rb +92 -0
 - data/app/models/spree/promotion/rules/item_total.rb +50 -6
 - data/app/models/spree/promotion/rules/product.rb +20 -8
 - data/app/models/spree/promotion/rules/store.rb +4 -0
 - data/app/models/spree/promotion/rules/taxon.rb +6 -15
 - data/app/models/spree/promotion/rules/user.rb +4 -0
 - data/app/models/spree/promotion.rb +39 -32
 - data/app/models/spree/promotion_action.rb +6 -9
 - data/app/models/spree/promotion_code/batch_builder.rb +0 -14
 - data/app/models/spree/promotion_code.rb +11 -7
 - data/app/models/spree/promotion_handler/cart.rb +26 -6
 - data/app/models/spree/promotion_rule.rb +5 -0
 - data/app/models/spree/property.rb +1 -1
 - data/app/models/spree/refund.rb +8 -52
 - data/app/models/spree/reimbursement.rb +5 -43
 - data/app/models/spree/reimbursement_performer.rb +2 -8
 - data/app/models/spree/reimbursement_type/credit.rb +1 -4
 - data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -2
 - data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
 - data/app/models/spree/return_authorization.rb +2 -5
 - data/app/models/spree/return_item.rb +4 -24
 - data/app/models/spree/shipment.rb +3 -56
 - data/app/models/spree/shipping_method.rb +0 -25
 - data/app/models/spree/shipping_rate.rb +0 -2
 - data/app/models/spree/shipping_rate_tax.rb +1 -1
 - data/app/models/spree/state.rb +1 -5
 - data/app/models/spree/stock/allocator/on_hand_first.rb +2 -2
 - data/app/models/spree/stock/availability.rb +11 -3
 - data/app/models/spree/stock/quantifier.rb +12 -8
 - data/app/models/spree/stock/simple_coordinator.rb +8 -26
 - data/app/models/spree/stock/splitter/base.rb +2 -7
 - data/app/models/spree/stock_item.rb +2 -8
 - data/app/models/spree/stock_location.rb +2 -2
 - data/app/models/spree/stock_movement.rb +2 -2
 - data/app/models/spree/store.rb +0 -12
 - data/app/models/spree/store_credit.rb +14 -1
 - data/app/models/spree/store_credit_category.rb +0 -32
 - data/app/models/spree/store_credit_prioritizer.rb +17 -0
 - data/app/models/spree/tax/item_tax.rb +3 -2
 - data/app/models/spree/tax/order_tax.rb +3 -1
 - data/app/models/spree/tax/tax_helpers.rb +2 -2
 - data/app/models/spree/tax/tax_location.rb +4 -7
 - data/app/models/spree/tax_calculator/default.rb +31 -0
 - data/app/models/spree/tax_calculator/shipping_rate.rb +2 -13
 - data/app/models/spree/tax_rate.rb +9 -27
 - data/app/models/spree/taxon/active_storage_attachment.rb +2 -7
 - data/app/models/spree/taxon/paperclip_attachment.rb +3 -8
 - data/app/models/spree/taxon.rb +1 -12
 - data/app/models/spree/taxonomy.rb +1 -1
 - data/app/models/spree/user_address.rb +0 -5
 - data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +1 -1
 - data/app/models/spree/variant/price_selector.rb +34 -4
 - data/app/models/spree/variant.rb +52 -66
 - data/app/models/spree/zone.rb +1 -1
 - data/app/subscribers/spree/mailer_subscriber.rb +4 -0
 - data/app/subscribers/spree/order_mailer_subscriber.rb +35 -0
 - data/config/i18n-tasks.yml +134 -0
 - data/config/locales/en.yml +406 -263
 - data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +1 -1
 - data/db/migrate/20201127212108_add_type_before_removal_to_spree_payment_methods.rb +7 -0
 - data/db/migrate/20210312061050_change_column_null_on_prices.rb +7 -0
 - data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +20 -0
 - data/db/migrate/20220805202442_add_level_to_spree_tax_rates.rb +5 -0
 - data/db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb +5 -0
 - data/db/seeds.rb +4 -1
 - data/lib/generators/solidus/install/app_templates/authentication/custom.rb +21 -0
 - data/lib/generators/solidus/install/app_templates/authentication/devise.rb +16 -0
 - data/lib/generators/solidus/install/app_templates/authentication/existing.rb +10 -0
 - data/lib/generators/solidus/install/app_templates/authentication/none.rb +1 -0
 - data/lib/generators/solidus/install/app_templates/frontend/break_down_solidus_gem.rb +54 -0
 - data/lib/generators/solidus/install/app_templates/frontend/classic.rb +16 -0
 - data/lib/generators/solidus/install/app_templates/frontend/none.rb +2 -0
 - data/lib/generators/solidus/install/app_templates/frontend/starter.rb +3 -0
 - data/lib/generators/solidus/install/app_templates/payment_method/bolt.rb +13 -0
 - data/lib/generators/solidus/install/app_templates/payment_method/none.rb +1 -0
 - data/lib/generators/solidus/install/app_templates/payment_method/paypal.rb +10 -0
 - data/lib/generators/solidus/install/install_generator.rb +247 -149
 - data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +15 -60
 - data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/backend/all.js +2 -2
 - data/lib/generators/solidus/update/templates/config/initializers/new_solidus_defaults.rb.tt +30 -0
 - data/lib/generators/solidus/update/update_generator.rb +112 -0
 - data/lib/generators/spree/custom_user/custom_user_generator.rb +6 -4
 - data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +2 -6
 - data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -3
 - data/lib/generators/spree/dummy/dummy_generator.rb +12 -9
 - data/lib/generators/spree/dummy/templates/rails/application.rb.tt +0 -1
 - data/lib/generators/spree/dummy/templates/rails/database.yml +81 -39
 - data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
 - data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
 - data/lib/spree/app_configuration.rb +134 -64
 - data/lib/spree/bus.rb +20 -0
 - data/lib/spree/core/class_constantizer.rb +2 -0
 - data/lib/spree/core/controller_helpers/auth.rb +10 -15
 - data/lib/spree/core/controller_helpers/current_host.rb +5 -3
 - data/lib/spree/core/controller_helpers/order.rb +12 -32
 - data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
 - data/lib/spree/core/controller_helpers/pricing.rb +0 -8
 - data/lib/spree/core/controller_helpers/search.rb +1 -1
 - data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
 - data/lib/spree/core/engine.rb +54 -50
 - data/lib/spree/core/environment_extension.rb +0 -9
 - data/lib/spree/core/product_filters.rb +1 -41
 - data/lib/spree/core/role_configuration.rb +0 -14
 - data/lib/spree/core/search/base.rb +18 -35
 - data/lib/spree/core/state_machines/order.rb +2 -2
 - data/lib/spree/core/state_machines.rb +2 -11
 - data/lib/spree/core/stock_configuration.rb +18 -0
 - data/lib/spree/core/validators/email.rb +5 -3
 - data/lib/spree/core/version.rb +5 -1
 - data/lib/spree/core/versioned_value.rb +75 -0
 - data/lib/spree/core.rb +40 -11
 - data/lib/spree/deprecation.rb +1 -1
 - data/lib/spree/event/configuration.rb +0 -5
 - data/lib/spree/event/subscriber.rb +0 -18
 - data/lib/spree/event/subscriber_registry.rb +7 -7
 - data/lib/spree/event.rb +1 -32
 - data/lib/spree/i18n.rb +0 -22
 - data/lib/spree/migrations.rb +13 -11
 - data/lib/spree/money.rb +3 -18
 - data/lib/spree/permission_sets/default_customer.rb +8 -1
 - data/lib/spree/permitted_attributes.rb +17 -59
 - data/lib/spree/preferences/configuration.rb +84 -0
 - data/lib/spree/preferences/preferable.rb +13 -0
 - data/lib/spree/preferences/preferable_class_methods.rb +37 -4
 - data/lib/spree/preferences/preference_differentiator.rb +29 -0
 - data/lib/spree/preferences/static_model_preferences.rb +25 -10
 - data/lib/spree/rails_compatibility.rb +106 -0
 - data/lib/spree/testing_support/blacklist_urls.rb +1 -1
 - data/lib/spree/testing_support/bus_helpers.rb +101 -0
 - data/lib/spree/testing_support/capybara_ext.rb +0 -30
 - data/lib/spree/testing_support/common_rake.rb +71 -23
 - data/lib/spree/testing_support/controller_requests.rb +0 -82
 - data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
 - data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +1 -1
 - data/lib/spree/testing_support/dummy_app/database.yml +42 -22
 - data/lib/spree/testing_support/dummy_app/migrations.rb +0 -3
 - data/lib/spree/testing_support/dummy_app.rb +47 -34
 - data/lib/spree/testing_support/factories/address_factory.rb +9 -6
 - data/lib/spree/testing_support/factories/calculator_factory.rb +3 -0
 - data/lib/spree/testing_support/factories/country_factory.rb +1 -2
 - data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -1
 - data/lib/spree/testing_support/factories/order_factory.rb +8 -5
 - data/lib/spree/testing_support/factories/product_factory.rb +4 -1
 - data/lib/spree/testing_support/factories/promotion_factory.rb +28 -14
 - data/lib/spree/testing_support/factories/refund_factory.rb +0 -1
 - data/lib/spree/testing_support/factories/state_factory.rb +8 -2
 - data/lib/spree/testing_support/factories/store_credit_factory.rb +4 -4
 - data/lib/spree/testing_support/factories/user_factory.rb +6 -0
 - data/lib/spree/testing_support/factory_bot.rb +2 -2
 - data/lib/spree/testing_support/order_walkthrough.rb +6 -8
 - data/lib/spree/testing_support/preferences.rb +0 -25
 - data/lib/spree/testing_support/silence_deprecations.rb +9 -0
 - data/lib/tasks/colorado_delivery_fee.rake +28 -0
 - data/lib/tasks/payment_method.rake +29 -0
 - data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
 - data/lib/tasks/solidus/delete_prices_with_nil_amount.rake +8 -0
 - data/lib/tasks/solidus/split_promotions_with_any_match_policy.rake +33 -0
 - data/solidus_core.gemspec +14 -7
 - metadata +127 -78
 - data/app/mailers/spree/test_mailer.rb +0 -13
 - data/app/models/concerns/spree/user_payment_source.rb +0 -26
 - data/app/models/spree/calculator/free_shipping.rb +0 -22
 - data/app/models/spree/calculator/percent_per_item.rb +0 -51
 - data/app/models/spree/calculator/price_sack.rb +0 -28
 - data/app/models/spree/gateway/bogus.rb +0 -13
 - data/app/models/spree/gateway/bogus_simple.rb +0 -13
 - data/app/models/spree/gateway.rb +0 -14
 - data/app/models/spree/order/checkout.rb +0 -244
 - data/app/models/spree/order_capturing.rb +0 -50
 - data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
 - data/app/models/spree/tax/shipping_rate_taxer.rb +0 -24
 - data/lib/generators/solidus/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -10
 - data/lib/generators/solidus/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -9
 - data/lib/generators/spree/install/install_generator.rb +0 -15
 - data/lib/solidus/migrations/rename_gateways.rb +0 -41
 - data/lib/spree/core/current_store.rb +0 -24
 - data/lib/spree/paranoia_deprecations.rb +0 -41
 - data/lib/spree/promo/environment.rb +0 -12
 - data/lib/spree/testing_support/bar_ability.rb +0 -19
 - data/lib/tasks/core.rake +0 -104
 - data/lib/tasks/email.rake +0 -12
 - data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
 - data/lib/tasks/migrations/migrate_address_names.rake +0 -158
 - data/lib/tasks/migrations/migrate_default_billing_addresses_to_address_book.rake +0 -26
 - data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
 - data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
 - data/lib/tasks/migrations/rename_gateways.rake +0 -23
 - data/lib/tasks/order_capturing.rake +0 -27
 - data/lib/tasks/upgrade.rake +0 -13
 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            class AddApplyToAllToVariantPropertyRule < ActiveRecord::Migration[5.1]
         
     | 
| 
       4 
     | 
    
         
            -
              def  
     | 
| 
      
 4 
     | 
    
         
            +
              def change
         
     | 
| 
       5 
5 
     | 
    
         
             
                add_column :spree_variant_property_rules, :apply_to_all, :boolean, default: false, null: false
         
     | 
| 
       6 
6 
     | 
    
         
             
                change_column :spree_variant_property_rules, :apply_to_all, :boolean, default: true
         
     | 
| 
       7 
7 
     | 
    
         
             
              end
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class SetPromotionsWithAnyPolicyToAllIfPossible < ActiveRecord::Migration[5.2]
         
     | 
| 
      
 4 
     | 
    
         
            +
              def up
         
     | 
| 
      
 5 
     | 
    
         
            +
                Spree::Promotion.where(match_policy: :any).includes(:promotion_rules).all.each do |promotion|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  if promotion.promotion_rules.length <= 1
         
     | 
| 
      
 7 
     | 
    
         
            +
                    promotion.update!(match_policy: :all)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  else
         
     | 
| 
      
 9 
     | 
    
         
            +
                    raise StandardError, <<~MSG
         
     | 
| 
      
 10 
     | 
    
         
            +
                      You have promotions with a match policy of any and more than one rule. Please
         
     | 
| 
      
 11 
     | 
    
         
            +
                      run `bundle exec rake solidus:split_promotions_with_any_match_policy`.
         
     | 
| 
      
 12 
     | 
    
         
            +
                    MSG
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              def down
         
     | 
| 
      
 18 
     | 
    
         
            +
                # No-Op
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
    
        data/db/seeds.rb
    CHANGED
    
    | 
         @@ -1,5 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # frozen_string_literal: true
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            require 'thor'
         
     | 
| 
      
 4 
     | 
    
         
            +
            shell = Thor::Base.shell.new
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       3 
6 
     | 
    
         
             
            %w(
         
     | 
| 
       4 
7 
     | 
    
         
             
              stores
         
     | 
| 
       5 
8 
     | 
    
         
             
              store_credit
         
     | 
| 
         @@ -12,6 +15,6 @@ 
     | 
|
| 
       12 
15 
     | 
    
         
             
              roles
         
     | 
| 
       13 
16 
     | 
    
         
             
              shipping_categories
         
     | 
| 
       14 
17 
     | 
    
         
             
            ).each do |seed|
         
     | 
| 
       15 
     | 
    
         
            -
               
     | 
| 
      
 18 
     | 
    
         
            +
              shell.say_status :seed, seed
         
     | 
| 
       16 
19 
     | 
    
         
             
              require_relative "default/spree/#{seed}"
         
     | 
| 
       17 
20 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            initializer 'spree_authentication.rb', <<~RUBY
         
     | 
| 
      
 2 
     | 
    
         
            +
              # Please replace this module with your own implementation of
         
     | 
| 
      
 3 
     | 
    
         
            +
              # ApplicationController#spree_current_user.
         
     | 
| 
      
 4 
     | 
    
         
            +
              #
         
     | 
| 
      
 5 
     | 
    
         
            +
              # The current setup will allow doing guest checkouts.
         
     | 
| 
      
 6 
     | 
    
         
            +
              ActiveSupport.on_load(:action_controller) do
         
     | 
| 
      
 7 
     | 
    
         
            +
                def spree_current_user
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # Define here your custom logic for retrieving the current user
         
     | 
| 
      
 9 
     | 
    
         
            +
                  nil
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
              # Re-raise the original authorization error on anauthorized access
         
     | 
| 
      
 14 
     | 
    
         
            +
              Rails.application.config.to_prepare do
         
     | 
| 
      
 15 
     | 
    
         
            +
                Spree::BaseController.unauthorized_redirect = -> { raise "Define the behavior for unauthorized access in \#{__FILE__}." }
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            RUBY
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            create_file 'app/views/spree/admin/shared/_navigation_footer.html.erb', <<~ERB
         
     | 
| 
      
 20 
     | 
    
         
            +
              <!-- Add here your login/logout links in 'app/views/spree/admin/shared/_navigation_footer.html.erb'. -->
         
     | 
| 
      
 21 
     | 
    
         
            +
            ERB
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Skip if already in the gemfile
         
     | 
| 
      
 2 
     | 
    
         
            +
            if Bundler.locked_gems.dependencies['solidus_auth_devise']
         
     | 
| 
      
 3 
     | 
    
         
            +
              say_status :skipping, 'solidus_auth_devise is already in the gemfile'
         
     | 
| 
      
 4 
     | 
    
         
            +
            else
         
     | 
| 
      
 5 
     | 
    
         
            +
              bundle_command("add solidus_auth_devise")
         
     | 
| 
      
 6 
     | 
    
         
            +
            end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            if options[:auto_accept]
         
     | 
| 
      
 9 
     | 
    
         
            +
              migrations_flag = options[:migrate] ? '--auto-run-migrations' : '--skip-migrations'
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            generate "solidus:auth:install #{migrations_flag}"
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            append_file "db/seeds.rb", <<~RUBY
         
     | 
| 
      
 15 
     | 
    
         
            +
              Spree::Auth::Engine.load_seed
         
     | 
| 
      
 16 
     | 
    
         
            +
            RUBY
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            user_class = options[:user_class] || 'Spree::User'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            begin
         
     | 
| 
      
 4 
     | 
    
         
            +
              user_class.classify.constantize
         
     | 
| 
      
 5 
     | 
    
         
            +
            rescue NameError
         
     | 
| 
      
 6 
     | 
    
         
            +
              say_status :error, "Can't find an existing user class named #{user_class.classify}, plese set up one before using this authentication option.", :red
         
     | 
| 
      
 7 
     | 
    
         
            +
              abort
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            generate "spree:custom_user #{user_class.shellescape}"
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # noop
         
     | 
| 
         @@ -0,0 +1,54 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # # This will unpack the solidus gem into its components without calling `bundle install`.
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # # Nothing to do if the `solidus` gem is not there.
         
     | 
| 
      
 4 
     | 
    
         
            +
            solidus = Bundler.locked_gems.dependencies['solidus'] or return
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            # Write and remove into and from a Gemfile
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            # This custom injector fixes support for path, git and custom sources,
         
     | 
| 
      
 9 
     | 
    
         
            +
            # which is missing in bundler's upstream injector for a dependency fetched
         
     | 
| 
      
 10 
     | 
    
         
            +
            # with `Bundler.locked_gems.dependencies`.
         
     | 
| 
      
 11 
     | 
    
         
            +
            bundler_injector = Class.new(Bundler::Injector) do
         
     | 
| 
      
 12 
     | 
    
         
            +
              def build_gem_lines(conservative_versioning)
         
     | 
| 
      
 13 
     | 
    
         
            +
                @deps.map do |d|
         
     | 
| 
      
 14 
     | 
    
         
            +
                  name = d.name.dump
         
     | 
| 
      
 15 
     | 
    
         
            +
                  is_local = d.source.instance_of?(Bundler::Source::Path)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  is_git = d.source.instance_of?(Bundler::Source::Git)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  requirement = if is_local
         
     | 
| 
      
 19 
     | 
    
         
            +
                                  ", path: \"#{d.source.path}\""
         
     | 
| 
      
 20 
     | 
    
         
            +
                                elsif is_git
         
     | 
| 
      
 21 
     | 
    
         
            +
                                  ", git: \"#{d.git}\"".then { |g| d.ref ? g + ", ref: \"#{d.ref}\"" : g }
         
     | 
| 
      
 22 
     | 
    
         
            +
                                elsif conservative_versioning
         
     | 
| 
      
 23 
     | 
    
         
            +
                                  ", \"#{conservative_version(@definition.specs[d.name][0])}\""
         
     | 
| 
      
 24 
     | 
    
         
            +
                                else
         
     | 
| 
      
 25 
     | 
    
         
            +
                                  ", #{d.requirement.as_list.map(&:dump).join(", ")}"
         
     | 
| 
      
 26 
     | 
    
         
            +
                                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  source = ", source: \"#{d.source.remotes.join(",")}\"" unless is_local || is_git || d.source.nil?
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  %(gem #{name}#{requirement}#{source})
         
     | 
| 
      
 31 
     | 
    
         
            +
                end.join("\n")
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            to_dependency = ->(component) do
         
     | 
| 
      
 36 
     | 
    
         
            +
              Bundler::Dependency.new(
         
     | 
| 
      
 37 
     | 
    
         
            +
                component,
         
     | 
| 
      
 38 
     | 
    
         
            +
                solidus.requirement,
         
     | 
| 
      
 39 
     | 
    
         
            +
                "source" => solidus.source,
         
     | 
| 
      
 40 
     | 
    
         
            +
                "git" => solidus.source.try(:uri),
         
     | 
| 
      
 41 
     | 
    
         
            +
                "ref" => solidus.source.try(:ref),
         
     | 
| 
      
 42 
     | 
    
         
            +
              )
         
     | 
| 
      
 43 
     | 
    
         
            +
            end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            bundler_injector.inject(%w[
         
     | 
| 
      
 46 
     | 
    
         
            +
              solidus_core
         
     | 
| 
      
 47 
     | 
    
         
            +
              solidus_backend
         
     | 
| 
      
 48 
     | 
    
         
            +
              solidus_api
         
     | 
| 
      
 49 
     | 
    
         
            +
              solidus_sample
         
     | 
| 
      
 50 
     | 
    
         
            +
            ].map(&to_dependency))
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            bundler_injector.remove(%w[
         
     | 
| 
      
 53 
     | 
    
         
            +
              solidus
         
     | 
| 
      
 54 
     | 
    
         
            +
            ])
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            solidus = Bundler.locked_gems.dependencies['solidus']
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            if Bundler.locked_gems.dependencies['solidus_frontend']
         
     | 
| 
      
 4 
     | 
    
         
            +
              say_status :skipping, "solidus_frontend is already in the bundle", :blue
         
     | 
| 
      
 5 
     | 
    
         
            +
            else
         
     | 
| 
      
 6 
     | 
    
         
            +
              # `solidus_frontend` is not sourced from rubygems if the solidus gem was not.
         
     | 
| 
      
 7 
     | 
    
         
            +
              github_solidus_frontend = '--github solidusio/solidus_frontend' unless solidus.nil? || solidus.source.is_a?(Bundler::Source::Rubygems)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              bundle_command("add solidus_frontend #{github_solidus_frontend}")
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            # Disable solidus_bolt installation from solidus_frontend as it can be
         
     | 
| 
      
 13 
     | 
    
         
            +
            # explicitly selected directly from the solidus installer.
         
     | 
| 
      
 14 
     | 
    
         
            +
            with_env('SKIP_SOLIDUS_BOLT' => 'true') do
         
     | 
| 
      
 15 
     | 
    
         
            +
              generate 'solidus_frontend:install'
         
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unless Bundler.locked_gems.dependencies['solidus_frontend']
         
     | 
| 
      
 2 
     | 
    
         
            +
              say_status :warning, "Support for frontends other than `solidus_frontend` by `solidus_bolt` is still in progress.", :yellow
         
     | 
| 
      
 3 
     | 
    
         
            +
            end
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            unless Bundler.locked_gems.dependencies['solidus_auth_devise']
         
     | 
| 
      
 6 
     | 
    
         
            +
              say_status :warning, "Running solidus_bolt without solidus_auth_devise is not supported.", :yellow
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            unless Bundler.locked_gems.dependencies['solidus_bolt']
         
     | 
| 
      
 10 
     | 
    
         
            +
              bundle_command 'add solidus_bolt'
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            generate 'solidus_bolt:install'
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # noop
         
     | 
| 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unless Bundler.locked_gems.dependencies['solidus_frontend']
         
     | 
| 
      
 2 
     | 
    
         
            +
              say_status :warning, "Support for frontends other than `solidus_frontend` by `solidus_paypal_commerce_platform` is still in progress.", :yellow
         
     | 
| 
      
 3 
     | 
    
         
            +
            end
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            unless Bundler.locked_gems.dependencies['solidus_paypal_commerce_platform']
         
     | 
| 
      
 6 
     | 
    
         
            +
              version = @selected_frontend == 'classic' ? '< 1' : '~> 1.0'
         
     | 
| 
      
 7 
     | 
    
         
            +
              bundle_command "add solidus_paypal_commerce_platform --version='#{version}'"
         
     | 
| 
      
 8 
     | 
    
         
            +
            end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            generate 'solidus_paypal_commerce_platform:install'
         
     |