2011-11-21 09:23:16 +01:00
|
|
|
module Middleman::Extensions
|
|
|
|
module AssetHost
|
|
|
|
class << self
|
|
|
|
def registered(app)
|
|
|
|
app.set :asset_host, false
|
|
|
|
|
2011-12-30 04:04:39 +01:00
|
|
|
# app.compass_config do |config|
|
|
|
|
# if asset_host.is_a?(Proc)
|
|
|
|
# config.asset_host(&asset_host)
|
|
|
|
# end
|
|
|
|
# end
|
2011-11-21 09:23:16 +01:00
|
|
|
|
|
|
|
app.send :include, InstanceMethods
|
|
|
|
end
|
|
|
|
alias :included :registered
|
|
|
|
end
|
|
|
|
|
|
|
|
module InstanceMethods
|
|
|
|
def asset_url(path, prefix="")
|
|
|
|
original_output = super
|
2011-12-25 19:06:45 +01:00
|
|
|
return original_output unless asset_host
|
2011-11-21 09:23:16 +01:00
|
|
|
|
2011-12-25 19:06:45 +01:00
|
|
|
# valid_extensions = %w(.png .gif .jpg .jpeg .svg .svgz .js .css)
|
2011-11-21 09:23:16 +01:00
|
|
|
|
|
|
|
asset_prefix = if asset_host.is_a?(Proc)
|
|
|
|
asset_host.call(original_output)
|
|
|
|
elsif asset_host.is_a?(String)
|
|
|
|
asset_host
|
|
|
|
end
|
2011-12-25 19:06:45 +01:00
|
|
|
|
2011-11-21 09:23:16 +01:00
|
|
|
File.join(asset_prefix, original_output)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|