Class: ModerntwConfirms::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- ModerntwConfirms::Generators::InstallGenerator
- Defined in:
- lib/generators/moderntw_confirms/install/install_generator.rb
Instance Method Summary collapse
- #add_modal_to_layout ⇒ Object
- #add_stimulus_controller ⇒ Object
- #copy_modal_partial ⇒ Object
- #create_initializer ⇒ Object
- #display_post_install_message ⇒ Object
- #install_javascript ⇒ Object
Instance Method Details
#add_modal_to_layout ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 25 def add_modal_to_layout say "Adding modal to application layout", :green layout_file = "app/views/layouts/application.html.erb" if File.exist?(Rails.root.join(layout_file)) insert_into_file layout_file, before: "</body>" do "\n <%= render 'shared/moderntw_confirms_modal' %>\n " end else say "Please add <%= render 'shared/moderntw_confirms_modal' %> before </body> in your layout", :yellow end end |
#add_stimulus_controller ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 38 def add_stimulus_controller if using_stimulus? say "Adding Stimulus controller for ModerntwConfirms", :green append_to_file "app/javascript/controllers/index.js" do <<~JS import ConfirmModalController from "moderntw_confirms/confirm_modal_controller" application.register("moderntw-confirms", ConfirmModalController) JS end end end |
#copy_modal_partial ⇒ Object
20 21 22 23 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 20 def copy_modal_partial say "Copying modal partial", :green copy_file "_moderntw_confirms_modal.html.erb", "app/views/shared/_moderntw_confirms_modal.html.erb" end |
#create_initializer ⇒ Object
51 52 53 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 51 def create_initializer template "moderntw_confirms.rb", "config/initializers/moderntw_confirms.rb" end |
#display_post_install_message ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 55 def say "\n ModerntwConfirms has been installed successfully! 🎉", :green say "\n Next steps:", :yellow say " 1. Make sure Tailwind CSS is installed and configured in your app" say " 2. Restart your Rails server" say " 3. All your data-confirm attributes will now use beautiful modals!" say "\n Configuration:", :yellow say " Edit config/initializers/moderntw_confirms.rb to customize modal styles" say "\n Usage:", :yellow say " Just use data-confirm as usual:" say ' <%= link_to "Delete", item_path(@item), method: :delete, data: { confirm: "Are you sure?" } %>' say "\n" end |
#install_javascript ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/generators/moderntw_confirms/install/install_generator.rb', line 10 def install_javascript if using_importmap? install_with_importmap elsif using_webpacker? install_with_webpacker else install_with_asset_pipeline end end |