Module: Assiette::Rewriter
- Defined in:
- lib/assiette/rewriter.rb
Constant Summary collapse
- JS_IMPORT_RE =
Matches quoted strings that look like relative/absolute JS import paths. Handles ./ ../ / but NOT protocol-relative // $1 = quote char, $2 = path including extension
/(["'])(\.{0,2}\/(?!\/)[^"']*\.(?:js|mjs|es))\1/- CSS_URL_RE =
Matches url() in CSS with relative/absolute paths. Handles url(./path), url(“./path”), url(‘../path’), url(/path) but NOT url(data:…), url(https://…), url(//…) $1 = opening (quote or empty), $2 = path, $3 = closing (quote or empty)
/url\((\s*["']?)(\.{0,2}\/(?!\/)[^)"']*?)(\s*["']?\s*)\)/
Class Method Summary collapse
Class Method Details
.rewrite_css_urls(source, version_tag) ⇒ Object
24 25 26 27 28 |
# File 'lib/assiette/rewriter.rb', line 24 def rewrite_css_urls(source, version_tag) source.gsub(CSS_URL_RE) do "url(#{$1}#{$2}?v=#{version_tag}#{$3})" end end |
.rewrite_js_imports(source, version_tag) ⇒ Object
18 19 20 21 22 |
# File 'lib/assiette/rewriter.rb', line 18 def rewrite_js_imports(source, version_tag) source.gsub(JS_IMPORT_RE) do "#{$1}#{$2}?v=#{version_tag}#{$1}" end end |