class Middleman::ConfigExtension

def after_configuration

def after_configuration
  self.class.exposed_to_config.each do |k, v|
    ::Middleman::CoreExtensions::Collections::StepContext.add_to_context(k, &method(:"__original_#{v}"))
  end
end

def initialize(app, config={}, &block)

def initialize(app, config={}, &block)
  @descriptors = {}
  @wrapped = {}
  self.class.exposed_to_config.each do |k, v|
    @descriptors[k] = []
    define_singleton_method(:"__original_#{v}", &method(v))
    define_singleton_method(v) do |*args, &b|
      @descriptors[k] << method(:"__original_#{v}").call(*args, &b)
      @app.sitemap.rebuild_resource_list!(:"first_run_change_#{v}")
    end
  end
  super
end

def manipulate_resource_list(resources)

def manipulate_resource_list(resources)
  @descriptors.values.flatten.reduce(resources) do |sum, c|
    c.execute_descriptor(app, sum)
  end
end