Sha256: b25ddb0f1f8da712d06cf86b9fee0b8539c547e61678995406774fba6ac3014b

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

module Trackman
  module Path  
    module Rails32Resolver
      include Resolver
      
      alias old_rails_translate translate

      def translate url, parent_url 
        root = working_dir.realpath
   
        path = url.dup
        path.slice! /^\/?assets/
        path =  Pathname.new(path)

        path = prepare_for_sprocket(path, parent_url, root) if path.relative?
        begin
          path = sprockets.resolve path
        rescue Sprockets::FileNotFound => e
          Trackman::Utility::Debugger.trace "Sprocket did not find path: #{path}\n#{e.message}"
          return old_rails_translate(url, parent_url)
        end
        path.relative_path_from(root).to_s
      end
      

      def prepare_for_sprocket path, parent_url, root
        folder = (root + Pathname.new(parent_url)).parent.realpath
        path = (folder + path).to_s
        
        same_path = sprockets.paths.select{|p| path.include? p }.first
        path.slice!(same_path) unless same_path.nil?
        
        path
      end
      
      def sprockets
        ::Rails.application.assets
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trackman-0.6.4 lib/trackman/path/rails32_resolver.rb