sprockets-urlrewriter 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/lib/sprockets-urlrewriter/version.rb +3 -0
- data/lib/sprockets-urlrewriter.rb +11 -6
- data/spec/urlrewriter_spec.rb +17 -9
- data/sprockets-urlrewriter.gemspec +3 -2
- metadata +19 -7
data/.gitignore
CHANGED
@@ -4,14 +4,19 @@ require 'uri'
|
|
4
4
|
|
5
5
|
module Sprockets
|
6
6
|
class UrlRewriter < Processor
|
7
|
-
VERSION = "0.0.3"
|
8
|
-
|
9
7
|
def evaluate(context, locals)
|
10
|
-
|
8
|
+
# FIXME: Accessing logical_path instance variable directly instead of
|
9
|
+
# using public method, since the public method incorrectly chops paths
|
10
|
+
# with periods in them: https://github.com/sstephenson/sprockets/pull/299
|
11
|
+
#
|
12
|
+
# logical_path = context.logical_path
|
13
|
+
logical_path = context.instance_variable_get(:@logical_path)
|
14
|
+
|
15
|
+
rel = Pathname.new(logical_path).parent
|
11
16
|
data.gsub /url\(['"]?([^\s)]+\.[a-z]+)(\?\d+)?['"]?\)/ do |url|
|
12
|
-
|
13
|
-
new_path = rel.join Pathname.new($1)
|
14
|
-
"url(#{new_path})"
|
17
|
+
next url if URI.parse($1).absolute?
|
18
|
+
new_path = rel.join Pathname.new($1)
|
19
|
+
"url(#{new_path}#{$2})"
|
15
20
|
end
|
16
21
|
end
|
17
22
|
end
|
data/spec/urlrewriter_spec.rb
CHANGED
@@ -2,16 +2,24 @@ require 'minitest/autorun'
|
|
2
2
|
require './lib/sprockets-urlrewriter'
|
3
3
|
|
4
4
|
describe 'UrlRewriter' do
|
5
|
-
|
6
|
-
|
5
|
+
let(:context) { FakeContext.new "/assets/css/jada.css" }
|
6
|
+
let(:rewriter) { Sprockets::UrlRewriter.new { @css } }
|
7
|
+
subject { rewriter.evaluate context, {} }
|
8
|
+
|
9
|
+
it 'finds relatives urls and makes them absolute' do
|
10
|
+
@css = "body { background-url: url('bg.jpg?1232') }"
|
11
|
+
assert_equal "body { background-url: url(/assets/css/bg.jpg?1232) }", subject
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'leaves absolute URLs as is' do
|
15
|
+
@css = "body { background-url: url('http://example.com/bg.jpg?1232') }"
|
16
|
+
assert_equal @css, subject
|
7
17
|
end
|
18
|
+
end
|
8
19
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
ur = Sprockets::UrlRewriter.new { css }
|
14
|
-
result = ur.evaluate ctx, {}
|
15
|
-
assert_equal "body { background-url: url(/assets/css/bg.jpg) }", result
|
20
|
+
class FakeContext
|
21
|
+
attr_accessor :logical_path
|
22
|
+
def initialize(lpath)
|
23
|
+
@logical_path = lpath
|
16
24
|
end
|
17
25
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "sprockets-urlrewriter"
|
3
|
+
require "sprockets-urlrewriter/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "sprockets-urlrewriter"
|
7
|
-
s.version =
|
7
|
+
s.version = SprocketsUrlRewriter::VERSION
|
8
8
|
s.authors = ["Carl Hoerberg"]
|
9
9
|
s.email = ["carl.hoerberg@gmail.com"]
|
10
10
|
s.homepage = "http://github.com/carlhoerberg/sprockets-urlrewriter"
|
@@ -19,5 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
s.add_development_dependency "minitest"
|
22
|
+
s.add_development_dependency "rake"
|
22
23
|
s.add_runtime_dependency "sprockets"
|
23
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprockets-urlrewriter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
16
|
-
requirement: &
|
16
|
+
requirement: &70294673074580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,21 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70294673074580
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rake
|
27
|
+
requirement: &70294673073000 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70294673073000
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: sprockets
|
27
|
-
requirement: &
|
38
|
+
requirement: &70294673072280 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,7 +43,7 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :runtime
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *70294673072280
|
36
47
|
description: ! ' Replaces all instances of url() in CSS files Sprockets concats, if
|
37
48
|
the url is relative. '
|
38
49
|
email:
|
@@ -46,6 +57,7 @@ files:
|
|
46
57
|
- README.md
|
47
58
|
- Rakefile
|
48
59
|
- lib/sprockets-urlrewriter.rb
|
60
|
+
- lib/sprockets-urlrewriter/version.rb
|
49
61
|
- spec/urlrewriter_spec.rb
|
50
62
|
- sprockets-urlrewriter.gemspec
|
51
63
|
homepage: http://github.com/carlhoerberg/sprockets-urlrewriter
|
@@ -68,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
80
|
version: '0'
|
69
81
|
requirements: []
|
70
82
|
rubyforge_project: sprockets-urlrewriter
|
71
|
-
rubygems_version: 1.8.
|
83
|
+
rubygems_version: 1.8.17
|
72
84
|
signing_key:
|
73
85
|
specification_version: 3
|
74
86
|
summary: Makes absolut urls in CSS files generated by Sprockets
|