Class: AnimateIt::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- AnimateIt::Generators::InstallGenerator
- Defined in:
- lib/generators/animate_it/install/install_generator.rb
Overview
Installs AnimateIt into the host app:
bin/rails generate animate_it:install
- Copies an opinionated initializer that owns engine config.
- Inserts a
mount AnimateIt::Engineline into config/routes.rb, placed AFTERdevise_forif Devise is in use (so warden serializers register correctly — see config/routes.rb in the host app).
Instance Method Summary collapse
Instance Method Details
#add_route ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/generators/animate_it/install/install_generator.rb', line 21 def add_route routes_path = Rails.root.join("config/routes.rb") contents = File.exist?(routes_path) ? File.read(routes_path) : "" return say_status(:exists, "AnimateIt::Engine already mounted in config/routes.rb") if contents.include?("AnimateIt::Engine") snippet = <<~ROUTE.chomp \n # AnimateIt engine — mount AFTER devise_for so warden serializers register correctly. mount AnimateIt::Engine, at: AnimateIt.config.mount_path if Rails.env.local? ROUTE if contents.include?("devise_for") inject_into_file "config/routes.rb", snippet, after: /devise_for[^\n]*\n/ else route "mount AnimateIt::Engine, at: AnimateIt.config.mount_path if Rails.env.local?" end end |
#copy_initializer ⇒ Object
17 18 19 |
# File 'lib/generators/animate_it/install/install_generator.rb', line 17 def copy_initializer template "animate_it.rb", "config/routes.rb".sub("routes.rb", "initializers/animate_it.rb") end |