Steps should try passing unknown methods to config context before failing. Fixes #1879

This commit is contained in:
Thomas Reynolds 2016-04-14 11:26:33 -07:00
parent f2535f4fda
commit a01656df39
4 changed files with 40 additions and 6 deletions

View file

@ -90,7 +90,7 @@ module Middleman
pair[:root].realize!(dataset)
end
ctx = StepContext.new
ctx = StepContext.new(app)
StepContext.current = ctx
leaves = @leaves.dup

View file

@ -12,17 +12,20 @@ module Middleman
attr_reader :descriptors
def initialize
def initialize(app)
@app = app
@descriptors = []
end
def method_missing(name, *args, &block)
internal = :"_internal_#{name}"
return super unless respond_to?(internal)
send(internal, *args, &block).tap do |r|
@descriptors << r if r.respond_to?(:execute_descriptor)
if respond_to?(internal)
send(internal, *args, &block).tap do |r|
@descriptors << r if r.respond_to?(:execute_descriptor)
end
else
@app.config_context.send(name, *args, &block)
end
end
end