Class: SolidusPromotions::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/solidus_promotions/install/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (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_migrationsObject



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_initializerObject



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_configObject



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_initializerObject



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_engineObject



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_migrationsObject



39
40
41
42
43
44
45
46
# File 'lib/generators/solidus_promotions/install/install_generator.rb', line 39

def run_migrations
  run_migrations = options[: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