class Middleman::ConfigExtension
Public Class Methods
Source
# File lib/middleman-core/extension.rb, line 494 def initialize(app, config={}, &block) @descriptors = {} @ready = false 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| proxy_method_call(k, v, args, &b) end end super end
Calls superclass method
Middleman::Extension::new
Public Instance Methods
Source
# File lib/middleman-core/extension.rb, line 510 def after_configuration context = self self.class.exposed_to_config.each do |k, v| ::Middleman::CoreExtensions::Collections::StepContext.add_to_context(k) do |*args, &b| r = context.method(:"__original_#{v}").call(*args, &b) descriptors << r if r.respond_to?(:execute_descriptor) end end end
Source
# File lib/middleman-core/extension.rb, line 532 def manipulate_resource_list(resources) @descriptors.values.flatten.reduce(resources) do |sum, c| c.execute_descriptor(app, sum) end end
Source
# File lib/middleman-core/extension.rb, line 539 def proxy_method_call(k, v, args, &b) if @ready ctx = ::Middleman::CoreExtensions::Collections::StepContext.current r = method(:"__original_#{v}").call(*args, &b) if r.respond_to?(:execute_descriptor) if ctx ctx.descriptors << r else @descriptors[k] << r @app.sitemap.rebuild_resource_list!(:"first_run_change_#{v}") end end else @descriptors[k] << method(:"__original_#{v}").call(*args, &b) @app.sitemap.rebuild_resource_list!(:"first_run_change_#{v}") end end
Source
# File lib/middleman-core/extension.rb, line 521 def ready @ready = true # @descriptors.each do |k, v| # @descriptors[k] = [] # end end