Module: Aerogel
- Defined in:
- lib/aerogel/core/reloader.rb,
lib/aerogel/core/core.rb,
lib/aerogel/core/cache.rb,
lib/aerogel/core/config.rb,
lib/aerogel/core/errors.rb,
lib/aerogel/core/version.rb
Overview
Middleware which checks and reloads modified files.
Defined Under Namespace
Modules: Assets, Cache, Config, Core, Db, Errors, Helpers, I18n, Render, Routes Classes: Application, Reloader
Class Attribute Summary collapse
-
.application_path ⇒ Object
Returns the value of attribute application_path.
-
.core_path ⇒ Object
Returns the value of attribute core_path.
Class Method Summary collapse
-
.config ⇒ Object
Returns Aerogel application’s config object.
-
.get_resource(type, filename, environment = nil) ⇒ Object
Returns filename of the most recent resource file of specified type.
-
.get_resource_list(type, wildcard, environment = nil, &block) ⇒ Object
Returns list of filenames of resources of specified type, environment sub-folders included, filtered by wildcard mask.
-
.get_resource_paths(type, &block) ⇒ Object
Returns list of paths for specified resource type.
-
.get_reverse_resource_list(type, wildcard, environment = nil) ⇒ Object
Returns reversed list of filenames of resources of specified type, environment sub-folders included, filtered by wildcard mask.
-
.on_load(&block) ⇒ Object
Registers on-load callback.
-
.on_load_callbacks ⇒ Object
Returns registered on-load callbacks.
-
.register_path(path, type = nil) ⇒ Object
Registers a new path for all resource loaders.
-
.registered_paths(type = nil) ⇒ Object
Returns registered paths.
-
.require_into(mod_class, filename) ⇒ Object
Requires file, loads into context of a module/class.
-
.require_resources(type, wildcard, environment = nil) ⇒ Object
Require resources specified by type and wildcard.
-
.require_resources_reverse(type, wildcard, environment = nil) ⇒ Object
Require resources specified by type and wildcard in reverse order.
-
.version ⇒ Object
Returns module version.
Class Attribute Details
.application_path ⇒ Object
Returns the value of attribute application_path.
8 9 10 |
# File 'lib/aerogel/core/core.rb', line 8 def application_path @application_path end |
.core_path ⇒ Object
Returns the value of attribute core_path.
8 9 10 |
# File 'lib/aerogel/core/core.rb', line 8 def core_path @core_path end |
Class Method Details
.config ⇒ Object
Returns Aerogel application’s config object.
10 11 12 |
# File 'lib/aerogel/core/config.rb', line 10 def self.config @config ||= Configurator.new end |
.get_resource(type, filename, environment = nil) ⇒ Object
Returns filename of the most recent resource file of specified type.
109 110 111 |
# File 'lib/aerogel/core/core.rb', line 109 def self.get_resource( type, filename, environment = nil ) get_resource_list( type, filename, environment ).last end |
.get_resource_list(type, wildcard, environment = nil, &block) ⇒ Object
Returns list of filenames of resources of specified type, environment sub-folders included, filtered by wildcard mask.
Resources are listed in a forward order of paths, files within each path listed in alphabetic order.
The resources are searched in following order:
path1 + wildcard
path1 + environment + wildcard
path2 + wildcard
path2 + environment + wildcard
etc
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/aerogel/core/core.rb', line 64 def self.get_resource_list( type, wildcard, environment = nil, &block ) resource_list = [] get_resource_paths( type ) do |path, base_path| paths = Dir.glob( File.join( path, wildcard ) ).sort if environment paths << Dir.glob( File.join( path, environment.to_s, wildcard ) ).sort end # puts "Aerogel::get_resource_list: type=#{type} environment=#{environment} path=#{path}: #{paths}" if block_given? paths.each do |filename| relative_filename = filename.sub( /^#{path}\/?/, '' ) yield filename, relative_filename, path, base_path end end resource_list << paths end resource_list.flatten end |
.get_resource_paths(type, &block) ⇒ Object
Returns list of paths for specified resource type.
41 42 43 44 45 46 47 48 49 |
# File 'lib/aerogel/core/core.rb', line 41 def self.get_resource_paths( type, &block ) paths = [] registered_paths( type ).each do |base_path| path = base_path[:type].nil? ? File.join( base_path[:path], type.to_s ) : base_path[:path] paths << { base_path: base_path, path: path } yield path, base_path if block_given? end paths.map {|p| p[:path] } end |
.get_reverse_resource_list(type, wildcard, environment = nil) ⇒ Object
Returns reversed list of filenames of resources of specified type, environment sub-folders included, filtered by wildcard mask.
Reverse order is applied to registered paths, but not to files within single path, which are listed in alphabetic order.
The resources are searched in following order:
path1 + wildcard
path1 + environment + wildcard
path2 + wildcard
path2 + environment + wildcard
etc
96 97 98 99 100 101 102 103 104 105 |
# File 'lib/aerogel/core/core.rb', line 96 def self.get_reverse_resource_list( type, wildcard, environment = nil ) get_resource_paths( type ).reverse.map do |path| paths = Dir.glob( File.join( path, wildcard ) ).sort if environment paths << Dir.glob( File.join( path, environment.to_s, wildcard ) ).sort end # puts "Aerogel::get_resource_list: type=#{type} environment=#{environment} path=#{path}: #{paths}" paths end.flatten end |
.on_load(&block) ⇒ Object
Registers on-load callback.
155 156 157 158 |
# File 'lib/aerogel/core/core.rb', line 155 def self.on_load( &block ) @on_load_callbacks ||= [] @on_load_callbacks << block end |
.on_load_callbacks ⇒ Object
Returns registered on-load callbacks.
149 150 151 |
# File 'lib/aerogel/core/core.rb', line 149 def self.on_load_callbacks @on_load_callbacks || [] end |
.register_path(path, type = nil) ⇒ Object
Registers a new path for all resource loaders.
If type is not specified, then resource paths are formed by appending type to the given path.
If type is specified, given path is cosidered a final path for this resource type, and for this resource type only.
25 26 27 28 29 30 |
# File 'lib/aerogel/core/core.rb', line 25 def self.register_path( path, type = nil ) @registered_paths ||= [] path = File.( path ) module_name = File.basename path @registered_paths << { path: path, module_name: module_name, type: type } end |
.registered_paths(type = nil) ⇒ Object
Returns registered paths. If type is specified, only resource paths containing this type are returned.
35 36 37 |
# File 'lib/aerogel/core/core.rb', line 35 def self.registered_paths( type = nil ) @registered_paths.select{|p| type.nil? || p[:type].nil? || p[:type] == type } end |
.require_into(mod_class, filename) ⇒ Object
Requires file, loads into context of a module/class.
143 144 145 |
# File 'lib/aerogel/core/core.rb', line 143 def self.require_into( mod_class, filename ) mod_class.class_eval File.read(filename), filename end |
.require_resources(type, wildcard, environment = nil) ⇒ Object
Require resources specified by type and wildcard.
115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/aerogel/core/core.rb', line 115 def self.require_resources( type, wildcard, environment = nil ) files_to_require = Aerogel.get_resource_list( type, wildcard, environment ) files_to_require.each do |filename| # begin require filename # rescue => e # raise e # "Failed to load resource '#{filename}': #{e}" # end end true end |
.require_resources_reverse(type, wildcard, environment = nil) ⇒ Object
Require resources specified by type and wildcard in reverse order.
129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/aerogel/core/core.rb', line 129 def self.require_resources_reverse( type, wildcard, environment = nil ) files_to_require = Aerogel.get_reverse_resource_list( type, wildcard, environment ) files_to_require.each do |filename| # begin require filename # rescue => e # raise e # "Failed to load resource '#{filename}': #{e}" # end end true end |