Class: SolidusConfigurableKits::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- SolidusConfigurableKits::Generators::InstallGenerator
- Defined in:
- lib/generators/solidus_configurable_kits/install/install_generator.rb
Constant Summary collapse
- MOUNT_ROUTE =
"mount SolidusConfigurableKits::Engine"
Instance Method Summary collapse
- #add_javascripts ⇒ Object
- #add_migrations ⇒ Object
- #add_stylesheets ⇒ Object
- #configure_pricing_options ⇒ Object
- #copy_initializer ⇒ Object
- #install_routes ⇒ Object
- #run_migrations ⇒ Object
Instance Method Details
#add_javascripts ⇒ Object
15 16 17 18 19 20 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 15 def add_javascripts append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_configurable_kits\n" append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_configurable_kits\n" end |
#add_migrations ⇒ Object
27 28 29 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 27 def add_migrations run 'bin/rails railties:install:migrations FROM=solidus_configurable_kits' end |
#add_stylesheets ⇒ Object
22 23 24 25 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 22 def add_stylesheets inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/solidus_configurable_kits\n", before: %r{\*/}, verbose: true # rubocop:disable Layout/LineLength inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/solidus_configurable_kits\n", before: %r{\*/}, verbose: true # rubocop:disable Layout/LineLength end |
#configure_pricing_options ⇒ Object
31 32 33 34 35 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 31 def inject_into_file 'config/initializers/spree.rb', " config.variant_price_selector_class = \"SolidusConfigurableKits::PriceSelector\"\n", after: "Spree.config do |config|\n", verbose: true end |
#copy_initializer ⇒ Object
11 12 13 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 11 def copy_initializer template 'initializer.rb', 'config/initializers/solidus_configurable_kits.rb' end |
#install_routes ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 46 def install_routes routes_file_path = File.join('config', 'routes.rb') unless File.read(routes_file_path).include? MOUNT_ROUTE insert_into_file routes_file_path, after: "Rails.application.routes.draw do\n" do <<-RUBY # This line mounts Solidus's routes at the root of your application. # This means, any requests to URLs such as /products, will go to Spree::ProductsController. # If you would like to change where this engine is mounted, simply change the :at option to something different. # # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree" #{MOUNT_ROUTE}, at: '/' RUBY end end return if [:quiet] # rubocop:disable Rails/Output puts "*" * 50 puts "We added the following line to your application's config/routes.rb file:" puts " " puts " #{MOUNT_ROUTE}, at: '/'" # rubocop:enable Rails/Output end |
#run_migrations ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/generators/solidus_configurable_kits/install/install_generator.rb', line 37 def run_migrations run_migrations = [:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Layout/LineLength if run_migrations run 'bin/rails db:migrate' else puts 'Skipping bin/rails db:migrate, don\'t forget to run it!' # rubocop:disable Rails/Output end end |