class ExtensionsLoader::Loader
Attributes
mapping[R]
Public Class Methods
new(mapping)
click to toggle source
# File lib/extensions_loader/loader.rb, line 5 def initialize(mapping) @mapping = mapping verify! end
Public Instance Methods
load!()
click to toggle source
Perform extension loading on all mappings
# File lib/extensions_loader/loader.rb, line 11 def load! mapping.each do |klass, loadable| if loadable.is_a? Array loadable.each { |extension| load_extension(klass, extension) } else load_extension(klass, loadable) end end end
Private Instance Methods
load_extension(klass, extension)
click to toggle source
Include ‘extension` into class `klass`
# File lib/extensions_loader/loader.rb, line 29 def load_extension(klass, extension) klass.include(extension) end
verify!()
click to toggle source
Ensure that all defined extensions are either a Module or Array.
# File lib/extensions_loader/loader.rb, line 24 def verify! mapping.each { |k, v| raise "#{k}'s extension must provide a Module or Array." unless v.is_a?(Module) || v.is_a?(Array) } end