Module: SourceMonitor::Assets::Bundler
- Defined in:
- lib/source_monitor/assets/bundler.rb
Constant Summary collapse
- MissingBuildError =
Class.new(StandardError)
Class Method Summary collapse
- .build! ⇒ Object
- .build_artifacts ⇒ Object
- .build_css! ⇒ Object
- .build_js! ⇒ Object
- .engine_root ⇒ Object
- .run_script!(script) ⇒ Object
- .verify! ⇒ Object
Class Method Details
.build! ⇒ Object
10 11 12 |
# File 'lib/source_monitor/assets/bundler.rb', line 10 def build! run_script!("build") end |
.build_artifacts ⇒ Object
34 35 36 37 38 39 |
# File 'lib/source_monitor/assets/bundler.rb', line 34 def build_artifacts [ engine_root.join("app/assets/builds/source_monitor/application.css"), engine_root.join("app/assets/builds/source_monitor/application.js") ] end |
.build_css! ⇒ Object
14 15 16 |
# File 'lib/source_monitor/assets/bundler.rb', line 14 def build_css! run_script!("build:css") end |
.build_js! ⇒ Object
18 19 20 |
# File 'lib/source_monitor/assets/bundler.rb', line 18 def build_js! run_script!("build:js") end |
.engine_root ⇒ Object
46 47 48 |
# File 'lib/source_monitor/assets/bundler.rb', line 46 def engine_root SourceMonitor::Engine.root end |
.run_script!(script) ⇒ Object
41 42 43 44 |
# File 'lib/source_monitor/assets/bundler.rb', line 41 def run_script!(script) command = [ "npm", "run", script ] system({ "BUNDLE_GEMFILE" => engine_root.join("Gemfile").to_s }, *command, chdir: engine_root.to_s, exception: true) end |
.verify! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/source_monitor/assets/bundler.rb', line 22 def verify! missing = build_artifacts.reject(&:exist?) if missing.any? relative_paths = missing.map { |path| path.relative_path_from(engine_root) } raise MissingBuildError, "SourceMonitor asset build artifacts missing: #{relative_paths.join(', ')}. Run `npm run build` in the engine root to regenerate." end true end |