Class: Micra::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Micra::Generators::InstallGenerator
- Defined in:
- lib/generators/micra/install/install_generator.rb
Instance Method Summary collapse
Instance Method Details
#inject_includes_in_layout ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/generators/micra/install/install_generator.rb', line 22 def inject_includes_in_layout layout = "app/views/layouts/application.html.erb" return unless File.exist?(layout) unless File.read(layout).include?("micra_includes") inject_into_file layout, " <%= micra_includes %>\n", before: " </head>\n" end end |
#pin_micra_in_importmap ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/generators/micra/install/install_generator.rb', line 12 def pin_micra_in_importmap return unless File.exist?("config/importmap.rb") line = %(pin "micra", to: "https://cdn.jsdelivr.net/npm/micra.js@#{Micra::Rails::MICRA_JS_VERSION}/dist/micra.esm.js", preload: true\n) append_to_file "config/importmap.rb" do "\n# Micra.js — reactive UI directives (<5 KB gzip)\n#{line}" end end |
#show_done_message ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/generators/micra/install/install_generator.rb', line 33 def say "" say "✔ Micra.js installed." say "" say " Try it in any view:" say "" say %( <%= micra_component :counter, count: 0 do %>) say %( <button @click="dec">−</button>) say %( <strong data-text="count"></strong>) say %( <button @click="inc">+</button>) say %( <% end %>) say "" say %( Then in JS (app/javascript/application.js or similar):) say "" say %( import * as Micra from "micra") say %( Micra.define("counter", {) say %( state: { count: 0 },) say %( inc() { this.state.count++ },) say %( dec() { this.state.count-- },) say %( })) say "" say " Docs: https://denisfl.github.io/micra.js/" say "" end |