make assets a core ext
This commit is contained in:
parent
59a07d4cc0
commit
118d23be41
9 changed files with 79 additions and 58 deletions
54
lib/middleman/core_extensions/assets.rb
Normal file
54
lib/middleman/core_extensions/assets.rb
Normal file
|
@ -0,0 +1,54 @@
|
|||
module Middleman::CoreExtensions::Assets
|
||||
class << self
|
||||
def registered(app)
|
||||
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
|
|
@ -56,10 +56,6 @@ module Middleman::CoreExtensions::DefaultHelpers
|
|||
classes.join(' ')
|
||||
end
|
||||
|
||||
def asset_url(path, prefix="")
|
||||
Middleman::Assets.get_url(path, prefix, request)
|
||||
end
|
||||
|
||||
# Padrino's asset handling needs to pass through ours
|
||||
def asset_path(kind, source)
|
||||
return source if source =~ /^http/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue