1
0
Fork 0
mirror of https://github.com/middleman/middleman.git synced 2022-11-09 12:20:27 -05:00
middleman--middleman/lib/middleman/core_extensions/assets.rb
Thomas Reynolds e125fc67b3 moar fixes
2011-09-16 10:16:23 -07:00

57 lines
No EOL
1.5 KiB
Ruby

module Middleman::CoreExtensions::Assets
class << self
def registered(app)
# Disable Padrino cache buster until explicitly enabled
app.set :asset_stamp, false
app.extend ClassMethods
app.helpers Helpers
app.register_asset_handler :base do |path, prefix, request|
path.include?("://") ? path : File.join(app.http_prefix || "/", prefix, path)
end
end
alias :included :registered
end
module ClassMethods
def register_asset_handler(handler_name, &block)
@asset_handler_map ||= []
@asset_handler_stack ||= []
if block_given?
@asset_handler_stack << block
@asset_handler_map << handler_name
end
end
def asset_handler_get_url(path, prefix="", request=nil)
@asset_handler_map ||= []
@asset_handler_stack ||= []
@asset_handler_stack.last.call(path, prefix, request)
end
def before_asset_handler(position, *args)
@asset_handler_map ||= []
@asset_handler_stack ||= []
current_index = @asset_handler_map.index(position)
return nil unless current_index
previous = current_index - 1
if (previous >= 0) && (previous < @asset_handler_map.length)
@asset_handler_stack[previous].call(*args)
else
nil
end
end
end
module Helpers
def asset_url(path, prefix="")
self.class.asset_handler_get_url(path, prefix, request)
end
end
end