class Middleman::ExtensionManager
def activate(ext_name, options={}, &block)
-
(void)
-
Other tags:
- Yield: - Extension options that can be modified before the extension is initialized.
Parameters:
-
options
(Hash
) -- Options to pass to the extension -
ext_name
(Symbol
) -- The name of thed extension to activate
Other tags:
- Example: Use a block to configure extension options -
Example: Activate an extension, with options -
Example: Activate an extension with no options -
def activate(ext_name, options={}, &block) begin extension = ::Middleman::Extensions.load(ext_name) rescue LoadError => e logger.debug "== Failed Activation `#{ext_name}` : #{e.message}" return end logger.debug "== Activating: #{ext_name}" if extension.supports_multiple_instances? @activated[ext_name] ||= {} key = "instance_#{@activated[ext_name].keys.length}" @activated[ext_name][key] = extension.new(@app, options, &block) elsif @activated.key?(ext_name) raise "#{ext_name} has already been activated and cannot be re-activated." else @activated[ext_name] = extension.new(@app, options, &block) end end
def activate_all
def activate_all logger.debug 'Loaded extensions:' @instances = @activated.each_with_object([]) do |(ext_name, ext), sum| if ext.is_a?(Hash) ext.each do |instance_key, instance| logger.debug "== Extension: #{ext_name} #{instance_key}" sum << instance end else logger.debug "== Extension: #{ext_name}" sum << ext end end @instances.each do |ext| ::Middleman::Extension.activated_extension(ext) end end
def add_exposed_to_context(context)
def add_exposed_to_context(context) @instances.each do |ext| ext.add_exposed_to_context(context) end end
def auto_activate(key)
def auto_activate(key) ::Middleman::Extensions.auto_activate(key, @app) end
def initialize(app)
def initialize(app) @app = app @activated = {} ::Middleman::Extensions.load_settings(@app) manager = self { before_sitemap: :before_sitemap, initialized: :before_configuration }.each do |key, value| cb = proc { manager.auto_activate(value) } @app.send(key, &cb) end @app.after_configuration_eval(&method(:activate_all)) end