Module: RubyUI::Generators::JavascriptUtils
- Included in:
- ComponentGenerator, InstallGenerator
- Defined in:
- lib/generators/ruby_ui/javascript_utils.rb
Instance Method Summary collapse
- #install_js_package(package) ⇒ Object
- #pin_motion ⇒ Object
- #pin_tippy_js ⇒ Object
- #pin_with_importmap(package) ⇒ Object
- #using_importmap? ⇒ Boolean
- #using_npm? ⇒ Boolean
- #using_yarn? ⇒ Boolean
Instance Method Details
#install_js_package(package) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 4 def install_js_package(package) if using_importmap? pin_with_importmap(package) elsif using_yarn? run "yarn add #{package}" elsif using_npm? run "npm install #{package}" else say "Could not detect the package manager, you need to install '#{package}' manually", :red end end |
#pin_motion ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 35 def pin_motion say <<~TEXT WARNING: Installing motion from CDN because `bin/importmap pin motion` doesn't download the correct file. TEXT inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY pin "motion", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm"\n RUBY end |
#pin_tippy_js ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 45 def pin_tippy_js say <<~TEXT WARNING: Installing tippy.js from CDN because `bin/importmap pin tippy.js` doesn't download the correct file. TEXT inject_into_file Rails.root.join("config/importmap.rb"), <<~RUBY pin "tippy.js", to: "https://cdn.jsdelivr.net/npm/[email protected]/+esm" pin "@popperjs/core", to: "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/+esm"\n RUBY end |
#pin_with_importmap(package) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 16 def pin_with_importmap(package) case package when "motion" pin_motion when "tippy.js" pin_tippy_js else run "bin/importmap pin #{package}" end end |
#using_importmap? ⇒ Boolean
27 28 29 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 27 def using_importmap? File.exist?(Rails.root.join("config/importmap.rb")) && File.exist?(Rails.root.join("bin/importmap")) end |
#using_npm? ⇒ Boolean
31 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 31 def using_npm? = File.exist?(Rails.root.join("package-lock.json")) |
#using_yarn? ⇒ Boolean
33 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 33 def using_yarn? = File.exist?(Rails.root.join("yarn.lock")) |