middleman/middleman-core/lib/middleman-core/core_extensions/collections/step_context.rb

32 lines
690 B
Ruby

module Middleman
module CoreExtensions
module Collections
class StepContext
class << self
attr_accessor :current
def add_to_context(name, &func)
send(:define_method, :"_internal_#{name}", &func)
end
end
attr_reader :descriptors
def initialize
@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)
end
end
end
end
end
end