module TTY::Config::DependencyLoader
Attributes
dep_name[RW]
Public Instance Methods
dependency(*dep_names, &block)
click to toggle source
Lazy load a dependency
@api public
# File lib/tty/config/dependency_loader.rb, line 11 def dependency(*dep_names, &block) self.dep_name = dep_names @block = block end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/tty/config/dependency_loader.rb, line 35 def inherited(subclass) super subclass.send(:dep_name=, dep_name) end
load()
click to toggle source
Try loading depedency
@api private
# File lib/tty/config/dependency_loader.rb, line 27 def load return if dep_name.nil? dep_name.empty? ? @block.() : dep_name.each { |dep| require(dep) } rescue LoadError, NameError => err raise DependencyLoadError, "#{raise_error_message} #{err.message}" end
new(*)
click to toggle source
Load dependency before object instatiation
@api public
Calls superclass method
# File lib/tty/config/dependency_loader.rb, line 19 def new(*) load super end
Private Instance Methods
raise_error_message()
click to toggle source
# File lib/tty/config/dependency_loader.rb, line 42 def raise_error_message if dep_name.empty? "One or more dependency are missing." elsif dep_name.size == 1 "The dependency `#{dep_name.join}` is missing." else "The dependencies `#{dep_name.join(', ')}` are missing." end end