2014-06-29 00:07:43 +02:00
|
|
|
module Middleman
|
|
|
|
module CoreExtensions
|
|
|
|
module Collections
|
|
|
|
class StepContext
|
2016-04-12 01:02:31 +02:00
|
|
|
class << self
|
|
|
|
attr_accessor :current
|
|
|
|
|
|
|
|
def add_to_context(name, &func)
|
|
|
|
send(:define_method, :"_internal_#{name}", &func)
|
|
|
|
end
|
2014-06-29 00:07:43 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
attr_reader :descriptors
|
|
|
|
|
|
|
|
def initialize
|
2016-01-03 02:37:11 +01:00
|
|
|
@descriptors = []
|
2014-06-29 00:07:43 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def method_missing(name, *args, &block)
|
|
|
|
internal = :"_internal_#{name}"
|
2016-01-03 02:37:11 +01:00
|
|
|
|
|
|
|
return super unless respond_to?(internal)
|
|
|
|
|
|
|
|
send(internal, *args, &block).tap do |r|
|
|
|
|
@descriptors << r if r.respond_to?(:execute_descriptor)
|
2014-06-29 00:07:43 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|