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_pnpm? ⇒ Boolean
- #using_yarn? ⇒ Boolean
Instance Method Details
#install_js_package(package) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 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}" elsif using_pnpm? run "pnpm install #{package}" else say "Could not detect the package manager, you need to install '#{package}' manually", :red end end |
#pin_motion ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 39 def pin_motion say " WARNING: Installing motion from CDN because `bin/importmap pin motion` doesn't download the correct file.\n TEXT\n\n inject_into_file Rails.root.join(\"config/importmap.rb\"), <<~RUBY\n pin \"motion\", to: \"https://cdn.jsdelivr.net/npm/[email protected]/+esm\"\\n\n RUBY\nend\n" |
#pin_tippy_js ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 49 def pin_tippy_js say " WARNING: Installing tippy.js from CDN because `bin/importmap pin tippy.js` doesn't download the correct file.\n TEXT\n\n inject_into_file Rails.root.join(\"config/importmap.rb\"), <<~RUBY\n pin \"tippy.js\", to: \"https://cdn.jsdelivr.net/npm/[email protected]/+esm\"\n pin \"@popperjs/core\", to: \"https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/+esm\"\\n\n RUBY\nend\n" |
#pin_with_importmap(package) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 18 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
29 30 31 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 29 def using_importmap? File.exist?(Rails.root.join("config/importmap.rb")) && File.exist?(Rails.root.join("bin/importmap")) end |
#using_npm? ⇒ Boolean
33 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 33 def using_npm? = File.exist?(Rails.root.join("package-lock.json")) |
#using_pnpm? ⇒ Boolean
35 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 35 def using_pnpm? = File.exist?(Rails.root.join("pnpm-lock.yaml")) |
#using_yarn? ⇒ Boolean
37 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 37 def using_yarn? = File.exist?(Rails.root.join("yarn.lock")) |