Module: Eskel::Loader
- Included in:
- Eskel
- Defined in:
- lib/eskel/loader.rb
Instance Method Summary collapse
- #after_load(&block) ⇒ Object
- #before_load(&block) ⇒ Object
- #dependency_paths ⇒ Object
- #load! ⇒ Object
- #loaded? ⇒ Boolean
- #require_dependencies(*paths) ⇒ Object
Instance Method Details
#after_load(&block) ⇒ Object
11 12 13 14 15 |
# File 'lib/eskel/loader.rb', line 11 def after_load(&block) @_after_load ||= [] @_after_load << block if block_given? @_after_load end |
#before_load(&block) ⇒ Object
5 6 7 8 9 |
# File 'lib/eskel/loader.rb', line 5 def before_load(&block) @_before_load ||= [] @_before_load << block if block_given? @_before_load end |
#dependency_paths ⇒ Object
39 40 41 |
# File 'lib/eskel/loader.rb', line 39 def dependency_paths @_dependency_paths ||= default_dependency_paths end |
#load! ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/eskel/loader.rb', line 17 def load! return false if loaded? began_at = Time.now Eskel.logger before_load.each(&:call) Dotenv.load root.join(".env.#{env}"), root.join('.env') require_dependencies(*dependency_paths) Eskel::Application.require_dependencies after_load.each(&:call) logger.info "Loaded Eskel in #{Time.now - began_at} seconds" Thread.current[:eskel_loaded] = true end |
#loaded? ⇒ Boolean
30 31 32 |
# File 'lib/eskel/loader.rb', line 30 def loaded? Thread.current[:eskel_loaded] end |
#require_dependencies(*paths) ⇒ Object
34 35 36 37 |
# File 'lib/eskel/loader.rb', line 34 def require_dependencies(*paths) files = paths.flatten.flat_map{ |path| Dir.glob(path).sort_by{ |filename| filename.count('/') } }.uniq files.each { |rb| require rb } end |