Module: Opal::Vite::Rails::Helper

Defined in:
lib/opal/vite/rails/helper.rb

Instance Method Summary collapse

Instance Method Details

#opal_asset_path(name) ⇒ Object

Get asset path from Vite manifest



36
37
38
39
40
41
42
43
# File 'lib/opal/vite/rails/helper.rb', line 36

def opal_asset_path(name)
  if defined?(ViteRuby)
    ViteRuby.manifest.lookup(name).to_s
  else
    # Fallback to standard asset path
    "/#{Opal::Vite::Rails.config.public_output_path}/#{name}"
  end
end

#opal_javascript_tag(name, **options) ⇒ Object

Generate script tag for Opal JavaScript

Usage in views:

<%= opal_javascript_tag "application" %>


10
11
12
13
14
15
16
17
18
19
# File 'lib/opal/vite/rails/helper.rb', line 10

def opal_javascript_tag(name, **options)
  if vite_running?
    # Development: load from Vite dev server
    vite_javascript_tag("#{name}.js", **options)
  else
    # Production: load from manifest
    asset_path = opal_asset_path("#{name}.js")
    javascript_include_tag(asset_path, **options)
  end
end

#opal_javascript_tags(*names, **options) ⇒ Object

Generate multiple script tags for Opal JavaScript files

Usage:

<%= opal_javascript_tags "application", "components/widget" %>


26
27
28
# File 'lib/opal/vite/rails/helper.rb', line 26

def opal_javascript_tags(*names, **options)
  safe_join(names.map { |name| opal_javascript_tag(name, **options) }, "\n")
end

#opal_runtime_tag(**options) ⇒ Object

Include Opal runtime This is automatically included when using opal_javascript_tag, but can be called explicitly if needed



48
49
50
51
52
53
54
55
# File 'lib/opal/vite/rails/helper.rb', line 48

def opal_runtime_tag(**options)
  if vite_running?
    vite_javascript_tag("@opal-runtime", **options)
  else
    asset_path = opal_asset_path("opal-runtime.js")
    javascript_include_tag(asset_path, **options)
  end
end

#vite_running?Boolean

Check if Vite dev server is running

Returns:

  • (Boolean)


31
32
33
# File 'lib/opal/vite/rails/helper.rb', line 31

def vite_running?
  defined?(ViteRuby) && ViteRuby.instance.dev_server_running?
end