Class: DlnkToast::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- DlnkToast::Generators::InstallGenerator
- Defined in:
- lib/generators/dlnk_toast/install/install_generator.rb
Instance Method Summary collapse
- #copy_initializer ⇒ Object
- #create_stimulus_bridge ⇒ Object
- #display_post_install ⇒ Object
- #inject_stylesheet ⇒ Object
- #inject_toast_partial ⇒ Object
- #setup_importmap ⇒ Object
Instance Method Details
#copy_initializer ⇒ Object
10 11 12 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 10 def copy_initializer copy_file "initializer.rb", "config/initializers/dlnk_toast.rb" end |
#create_stimulus_bridge ⇒ Object
21 22 23 24 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 21 def create_stimulus_bridge create_file "app/javascript/controllers/dlnk_toast_controller.js", %(export { default } from "dlnk_toast/toast_controller"\n) end |
#display_post_install ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 55 def display_post_install say "" say "DlnkToast installed!", :green say "" say " Stylesheet: dlnk_toast/application.css added to layouts" say " Controller: dlnk_toast_controller.js bridge created" say " Partial: dlnk_toast/toast injected before </body>" say " Config: config/initializers/dlnk_toast.rb" say "" say "Customize colors by overriding --dlnk-toast-* CSS variables." end |
#inject_stylesheet ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 26 def inject_stylesheet %w[application admin auth].each do |layout| path = "app/views/layouts/#{layout}.html.erb" next unless File.exist?(path) content = File.read(path) next if content.include?("dlnk_toast/application") inject_into_file path, after: /stylesheet_link_tag\s+:app.*\n/ do %( <%= stylesheet_link_tag "dlnk_toast/application", "data-turbo-track": "reload" %>\n) end end end |
#inject_toast_partial ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 41 def inject_toast_partial %w[application admin auth].each do |layout| path = "app/views/layouts/#{layout}.html.erb" next unless File.exist?(path) content = File.read(path) next if content.include?("dlnk_toast/toast") inject_into_file path, before: "</body>" do "\n <%= render \"dlnk_toast/toast\" %>\n " end end end |
#setup_importmap ⇒ Object
14 15 16 17 18 19 |
# File 'lib/generators/dlnk_toast/install/install_generator.rb', line 14 def setup_importmap return unless File.exist?("config/importmap.rb") append_to_file "config/importmap.rb", %(\npin "dlnk_toast/toast_controller", to: "dlnk_toast/toast_controller.js"\n) end |