class Middleman::CoreExtensions::Collections::CollectionsExtension
def before_configuration
def before_configuration @leaves.clear app.add_to_config_context :resources, &method(:root_collector) app.add_to_config_context :collection, &method(:register_collector) end
def collection(label)
def collection(label) extensions[:collections].collector_value(label) end
def collector_value(label)
def collector_value(label) @values_by_name[label] end
def initialize(app, options_hash={}, &block)
def initialize(app, options_hash={}, &block) super @leaves = Set.new @collectors_by_name = {} @values_by_name = {} @root_collector = LazyCollectorRoot.new(self) end
def manipulate_resource_list(resources)
def manipulate_resource_list(resources) @root_collector.realize!(resources) ctx = StepContext.new leaves = @leaves.dup @collectors_by_name.each do |k, v| @values_by_name[k] = v.value(ctx) leaves.delete v end # Execute code paths leaves.each do |v| v.value(ctx) end # Inject descriptors resources + ctx.descriptors.map { |d| d.to_resource(app) } end
def pagination
def pagination current_resource.data.pagination end
def register_collector(label, endpoint)
def register_collector(label, endpoint) @collectors_by_name[label] = endpoint end