Sha256: aae5090ceccc82ce24b41d1a4d127a3b7351ea791735febb2c108c030c524619

Contents?: true

Size: 1015 Bytes

Versions: 27

Compression:

Stored size: 1015 Bytes

Contents

require 'awestruct/handler_chains'
require 'awestruct/context_helper'

module Awestruct

  class Pipeline

    attr_reader :handler_chains

    def initialize()
      @handler_chains = HandlerChains.new
      @extensions     = []
      @helpers        = []
      @transformers   = []
    end

    def extension(e)
      @extensions << e
      e.transform(@transformers) if e.respond_to?('transform')
    end

    def helper(h)
      @helpers << h
    end

    def transformer(t)
      @transformers << t
    end

    def execute(site)
      execute_extensions(site)
    end

    def execute_extensions(site)
      @extensions.each do |e|
        e.execute(site)
      end
    end

    def apply_transformers(site, page, rendered)
      @transformers.each do |t|
        rendered = t.transform( site, page, rendered )
      end
      rendered
    end

    def mixin_helpers(context)
      context.extend( Awestruct::ContextHelper )
      @helpers.each do |h|
        context.extend(h)
      end
    end

  end

end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
awestruct-0.5.4.rc3 lib/awestruct/pipeline.rb
awestruct-0.5.4.rc2 lib/awestruct/pipeline.rb
awestruct-0.5.4.rc lib/awestruct/pipeline.rb
awestruct-0.5.4.beta1 lib/awestruct/pipeline.rb
awestruct-0.5.3 lib/awestruct/pipeline.rb
awestruct-0.5.2.1 lib/awestruct/pipeline.rb
awestruct-0.5.2 lib/awestruct/pipeline.rb
awestruct-0.5.1 lib/awestruct/pipeline.rb
awestruct-0.5.1a lib/awestruct/pipeline.rb
awestruct-0.5.0 lib/awestruct/pipeline.rb
awestruct-0.5.0.cr lib/awestruct/pipeline.rb
awestruct-0.4.8 lib/awestruct/pipeline.rb
awestruct-0.4.7 lib/awestruct/pipeline.rb
awestruct-0.4.6 lib/awestruct/pipeline.rb
awestruct-0.4.5 lib/awestruct/pipeline.rb
awestruct-0.4.4 lib/awestruct/pipeline.rb
awestruct-0.4.3 lib/awestruct/pipeline.rb
awestruct-0.4.2 lib/awestruct/pipeline.rb
awestruct-0.4.2.x10 lib/awestruct/pipeline.rb
awestruct-0.4.2.x9 lib/awestruct/pipeline.rb