module Middleman::CoreExtensions::Extensions::InstanceMethods

Instance methods

Public Class Methods

new() click to toggle source

Load features before starting server

Calls superclass method
# File lib/middleman-core/core_extensions/extensions.rb, line 124
def initialize
  super

  self.class.inst = self
  run_hook :before_configuration

  # Search the root of the project for required files
  $LOAD_PATH.unshift(root)

  # Check for and evaluate local configuration
  local_config = File.join(root, "config.rb")
  if File.exists? local_config
    logger.debug "== Reading:  Local config"
    instance_eval File.read(local_config), local_config, 1
  end

  if autoload_sprockets
    begin
      require "middleman-sprockets"
      activate(:sprockets)
    rescue LoadError
    end
  end

  run_hook :build_config if build?
  run_hook :development_config if development?

  run_hook :after_configuration

  logger.debug "Loaded extensions:"
  self.class.extensions.each do |ext|
    logger.debug "== Extension: #{ext}"
  end
end

Public Instance Methods

activate(ext, options={}, &block) click to toggle source

This method is available in the project’s ‘config.rb`. It takes a underscore-separated symbol, finds the appropriate feature module and includes it.

activate :lorem

@param [Symbol, Module] ext Which extension to activate @return [void]

# File lib/middleman-core/core_extensions/extensions.rb, line 108
def activate(ext, options={}, &block)
  ext_module = if ext.is_a?(Module)
    ext
  else
    ::Middleman::Extensions.load(ext.to_sym)
  end

  if ext_module.nil?
    logger.error "== Unknown Extension: #{ext}"
  else
    logger.debug "== Activating: #{ext}"
    self.class.register(ext_module, options, &block)
  end
end