# Relative Assets extension
class Middleman::Extensions::RelativeAssets < ::Middleman::Extension

  def initialize(app, options_hash={}, &block)
    super

    # After compass is setup, make it use the registered cache buster
    app.compass_config do |config|
      config.relative_assets = true
    end if app.respond_to?(:compass_config)
  end

  helpers do
    # asset_url override for relative assets
    # @param [String] path
    # @param [String] prefix
    # @return [String]
    def asset_url(path, prefix="")
      path = super(path, prefix)

      if path.include?("//") || !current_resource
        path
      else
        current_dir = Pathname('/' + current_resource.destination_path)
        Pathname(path).relative_path_from(current_dir.dirname).to_s
      end
    end
  end
end
