class Merb::BootLoader
Public Class Methods
Execute a block of code before master process is shut down. Only makes sense on platforms where Merb server can use forking.
Parameters¶ ↑
- &block
-
A block to be added to the callbacks that will be executed before master process is shut down.
:api: public
# File lib/merb-core/bootloader.rb, line 175 def before_master_shutdown(&block) before_master_shutdown_callbacks << block end
Execute a block of code before worker process is shut down. Only makes sense on platforms where Merb server can use forking.
Parameters¶ ↑
- &block
-
A block to be added to the callbacks that will be executed before worker process is shut down.
:api: public
# File lib/merb-core/bootloader.rb, line 188 def before_worker_shutdown(&block) before_worker_shutdown_callbacks << block end
Set up the default framework
Returns¶ ↑
nil
:api: plugin @overridable
# File lib/merb-core/bootloader.rb, line 125 def default_framework %w[view model helper controller mailer part].each do |component| Merb.push_path(component.to_sym, Merb.root_path("app/#{component}s")) end Merb.push_path(:application, Merb.root_path("app" / "controllers" / "application.rb")) Merb.push_path(:config, Merb.root_path("config"), nil) Merb.push_path(:router, Merb.dir_for(:config), (Merb::Config[:router_file] || "router.rb")) Merb.push_path(:lib, Merb.root_path("lib"), nil) Merb.push_path(:merb_session, Merb.root_path("merb" / "session")) Merb.push_path(:log, Merb.log_path, nil) Merb.push_path(:public, Merb.root_path("public"), nil) Merb.push_path(:stylesheet, Merb.dir_for(:public) / "stylesheets", nil) Merb.push_path(:javascript, Merb.dir_for(:public) / "javascripts", nil) Merb.push_path(:image, Merb.dir_for(:public) / "images", nil) nil end
Determines whether or not a specific bootloader has finished yet.
Parameters¶ ↑
- bootloader<String, Class>
-
The name of the bootloader to check.
Returns¶ ↑
- Boolean
-
Whether or not the bootloader has finished.
:api: private
# File lib/merb-core/bootloader.rb, line 114 def finished?(bootloader) self.finished.include?(bootloader.to_s) end
Adds the inheriting class to the list of subclasses in a position specified by the before and after methods.
Parameters¶ ↑
- klass<Class>
-
The class inheriting from Merb::BootLoader.
Returns¶ ↑
nil
:api: plugin
# File lib/merb-core/bootloader.rb, line 27 def inherited(klass) subclasses << klass.to_s super end
Move a class that is inside the bootloader to some place in the Array, relative to another class.
Parameters¶ ↑
- klass<~to_s>
-
The klass to move the bootloader relative to
- where<Integer>
-
0 means insert it before; 1 means insert it after
Returns¶ ↑
nil
:api: private
# File lib/merb-core/bootloader.rb, line 75 def move_klass(klass, where) index = Merb::BootLoader.subclasses.index(klass.to_s) if index Merb::BootLoader.subclasses.delete(self.to_s) Merb::BootLoader.subclasses.insert(index + where, self.to_s) end nil end
Runs all boot loader classes by calling their run methods.
Returns¶ ↑
nil
:api: plugin
# File lib/merb-core/bootloader.rb, line 90 def run Merb.started = true subklasses = subclasses.dup until subclasses.empty? time = Time.now.to_i bootloader = subclasses.shift Merb.logger.debug!("Loading: #{bootloader}") if Merb.verbose_logging? Object.full_const_get(bootloader).run Merb.logger.debug!("It took: #{Time.now.to_i - time}") if Merb.verbose_logging? self.finished << bootloader end self.subclasses = subklasses nil end