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