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/features/relative_assets.rb

46 lines
1.1 KiB
Ruby
Raw Normal View History

2009-11-22 18:37:11 -05:00
class Middleman::Base
after_feature_init do
::Compass.configuration do |config|
config.relative_assets = Proc.new do
2010-01-20 18:22:40 -05:00
Middleman::Base.enabled?(:relative_assets)
2009-11-22 18:37:11 -05:00
end
end
2010-01-20 18:22:40 -05:00
2009-11-22 18:37:11 -05:00
::Compass.configure_sass_plugin!
end
end
class << Middleman::Base
alias_method :pre_relative_asset_url, :asset_url
def asset_url(path, prefix="", request=nil)
2010-01-20 18:22:40 -05:00
if !self.enabled?(:relative_assets)
2009-11-22 18:37:11 -05:00
return pre_relative_asset_url(path, prefix, request)
end
begin
prefix = self.images_dir if prefix == self.http_images_path
rescue
end
if path.include?("://")
pre_relative_asset_url(path, prefix, request)
elsif path[0,1] == "/"
path
else
path = File.join(prefix, path) if prefix.length > 0
request_path = request.path_info.dup
request_path << self.index_file if path.match(%r{/$})
request_path.gsub!(%r{^/}, '')
parts = request_path.split('/')
if parts.length > 1
arry = []
(parts.length - 1).times { arry << ".." }
arry << path
File.join(*arry)
else
path
end
end
end
end