Module: ActiveSupport::Dependencies::Loadable
- Defined in:
- lib/active_support/dependencies.rb
Overview
Object includes this module
Class Method Summary collapse
-
.exclude_from(base) ⇒ Object
:nodoc:.
Instance Method Summary collapse
- #load(file) ⇒ Object
- #load_dependency(file) ⇒ Object
- #require(file) ⇒ Object
- #require_association(file_name) ⇒ Object
- #require_dependency(file_name, message = "No such file to load -- %s") ⇒ Object
- #require_or_load(file_name) ⇒ Object
-
#unloadable(const_desc) ⇒ Object
Mark the given constant as unloadable.
Class Method Details
.exclude_from(base) ⇒ Object
:nodoc:
176 177 178 |
# File 'lib/active_support/dependencies.rb', line 176 def self.exclude_from(base) base.class_eval { define_method(:load, Kernel.instance_method(:load)) } end |
Instance Method Details
#load(file) ⇒ Object
207 208 209 |
# File 'lib/active_support/dependencies.rb', line 207 def load(file, *) load_dependency(file) { super } end |
#load_dependency(file) ⇒ Object
196 197 198 199 200 201 202 203 204 205 |
# File 'lib/active_support/dependencies.rb', line 196 def load_dependency(file) if Dependencies.load? Dependencies.new_constants_in(Object) { yield }.presence else yield end rescue Exception => exception # errors from loading file exception.blame_file! file raise end |
#require(file) ⇒ Object
211 212 213 |
# File 'lib/active_support/dependencies.rb', line 211 def require(file, *) load_dependency(file) { super } end |
#require_association(file_name) ⇒ Object
192 193 194 |
# File 'lib/active_support/dependencies.rb', line 192 def require_association(file_name) Dependencies.associate_with(file_name) end |
#require_dependency(file_name, message = "No such file to load -- %s") ⇒ Object
184 185 186 187 188 189 190 |
# File 'lib/active_support/dependencies.rb', line 184 def require_dependency(file_name, = "No such file to load -- %s") unless file_name.is_a?(String) raise ArgumentError, "the file name must be a String -- you passed #{file_name.inspect}" end Dependencies.depend_on(file_name, false, ) end |
#require_or_load(file_name) ⇒ Object
180 181 182 |
# File 'lib/active_support/dependencies.rb', line 180 def require_or_load(file_name) Dependencies.require_or_load(file_name) end |
#unloadable(const_desc) ⇒ Object
Mark the given constant as unloadable. Unloadable constants are removed each time dependencies are cleared.
Note that marking a constant for unloading need only be done once. Setup or init scripts may list each unloadable constant that may need unloading; each constant will be removed for every subsequent clear, as opposed to for the first clear.
The provided constant descriptor may be a (non-anonymous) module or class, or a qualified constant name as a string or symbol.
Returns true if the constant was not previously marked for unloading, false otherwise.
228 229 230 |
# File 'lib/active_support/dependencies.rb', line 228 def unloadable(const_desc) Dependencies.mark_for_unload const_desc end |