Sha256: 2947b33f40f361cbf599a97fe578d5601ba63f7a68b6f2abf738a7f1bab80c02

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 KB

Contents

module Rails2AssetPipeline
  module ViewHelpers
    class << self
      attr_accessor :ignored_folders # e.g. 'images'
    end

    # Overwrite rails helper to use pipeline path for all relative assets
    # args: source, 'javascripts', 'js'
    def compute_public_path(*args)
      source = args[0]
      ignored_folders = Rails2AssetPipeline::ViewHelpers.ignored_folders
      source_is_relative = (
        source.is_a?(String) and
        source =~ /^[\w\-]+(\/|\.|$)/ and # xxx or xxx.js or xxx/yyy, not /xxx or http://
        not (ignored_folders and ignored_folders.include?(args[1]))
      )

      if source_is_relative
        source = "#{source}.#{args[2]}" if args[2] and File.extname(source) != ".#{args[2]}"
        super(asset_path(source), *args[1..-1])
      else
        super
      end
    end

    def assets_prefix
      Rails2AssetPipeline.prefix
    end

    def rails_asset_id(file)
      if file.start_with?("/#{assets_prefix}/")
        nil
      else
        super
      end
    end

    def asset_path(asset)
      Rails2AssetPipeline.warn_user_about_misconfiguration!

      asset_with_id = if Rails2AssetPipeline.static?
        @sprockets_manifest ||= Sprockets::Manifest.new(Rails2AssetPipeline.env, Rails2AssetPipeline.manifest)
        @sprockets_manifest.assets[asset] || "DID_NOT_FIND_#{asset}_IN_MANIFEST"
      else
        data = Rails2AssetPipeline.env[asset]
        data ? "#{asset}?#{data.mtime.to_i}" : "DID_NOT_FIND_#{asset}_IN_ASSETS"
      end

      "/#{assets_prefix}/#{asset_with_id}"
    end
    module_function :assets_prefix, :asset_path
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails2_asset_pipeline-0.3.2 lib/rails2_asset_pipeline/view_helpers.rb
rails2_asset_pipeline-0.3.1 lib/rails2_asset_pipeline/view_helpers.rb
rails2_asset_pipeline-0.3.0 lib/rails2_asset_pipeline/view_helpers.rb