Module: Wurk::DashboardManifest
- Defined in:
- lib/wurk/dashboard_manifest.rb
Overview
Validates that the precompiled dashboard bundle in vendor/assets matches this gem version. Run from the engine initializer in production to catch packaging mistakes (forgotten ‘frontend:build`, stale vendor/assets, mismatched release) at boot rather than as a runtime 500.
Defined Under Namespace
Classes: MissingError, VersionMismatch
Constant Summary collapse
- MANIFEST_NAME =
'wurk-manifest.json'
Class Method Summary collapse
Class Method Details
.check!(root: ::Wurk::Engine.root, expected: ::Wurk::VERSION) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/wurk/dashboard_manifest.rb', line 22 def check!(root: ::Wurk::Engine.root, expected: ::Wurk::VERSION) file = path(root) unless file.exist? raise MissingError, "Wurk dashboard manifest missing at #{file}. " \ 'Did `bin/rake frontend:build` run before `gem build`?' end data = ::JSON.parse(file.read) actual = data['version'] return true if actual == expected raise VersionMismatch, "Wurk dashboard manifest version #{actual.inspect} != gem #{expected.inspect}" end |
.path(root) ⇒ Object
18 19 20 |
# File 'lib/wurk/dashboard_manifest.rb', line 18 def path(root) ::Pathname.new(root).join('vendor', 'assets', 'dashboard', MANIFEST_NAME) end |