Class: Merb::BootLoader
Direct Known Subclasses
AfterAppLoads, BeforeAppLoads, BuildFramework, ChooseAdapter, Defaults, Dependencies, DropPidFile, LoadClasses, Logger, MimeTypes, MixinSessionContainer, RackUpApplication, ReloadClasses, ReloadTemplates, StartWorkerThread, Templates
Defined Under Namespace
Classes: AfterAppLoads, BeforeAppLoads, BuildFramework, ChooseAdapter, Defaults, Dependencies, DropPidFile, LoadClasses, Logger, MimeTypes, MixinSessionContainer, RackUpApplication, ReloadClasses, ReloadTemplates, StartWorkerThread, Templates
Class Method Summary collapse
-
.after(klass) ⇒ Object
Parameters klass<~to_s>:: The boot loader class after which this boot loader should be run.
-
.after_app_loads(&block) ⇒ Object
Parameters &block:: A block to be added to the callbacks that will be executed after the app loads.
-
.before(klass) ⇒ Object
Parameters klass<~to_s>:: The boot loader class before which this boot loader should be run.
-
.before_app_loads(&block) ⇒ Object
Parameters &block:: A block to be added to the callbacks that will be executed before the app loads.
-
.default_framework ⇒ Object
Set up the default framework.
-
.finished?(bootloader) ⇒ Boolean
Determines whether or not a specific bootloader has finished yet.
-
.inherited(klass) ⇒ Object
Adds the inheriting class to the list of subclasses in a position specified by the before and after methods.
-
.move_klass(klass, where) ⇒ Object
Move a class that is inside the bootloader to some place in the Array, relative to another class.
-
.run ⇒ Object
Runs all boot loader classes by calling their run methods.
Class Method Details
.after(klass) ⇒ Object
Parameters
- klass<~to_s>
-
The boot loader class after which this boot loader should be run.
29 30 31 |
# File 'lib/merb-core/bootloader.rb', line 29 def after(klass) move_klass(klass, 1) end |
.after_app_loads(&block) ⇒ Object
Parameters
- &block
-
A block to be added to the callbacks that will be executed after the app loads.
118 119 120 |
# File 'lib/merb-core/bootloader.rb', line 118 def after_app_loads(&block) after_load_callbacks << block end |
.before(klass) ⇒ Object
Parameters
- klass<~to_s>
-
The boot loader class before which this boot loader should be run.
39 40 41 |
# File 'lib/merb-core/bootloader.rb', line 39 def before(klass) move_klass(klass, 0) end |
.before_app_loads(&block) ⇒ Object
Parameters
- &block
-
A block to be added to the callbacks that will be executed before the app loads.
129 130 131 |
# File 'lib/merb-core/bootloader.rb', line 129 def before_app_loads(&block) before_load_callbacks << block end |
.default_framework ⇒ Object
Set up the default framework
Returns
nil
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/merb-core/bootloader.rb', line 95 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(: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 |
.finished?(bootloader) ⇒ Boolean
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.
84 85 86 |
# File 'lib/merb-core/bootloader.rb', line 84 def finished?(bootloader) self.finished.include?(bootloader.to_s) end |
.inherited(klass) ⇒ Object
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.
18 19 20 21 |
# File 'lib/merb-core/bootloader.rb', line 18 def inherited(klass) subclasses << klass.to_s super end |
.move_klass(klass, where) ⇒ Object
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
51 52 53 54 55 56 57 |
# File 'lib/merb-core/bootloader.rb', line 51 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 end |
.run ⇒ Object
Runs all boot loader classes by calling their run methods.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/merb-core/bootloader.rb', line 60 def run subklasses = subclasses.dup until subclasses.empty? time = Time.now.to_i bootloader = subclasses.shift if (ENV['DEBUG'] || $DEBUG || Merb::Config[:verbose]) && Merb.logger Merb.logger.debug!("Loading: #{bootloader}") end Object.full_const_get(bootloader).run if (ENV['DEBUG'] || $DEBUG || Merb::Config[:verbose]) && Merb.logger Merb.logger.debug!("It took: #{Time.now.to_i - time}") end self.finished << bootloader end self.subclasses = subklasses end |