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_bun? ⇒ Boolean
- #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 17 18 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 4 def install_js_package(package) if using_importmap? pin_with_importmap(package) elsif using_bun? run "bun add #{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
43 44 45 46 47 48 49 50 51 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 43 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/motion@11.11.17/+esm"\n RUBY end |
#pin_tippy_js ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 53 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/tippy.js@6.3.7/+esm" pin "@popperjs/core", to: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/+esm"\n RUBY end |
#pin_with_importmap(package) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 20 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_bun? ⇒ Boolean
35 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 35 def using_bun? = File.exist?(Rails.root.join("bun.lock")) |
#using_importmap? ⇒ Boolean
31 32 33 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 31 def using_importmap? File.exist?(Rails.root.join("config/importmap.rb")) && File.exist?(Rails.root.join("bin/importmap")) end |
#using_npm? ⇒ Boolean
37 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 37 def using_npm? = File.exist?(Rails.root.join("package-lock.json")) |
#using_pnpm? ⇒ Boolean
39 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 39 def using_pnpm? = File.exist?(Rails.root.join("pnpm-lock.yaml")) |
#using_yarn? ⇒ Boolean
41 |
# File 'lib/generators/ruby_ui/javascript_utils.rb', line 41 def using_yarn? = File.exist?(Rails.root.join("yarn.lock")) |