lib/middleman/features.rb



module Middleman
  module Features
    # Top-level method to register a new feature
    @@features = {}
    def self.register(feature_name, feature_class=nil, options={})
      @@features[feature_name] = feature_class
    
      # Default to disabled, unless the class asks to auto-enable
      activate_method = (options.has_key?(:auto_enable) && options[:auto_enable]) ? :enable : :disable
      Middleman::Server.send(activate_method, feature_name)
    end
    
    # Initialize a feature
    def self.run(feature_name, feature_config, scope)
      feature_class = @@features[feature_name]
      feature_class.new(scope, feature_config) unless feature_class.nil?
    end

    # Get a list of all features
    def self.all
      @@features
    end

  end
end

# livereload
%w(default_helpers
   asset_host 
   automatic_image_sizes
   cache_buster
   minify_css
   minify_javascript
   relative_assets
   slickmap
   smush_pngs
   ugly_haml).each do |feature| 
     
  require File.join("middleman/features", feature)

end