Sha256: 6a06d159f4830e94abd1729f2b73df874091894ebfb7089f963d639884f0988d
Contents?: true
Size: 1.96 KB
Versions: 1
Compression:
Stored size: 1.96 KB
Contents
# Be sure to restart your server when you modify this file. # This is a glorified initializer module Plutonium module Reactor class Core def self.achieve_criticality! Dir[Plutonium.lib_root.join("initializers", "**", "*.rb")].each do |file| require file end # setup a middleware to serve our assets Rails.application.config.middleware.insert_before( ActionDispatch::Static, Rack::Static, urls: ["/plutonium-assets"], root: Plutonium.root.join("public"), cascade: true ) start_reloader! end def self.start_reloader! return unless Plutonium::Config.reload_files # GLORIOUS hot reloading!!! @listener ||= begin require "listen" plutonium_lib_dir = Plutonium.lib_root.to_s packages_dir = Rails.root.join("packages/").to_s listener = Listen.to(plutonium_lib_dir, packages_dir, only: /\.rb$/) do |modified, added, removed| (modified + added).each do |file| if file.starts_with?(packages_dir) # if package file was added, ignore it # otherwise rails gets mad at us since engines cannot be loaded after initial boot # TODO: check if guard has apis to control reloading dynamically next if added.include? file case File.basename(file) when "engine.rb" # reload engines. due to how we load packages, rails does not support load file # reload routes to pick up any registration changes Rails.application.reload_routes! else # non engine package files are reloaded by rails automatically end else load file end end end listener.start listener end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
plutonium-0.5.0 | lib/plutonium/reactor/core.rb |