class Assetify::Pathfix

Attempt to fix assets in js/css for image_url

Attributes

images[R]

Public Class Methods

new(chunk, renderer = :erb, ns = nil) click to toggle source
# File lib/assetify/asset/pathfix.rb, line 6
def initialize(chunk, renderer = :erb, ns = nil)
  @chunk = chunk
  @renderer = renderer
  @ns = ns
  @images = scan_images
end

Public Instance Methods

fix() click to toggle source
# File lib/assetify/asset/pathfix.rb, line 28
def fix
  @images.each do |path|
    @chunk["url(#{path})"] = replace path.split('/').last
  end
  @renderer != :erb ? tmpl_chunk : @chunk
end
replace(src) click to toggle source
# File lib/assetify/asset/pathfix.rb, line 19
def replace(src)
  fpath = @ns ? "#{@ns}/#{src}" : src
  if @renderer == :erb
    "url('<%= image_path('#{fpath}') %>')"
  else
    "image-url('#{fpath}')"
  end
end
scan_images() click to toggle source
# File lib/assetify/asset/pathfix.rb, line 15
def scan_images
  @chunk.scan(%r{url\(([a-zA-Z0-9/\_\-\.]*\.\w+)\)}xo).flatten
end
tmpl_chunk() click to toggle source
# File lib/assetify/asset/pathfix.rb, line 35
def tmpl_chunk
  require 'sass/css'
  Sass::CSS.new(@chunk).render(@renderer)
rescue Sass::SyntaxError => e
  @error = e
end