class RKit::Core::Loader
Attributes
_base[RW]
dependencies[RW]
load_paths[RW]
Public Class Methods
loaded()
click to toggle source
# File lib/r_kit/core/loader.rb, line 6 def self.loaded @loaded.map{ |name| name.demodulize.underscore } end
loaded?(name)
click to toggle source
# File lib/r_kit/core/loader.rb, line 10 def self.loaded? name @loaded.include? name end
new(base)
click to toggle source
# File lib/r_kit/core/loader.rb, line 15 def initialize base @_base = base @load_paths = [] @dependencies = [] end
Public Instance Methods
dependencies!()
click to toggle source
# File lib/r_kit/core/loader.rb, line 30 def dependencies! dependencies.each &:load! end
dependency(*services)
click to toggle source
TODO: when a dependency is added, we must define in the opposite service a “dependency forbidden” TODO: in order to avoid recursive dependency
# File lib/r_kit/core/loader.rb, line 24 def dependency *services services.each do |service| dependencies << Dependency.new(_base, service: service) end end
load!()
click to toggle source
# File lib/r_kit/core/loader.rb, line 51 def load! dependencies! load_paths! loaded! end
load_path(file, *paths, **options)
click to toggle source
# File lib/r_kit/core/loader.rb, line 35 def load_path file, *paths, **options paths.each do |path| load_paths << LoadPath.new(_base, file: file, path: path, **options.slice(:priority, :if, :unless)) end end
load_paths!()
click to toggle source
# File lib/r_kit/core/loader.rb, line 41 def load_paths! load_paths.sort{ |a, b| a.priority <=> b.priority }.each &:load! end
loaded!()
click to toggle source
# File lib/r_kit/core/loader.rb, line 46 def loaded! self.class.instance_variable_get("@loaded") << _base.name end