Module: TTY::Config::DependencyLoader
- Defined in:
- lib/tty/config/dependency_loader.rb
Instance Attribute Summary collapse
- #dep_name ⇒ Object readonly
Instance Method Summary collapse
-
#dependency(*dep_names, &block) ⇒ Object
Lazy load a dependency.
- #inherited(subclass) ⇒ Object
-
#load ⇒ Object
private
Try loading depedency.
-
#new ⇒ Object
Load dependency before object instatiation.
Instance Attribute Details
#dep_name ⇒ Object
6 7 8 |
# File 'lib/tty/config/dependency_loader.rb', line 6 def dep_name @dep_name end |
Instance Method Details
#dependency(*dep_names, &block) ⇒ Object
Lazy load a dependency
11 12 13 14 |
# File 'lib/tty/config/dependency_loader.rb', line 11 def dependency(*dep_names, &block) self.dep_name = dep_names @block = block end |
#inherited(subclass) ⇒ Object
35 36 37 38 |
# File 'lib/tty/config/dependency_loader.rb', line 35 def inherited(subclass) super subclass.send(:dep_name=, dep_name) end |
#load ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Try loading depedency
27 28 29 30 31 32 33 |
# 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, "#{} #{err.}" end |
#new ⇒ Object
Load dependency before object instatiation
19 20 21 22 |
# File 'lib/tty/config/dependency_loader.rb', line 19 def new(*) load super end |