alias the builder callbacks more easily

This commit is contained in:
Thomas Reynolds 2011-08-04 19:43:42 -07:00
parent 8c07dd3f97
commit 0303ed6442
4 changed files with 31 additions and 1 deletions

View file

@ -77,6 +77,9 @@ module Middleman
end
module CoreExtensions
# Add Builder callbacks
autoload :Builder, "middleman/core_extensions/builder"
# Add Rack::Builder.map support
autoload :RackMap, "middleman/core_extensions/rack_map"

View file

@ -29,6 +29,9 @@ module Middleman::Base
app.set :views, "source"
# Add Builder Callbacks
app.register Middleman::CoreExtensions::Builder
# Add Rack::Builder.map to Sinatra
app.register Middleman::CoreExtensions::RackMap

View file

@ -5,7 +5,7 @@ require 'rack/test'
SHARED_SERVER = Middleman.server
SHARED_SERVER.set :environment, :build
module Middleman
module Middleman
module ThorActions
def tilt_template(source, *args, &block)
config = args.last.is_a?(Hash) ? args.pop : {}
@ -76,6 +76,10 @@ module Middleman
@@hooks.each do |name, proc|
instance_eval(&proc)
end
SHARED_SERVER.after_build_callbacks.each do |name, proc|
instance_eval(&proc)
end
end
end

View file

@ -0,0 +1,20 @@
module Middleman::CoreExtensions::Builder
class << self
def registered(app)
app.extend ClassMethods
end
end
module ClassMethods
# Add a block/proc to be run after features have been setup
def after_build(&block)
@run_after_build ||= []
@run_after_build << block
end
def after_build_callbacks
@run_after_build ||= []
@run_after_build
end
end
end