Sha256: 57f7af31e25531cadb30dbbae7f741857b1ab35cbdea8c40140f301fc11dabec

Contents?: true

Size: 801 Bytes

Versions: 2

Compression:

Stored size: 801 Bytes

Contents

module Middleman::CoreExtensions::Builder
  class << self
    def registered(app)
      app.define_hook :after_build
      app.extend ClassMethods
      app.send :include, InstanceMethods
    end
  end
  
  module ClassMethods
    def build_reroute(&block)
      @build_rerouters ||= []
      @build_rerouters << block if block_given?
      @build_rerouters
    end
  end
  
  module InstanceMethods
    def build_reroute(&block)
      self.class.build_reroute(&block)
    end
    
    def reroute_builder(desination, request_path)
      result = [desination, request_path]
      
      build_reroute.each do |block|
        output = instance_exec(desination, request_path, &block)
        if output
          result = output
          break
        end
      end
      
      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
middleman-3.0.0.alpha.3 lib/middleman/core_extensions/builder.rb
middleman-3.0.0.alpha.2 lib/middleman/core_extensions/builder.rb