Module: Middleman::Features::RelativeAssets

Defined in:
lib/middleman/features/relative_assets.rb

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object Also known as: included



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/middleman/features/relative_assets.rb', line 3

def registered(app)
  ::Compass.configuration.relative_assets = true

  Middleman::Assets.register :relative_assets do |path, prefix, request|
    begin
      prefix = Middleman::Server.images_dir if prefix == Middleman::Server.http_images_path
    rescue
    end

    if path.include?("://")
      Middleman::Assets.before(:relative_assets, 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 << Middleman::Server.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