module OpenUI::Rails::RuntimeAsset

Resolves the pinned OpenUI browser runtime and the integrity metadata the mount element advertises.

The runtime is version-pinned. Self-hosted (the default) points at a file the install generator vendored into the host app; the external strategy requires an explicit, exact-version URL so no floating CDN range is used in production.

Constants

FILE_PREFIX
PINNED_VERSION

Public Class Methods

default_runtime?(configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 46
def default_runtime?(configuration)
  !external?(configuration) && !configuration.runtime_url && version(configuration) == PINNED_VERSION
end
default_url(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 25
def default_url(configuration = OpenUI::Rails.configuration)
  "#{configuration.local_runtime_path}/#{FILE_PREFIX}-#{version(configuration)}.js"
end
external?(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 50
def external?(configuration = OpenUI::Rails.configuration)
  configuration.runtime_assets == :external
end
integrity(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 38
def integrity(configuration = OpenUI::Rails.configuration)
  configuration.runtime_integrity || (default_runtime?(configuration) ? RuntimePackage::FILES.fetch("package/dist/openui-bundle.min.js").last : nil)
end
mount_data(configuration = OpenUI::Rails.configuration) click to toggle source

The ‘data-openui-runtime-*` attributes merged into every mount.

# File lib/openui/rails/runtime_asset.rb, line 55
def mount_data(configuration = OpenUI::Rails.configuration)
  {
    openui_runtime_url: url(configuration),
    openui_runtime_version: version(configuration),
    openui_runtime_integrity: integrity(configuration)
  }.compact
end
stylesheet_integrity(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 42
def stylesheet_integrity(configuration = OpenUI::Rails.configuration)
  configuration.runtime_stylesheet_integrity || (default_runtime?(configuration) ? RuntimePackage::FILES.fetch("package/dist/openui-styles.css").last : nil)
end
stylesheet_url(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 29
def stylesheet_url(configuration = OpenUI::Rails.configuration)
  return configuration.runtime_stylesheet_url if configuration.runtime_stylesheet_url
  if external?(configuration)
    raise ConfigurationError, "external runtime requires runtime_stylesheet_url"
  end

  "#{configuration.local_runtime_path}/#{FILE_PREFIX}-#{version(configuration)}.css"
end
url(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 21
def url(configuration = OpenUI::Rails.configuration)
  configuration.runtime_url || default_url(configuration)
end
version(configuration = OpenUI::Rails.configuration) click to toggle source
# File lib/openui/rails/runtime_asset.rb, line 17
def version(configuration = OpenUI::Rails.configuration)
  configuration.runtime_version || PINNED_VERSION
end