Class: Sileo::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Sileo::Generators::InstallGenerator
- Defined in:
- lib/generators/sileo/install_generator.rb
Instance Method Summary collapse
- #add_javascript_bootstrap ⇒ Object
- #create_initializer ⇒ Object
- #create_toaster_partial ⇒ Object
- #ensure_importmap_pins ⇒ Object
- #include_stylesheet ⇒ Object
- #print_next_steps ⇒ Object
Instance Method Details
#add_javascript_bootstrap ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/generators/sileo/install_generator.rb', line 42 def add_javascript_bootstrap if File.exist?("app/javascript/controllers/application.js") bootstrap = File.read("app/javascript/controllers/application.js") unless bootstrap.include?("registerSileoControllers") append_to_file "app/javascript/controllers/application.js" do <<~JS import { registerSileoControllers } from "sileo/controllers" registerSileoControllers(application) JS end end end return unless File.exist?("app/javascript/application.js") app_js = File.read("app/javascript/application.js") return if app_js.include?("import \"sileo\"") append_to_file "app/javascript/application.js" do <<~JS import "sileo" JS end end |
#create_initializer ⇒ Object
72 73 74 75 76 |
# File 'lib/generators/sileo/install_generator.rb', line 72 def create_initializer return if [:skip_initializer] copy_file "sileo.rb", "config/initializers/sileo.rb" end |
#create_toaster_partial ⇒ Object
68 69 70 |
# File 'lib/generators/sileo/install_generator.rb', line 68 def create_toaster_partial copy_file "_sileo_toaster.html.erb", "app/views/application/_sileo_toaster.html.erb" end |
#ensure_importmap_pins ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/generators/sileo/install_generator.rb', line 10 def ensure_importmap_pins return unless File.exist?("config/importmap.rb") importmap = File.read("config/importmap.rb") return if importmap.include?("pin \"sileo\"") append_to_file "config/importmap.rb" do <<~RUBY # Sileo Rails pin "sileo", to: "sileo/index.js" pin "sileo/install", to: "sileo/install.js" pin "sileo/store", to: "sileo/store.js" pin "sileo/controllers", to: "sileo/controllers/index.js" pin "sileo/controllers/toaster_controller", to: "sileo/controllers/toaster_controller.js" RUBY end end |
#include_stylesheet ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/sileo/install_generator.rb', line 28 def include_stylesheet if File.exist?("app/assets/stylesheets/application.css") css = File.read("app/assets/stylesheets/application.css") return if css.include?("sileo.css") append_to_file "app/assets/stylesheets/application.css", "\n@import \"sileo.css\";\n" elsif File.exist?("app/assets/stylesheets/application.scss") scss = File.read("app/assets/stylesheets/application.scss") return if scss.include?("@import 'sileo'") append_to_file "app/assets/stylesheets/application.scss", "\n@import 'sileo';\n" else create_file "app/assets/stylesheets/sileo_import.css", "@import \"sileo.css\";\n" end end |
#print_next_steps ⇒ Object
78 79 80 81 |
# File 'lib/generators/sileo/install_generator.rb', line 78 def print_next_steps say "\nSileo Rails installed.", :green say "Add <%= render 'application/sileo_toaster' %> to your application layout.", :yellow end |