Class: SolidusPromotions::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- SolidusPromotions::Generators::InstallGenerator
- Defined in:
- lib/generators/solidus_promotions/install/install_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_migrations ⇒ Object
- #copy_initializer ⇒ Object
- #explain_promotion_config ⇒ Object
- #modify_spree_initializer ⇒ Object
- #mount_engine ⇒ Object
- #run_migrations ⇒ Object
Class Method Details
.exit_on_failure? ⇒ Boolean
9 10 11 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 9 def self.exit_on_failure? true end |
Instance Method Details
#add_migrations ⇒ Object
17 18 19 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 17 def add_migrations run "bin/rails railties:install:migrations FROM=solidus_promotions" end |
#copy_initializer ⇒ Object
13 14 15 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 13 def copy_initializer template "initializer.rb", "config/initializers/solidus_promotions.rb" end |
#explain_promotion_config ⇒ Object
48 49 50 51 52 53 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 48 def explain_promotion_config say "SolidusPromotions is now installed. You can configure it by editing the initializer at `config/initializers/solidus_promotions.rb`." say "By default, it is not activated. In order to activate it, you need to set `Spree::Config.promotions` to `SolidusPromotions.configuration`" \ "in your `config/initializers/spree.rb` file." say "If you have been running the legacy promotion system, we recommend converting your existing promotions using the `solidus_promotions:migrate_existing_promotions` rake task." end |
#modify_spree_initializer ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 21 def modify_spree_initializer spree_rb_path = "config/initializers/spree.rb" new_content = " # Make sure we use Spree::SimpleOrderContents\n # Spree::Config.order_contents_class = \"Spree::SimpleOrderContents\"\n # Set the promotion configuration to ours\n # Spree::Config.promotions = SolidusPromotions.configuration\n RUBY\n insert_into_file spree_rb_path, new_content, after: \"Spree.config do |config|\\n\"\nend\n".gsub(/^ {8}/, "") |
#mount_engine ⇒ Object
32 33 34 35 36 37 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 32 def mount_engine inject_into_file "config/routes.rb", " mount SolidusPromotions::Engine => '/'\n", before: / mount Spree::Core::Engine.*/, verbose: true end |
#run_migrations ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 39 def run_migrations run_migrations = [:auto_run_migrations] || ["", "y", "Y"].include?(ask("Would you like to run the migrations now? [Y/n]")) if run_migrations run "bin/rails db:migrate" else puts "Skipping bin/rails db:migrate, don't forget to run it!" end end |