jekyll-assets 0.7.9 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  tags
19
+ .sass-cache
data/HISTORY.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ### master (unreleased)
2
2
 
3
+ * Explicitly require `sass`.
4
+ * Fix `asset_*` helpers in imported SASS files.
5
+ See #83, #63. (Thanks @sentience)
6
+
3
7
 
4
8
  ### 0.7.9 (2014-05-25)
5
9
 
data/README.md CHANGED
@@ -207,7 +207,7 @@ changed via configuration:
207
207
 
208
208
  ``` yaml
209
209
  assets:
210
- baseurl: //my.super-cool-cdn.com/
210
+ baseurl: http://my.super-cool-cdn.com/assets
211
211
  ```
212
212
 
213
213
  [amazon-s3]: http://aws.amazon.com/s3
@@ -24,6 +24,8 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency "jekyll", ">= 1.0.0", "< 3.0.0"
26
26
  spec.add_dependency "sprockets", "~> 2.10"
27
+ spec.add_dependency "sprockets-sass"
28
+ spec.add_dependency "sprockets-helpers"
27
29
  spec.add_dependency "sass"
28
30
 
29
31
  spec.add_development_dependency "bundler", "~> 1.3"
@@ -1,7 +1 @@
1
1
  require "compass"
2
- require "sprockets"
3
-
4
- Compass::Frameworks::ALL.each do |fw|
5
- path = fw.stylesheets_directory
6
- Sprockets.append_path path if path
7
- end
@@ -2,7 +2,10 @@
2
2
  require "pathname"
3
3
 
4
4
  # 3rd-party
5
+ require "sass"
5
6
  require "sprockets"
7
+ require "sprockets-sass"
8
+ require "sprockets-helpers"
6
9
 
7
10
  module Jekyll
8
11
  module AssetsPlugin
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module AssetsPlugin
3
- VERSION = "0.7.9"
3
+ VERSION = "0.8.0"
4
4
  end
5
5
  end
@@ -1,8 +1,8 @@
1
1
  require "spec_helper"
2
2
  require "jekyll-assets/bootstrap"
3
3
 
4
- describe "Bootstrap integration" do
5
- it "should globally append bootstrap paths into Sprockets environment" do
6
- @site.assets["bootstrap.css"].to_s.should =~ /bootstrap\//
4
+ RSpec.describe "Bootstrap integration" do
5
+ it "globally appends bootstrap paths into Sprockets environment" do
6
+ expect(@site.assets["bootstrap.css"].to_s).to match(/bootstrap\//)
7
7
  end
8
8
  end
@@ -1,8 +1,9 @@
1
1
  require "spec_helper"
2
2
  require "jekyll-assets/bourbon"
3
3
 
4
- describe "Bourbon integration" do
5
- it "should globally append bourbon paths into Sprockets environment" do
6
- @site.assets["vendor/bourbon.css"].to_s.should =~ /linear-gradient/
4
+ RSpec.describe "Bourbon integration" do
5
+ it "globally appends bourbon paths into Sprockets environment" do
6
+ expect(@site.assets["vendor/with_bourbon.css"].to_s)
7
+ .to match(/linear-gradient/)
7
8
  end
8
9
  end
@@ -1,8 +1,9 @@
1
1
  require "spec_helper"
2
2
  require "jekyll-assets/compass"
3
3
 
4
- describe "Compass integration" do
5
- it "should globally append compass paths into Sprockets environment" do
6
- @site.assets["vendor/compass.css"].to_s.should =~ /linear-gradient/
4
+ RSpec.describe "Compass integration" do
5
+ it "globally appends compass paths into Sprockets environment" do
6
+ expect(@site.assets["vendor/with_compass.css"].to_s)
7
+ .to match(/linear-gradient/)
7
8
  end
8
9
  end
@@ -1,8 +1,8 @@
1
1
  require "spec_helper"
2
2
  require "jekyll-assets/font-awesome"
3
3
 
4
- describe "Font Awesome integration" do
5
- it "should globally append font awesome paths into Sprockets environment" do
6
- @site.assets["font-awesome.css"].to_s.should =~ /fa-github/
4
+ RSpec.describe "Font Awesome integration" do
5
+ it "globally appends font awesome paths into Sprockets environment" do
6
+ expect(@site.assets["font-awesome.css"].to_s).to match(/fa-github/)
7
7
  end
8
8
  end
@@ -1,8 +1,8 @@
1
1
  require "spec_helper"
2
2
  require "jekyll-assets/neat"
3
3
 
4
- describe "Neat integration" do
5
- it "should globally append neat paths into Sprockets environment" do
6
- @site.assets["vendor/neat.css"].to_s.should =~ /max-width/
4
+ RSpec.describe "Neat integration" do
5
+ it "globally appends neat paths into Sprockets environment" do
6
+ expect(@site.assets["vendor/with_neat.css"].to_s).to match(/max-width/)
7
7
  end
8
8
  end
@@ -1,62 +1,62 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Jekyll::AssetsPlugin::Configuration do
3
+ RSpec.describe Jekyll::AssetsPlugin::Configuration do
4
4
  context "with defaults" do
5
5
  let(:config) { described_class.new }
6
6
 
7
7
  context "output assets dirname" do
8
8
  subject { config.dirname }
9
- it { should == described_class::DEFAULTS[:dirname] }
9
+ it { is_expected.to eq described_class::DEFAULTS[:dirname] }
10
10
  end
11
11
 
12
12
  context "assets baseurl" do
13
13
  subject { config.baseurl }
14
- it { should == "/" + described_class::DEFAULTS[:dirname] }
14
+ it { is_expected.to eq "/" + described_class::DEFAULTS[:dirname] }
15
15
  end
16
16
 
17
17
  context "sources list" do
18
18
  subject { config.sources }
19
- it { should =~ described_class::DEFAULTS[:sources] }
19
+ it { is_expected.to match_array described_class::DEFAULTS[:sources] }
20
20
  end
21
21
 
22
22
  context "cachebust" do
23
23
  subject { config.cachebust }
24
- it { should == :hard }
24
+ it { is_expected.to be :hard }
25
25
  end
26
26
 
27
27
  context "js compressor" do
28
28
  subject { config.js_compressor }
29
- it { should be_nil }
29
+ it { is_expected.to be_nil }
30
30
  end
31
31
 
32
32
  context "css compressor" do
33
33
  subject { config.css_compressor }
34
- it { should be_nil }
34
+ it { is_expected.to be_nil }
35
35
  end
36
36
 
37
37
  context "gzip" do
38
38
  subject { config.gzip }
39
- it { should =~ %w[text/css application/javascript] }
39
+ it { is_expected.to match_array %w[text/css application/javascript] }
40
40
  end
41
41
 
42
42
  context "cache_assets?" do
43
43
  subject { config.cache_assets? }
44
- it { should be_false }
44
+ it { is_expected.to eq false }
45
45
  end
46
46
 
47
47
  context "cache_path" do
48
48
  subject { config.cache_path }
49
- it { should == ".jekyll-assets-cache" }
49
+ it { is_expected.to eq ".jekyll-assets-cache" }
50
50
  end
51
51
 
52
52
  context "debug" do
53
53
  subject { config.debug }
54
- it { should be_false }
54
+ it { is_expected.to eq false }
55
55
  end
56
56
 
57
57
  end
58
58
 
59
- it "should override specified options and leave defaults for missing" do
59
+ it "overrides specified options and leave defaults for missing" do
60
60
  config = described_class.new({
61
61
  :sources => %w[abc],
62
62
  :css_compressor => "sass"
@@ -70,25 +70,25 @@ describe Jekyll::AssetsPlugin::Configuration do
70
70
 
71
71
  context "#cache" do
72
72
  context "when specified as String" do
73
- it "should override default cache path" do
73
+ it "overrides default cache path" do
74
74
  config = described_class.new :cache => "/tmp/jekyll-assets"
75
- config.cache_path.should == "/tmp/jekyll-assets"
75
+ expect(config.cache_path).to eq("/tmp/jekyll-assets")
76
76
  end
77
77
  end
78
78
  end
79
79
 
80
80
  context "#baseurl" do
81
- it "should respect explicit overrides" do
82
- described_class.new({
81
+ it "respects explicit overrides" do
82
+ expect(described_class.new({
83
83
  :dirname => "foo",
84
84
  :baseurl => "/bar/"
85
- }).baseurl.should == "/bar"
85
+ }).baseurl).to eq("/bar")
86
86
  end
87
87
 
88
- it "should be auto-guessed from dirname" do
89
- described_class.new({
88
+ it "is auto-guessed from dirname" do
89
+ expect(described_class.new({
90
90
  :dirname => "foo"
91
- }).baseurl.should == "/foo"
91
+ }).baseurl).to eq("/foo")
92
92
  end
93
93
  end
94
94
 
@@ -96,13 +96,13 @@ describe Jekyll::AssetsPlugin::Configuration do
96
96
  context "when js compressor is given as `uglify`" do
97
97
  let(:config) { described_class.new(:js_compressor => "uglify") }
98
98
  subject { config.js_compressor }
99
- it { should be :uglify }
99
+ it { is_expected.to be :uglify }
100
100
  end
101
101
 
102
102
  context "otherwise" do
103
103
  let(:config) { described_class.new }
104
104
  subject { config.js_compressor }
105
- it { should be_false }
105
+ it { is_expected.to be_falsey }
106
106
  end
107
107
  end
108
108
 
@@ -110,13 +110,13 @@ describe Jekyll::AssetsPlugin::Configuration do
110
110
  context "when css compressor is given as `sass`" do
111
111
  let(:config) { described_class.new(:css_compressor => "sass") }
112
112
  subject { config.css_compressor }
113
- it { should be :sass }
113
+ it { is_expected.to be :sass }
114
114
  end
115
115
 
116
116
  context "otherwise" do
117
117
  let(:config) { described_class.new }
118
118
  subject { config.css_compressor }
119
- it { should be_false }
119
+ it { is_expected.to be_falsey }
120
120
  end
121
121
  end
122
122
 
@@ -124,7 +124,7 @@ describe Jekyll::AssetsPlugin::Configuration do
124
124
  context "when gzip is disabled" do
125
125
  let(:config) { described_class.new(:gzip => false) }
126
126
  subject { config.gzip }
127
- it { should == [] }
127
+ it { is_expected.to eq [] }
128
128
  end
129
129
  end
130
130
 
@@ -133,14 +133,14 @@ describe Jekyll::AssetsPlugin::Configuration do
133
133
 
134
134
  context "when given as 123" do
135
135
  let(:version) { 123 }
136
- it { should eq 123 }
137
- it { should be_a Integer }
136
+ it { is_expected.to eq 123 }
137
+ it { is_expected.to be_a Integer }
138
138
  end
139
139
 
140
140
  context "when given as 'abc'" do
141
141
  let(:version) { "abc" }
142
- it { should eq "abc" }
143
- it { should be_a String }
142
+ it { is_expected.to eq "abc" }
143
+ it { is_expected.to be_a String }
144
144
  end
145
145
  end
146
146
 
@@ -152,15 +152,22 @@ describe Jekyll::AssetsPlugin::Configuration do
152
152
  { :compress => { :js => "uglify", :css => "sass" } }
153
153
  end
154
154
 
155
- its(:js_compressor) { should be :uglify }
156
- its(:css_compressor) { should be :sass }
155
+ describe "#js_compressor" do
156
+ subject { super().js_compressor }
157
+ it { is_expected.to be :uglify }
158
+ end
159
+
160
+ describe "#css_compressor" do
161
+ subject { super().css_compressor }
162
+ it { is_expected.to be :sass }
163
+ end
157
164
  end
158
165
 
159
166
  context "cache_assets" do
160
167
  let(:options) { { :cache_assets => true } }
161
168
 
162
- it "should set `cache` value" do
163
- config.cache_assets?.should be_true
169
+ it "sets `cache` value" do
170
+ expect(config.cache_assets?).to eq true
164
171
  end
165
172
  end
166
173
  end
@@ -1,22 +1,18 @@
1
1
  require "spec_helper"
2
2
 
3
- module Jekyll
4
- module AssetsPlugin
5
- describe Environment do
6
- context "#asset_path of context" do
7
- it "should properly handle query params" do
8
- css = @site.assets["vapor.css"].to_s
9
- css.should match(/fonts\/vapor-[a-f0-9]{32}\.eot\?#iefix/)
10
- css.should match(/fonts\/vapor-[a-f0-9]{32}\.svg#iefix/)
11
- end
3
+ RSpec.describe Jekyll::AssetsPlugin::Environment do
4
+ context "#asset_path of context" do
5
+ it "properly handles query params" do
6
+ css = @site.assets["vapor.css"].to_s
7
+ expect(css).to match(/fonts\/vapor-[a-f0-9]{32}\.eot\?#iefix/)
8
+ expect(css).to match(/fonts\/vapor-[a-f0-9]{32}\.svg#iefix/)
9
+ end
12
10
 
13
- it "should properly handle relative paths" do
14
- css = @site.assets["lib/relative.css"].to_s
15
- css.should =~ %r{/assets/fonts/vapor-[a-f0-9]{32}\.eot\?#iefix}
16
- css.should =~ %r{/assets/fonts/vapor-[a-f0-9]{32}\.svg#iefix}
17
- puts css
18
- end
19
- end
11
+ it "properly handles relative paths" do
12
+ css = @site.assets["lib/relative.css"].to_s
13
+ expect(css).to match(%r{/assets/fonts/vapor-[a-f0-9]{32}\.eot\?#iefix})
14
+ expect(css).to match(%r{/assets/fonts/vapor-[a-f0-9]{32}\.svg#iefix})
15
+ puts css
20
16
  end
21
17
  end
22
18
  end
@@ -1,12 +1,16 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Jekyll::AssetsPlugin::Filters do
3
+ RSpec.describe Jekyll::AssetsPlugin::Filters do
4
4
  let(:context) { { :registers => { :site => @site } } }
5
5
 
6
6
  def render(content)
7
7
  ::Liquid::Template.parse(content).render({}, context)
8
8
  end
9
9
 
10
+ def not_found_error(file)
11
+ "Liquid error: Couldn't find file '#{file}"
12
+ end
13
+
10
14
  context "{{ '<file>' | image }}" do
11
15
  def tag_re(name)
12
16
  file = "/assets/#{name}-[a-f0-9]{32}\.png"
@@ -15,12 +19,12 @@ describe Jekyll::AssetsPlugin::Filters do
15
19
 
16
20
  context "when <file> exists" do
17
21
  subject { render("{{ 'noise.png' | image }}") }
18
- it { should match tag_re("noise") }
22
+ it { is_expected.to match tag_re("noise") }
19
23
  end
20
24
 
21
25
  context "when <file> does not exists" do
22
26
  subject { render("{{ 'not-found.png' | image }}") }
23
- it { should match "Liquid error: Couldn't find file 'not-found.png'" }
27
+ it { is_expected.to match not_found_error "not-found.png" }
24
28
  end
25
29
  end
26
30
 
@@ -32,17 +36,17 @@ describe Jekyll::AssetsPlugin::Filters do
32
36
 
33
37
  context "when <file> exists" do
34
38
  subject { render("{{ 'app.css' | stylesheet }}") }
35
- it { should match tag_re("app") }
39
+ it { is_expected.to match tag_re("app") }
36
40
  end
37
41
 
38
42
  context "when <file> extension is omited" do
39
43
  subject { render("{{ 'app' | stylesheet }}") }
40
- it { should match tag_re("app") }
44
+ it { is_expected.to match tag_re("app") }
41
45
  end
42
46
 
43
47
  context "when <file> does not exists" do
44
48
  subject { render("{{ 'not-found.css' | stylesheet }}") }
45
- it { should match "Liquid error: Couldn't find file 'not-found.css'" }
49
+ it { is_expected.to match not_found_error "not-found.css" }
46
50
  end
47
51
  end
48
52
 
@@ -54,29 +58,29 @@ describe Jekyll::AssetsPlugin::Filters do
54
58
 
55
59
  context "when <file> exists" do
56
60
  subject { render("{{ 'app.js' | javascript }}") }
57
- it { should match tag_re("app") }
61
+ it { is_expected.to match tag_re("app") }
58
62
  end
59
63
 
60
64
  context "when <file> extension omited" do
61
65
  subject { render("{{ 'app' | javascript }}") }
62
- it { should match tag_re("app") }
66
+ it { is_expected.to match tag_re("app") }
63
67
  end
64
68
 
65
69
  context "when <file> does not exists" do
66
70
  subject { render("{{ 'not-found.js' | javascript }}") }
67
- it { should match "Liquid error: Couldn't find file 'not-found.js'" }
71
+ it { is_expected.to match not_found_error "not-found.js" }
68
72
  end
69
73
  end
70
74
 
71
75
  context "{{ '<file.ext>' | asset_path }}" do
72
76
  context "when <file> exists" do
73
77
  subject { render("{{ 'app.css' | asset_path }}") }
74
- it { should match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
78
+ it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
75
79
  end
76
80
 
77
81
  context "when <file> does not exists" do
78
82
  subject { render("{{ 'not-found.css' | asset_path }}") }
79
- it { should match "Liquid error: Couldn't find file 'not-found.css'" }
83
+ it { is_expected.to match not_found_error "not-found.css" }
80
84
  end
81
85
 
82
86
  context "with baseurl given as /foobar/" do
@@ -85,19 +89,19 @@ describe Jekyll::AssetsPlugin::Filters do
85
89
  end
86
90
 
87
91
  subject { render("{{ 'app.css' | asset_path }}") }
88
- it { should match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
92
+ it { is_expected.to match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
89
93
  end
90
94
  end
91
95
 
92
96
  context "{{ '<file.ext>' | asset }}" do
93
97
  context "when <file> exists" do
94
98
  subject { render("{{ 'app.css' | asset }}") }
95
- it { should match(/body \{ background-image: url\(.+?\) \}/) }
99
+ it { is_expected.to match(/body \{ background-image: url\(.+?\) \}/) }
96
100
  end
97
101
 
98
102
  context "when <file> does not exists" do
99
103
  subject { render("{{ 'not-found.js' | asset }}") }
100
- it { should match "Liquid error: Couldn't find file 'not-found.js'" }
104
+ it { is_expected.to match not_found_error "not-found.js" }
101
105
  end
102
106
  end
103
107
  end
@@ -1,6 +1,8 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Jekyll::AssetsPlugin::Patches::SitePatch do
3
+ # rubocop:disable LineLength
4
+
5
+ RSpec.describe Jekyll::AssetsPlugin::Patches::SitePatch do
4
6
  let(:site) do
5
7
  Jekyll::Site.new Jekyll.configuration({
6
8
  "source" => fixtures_path.to_s,
@@ -13,13 +15,13 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
13
15
 
14
16
  context "#assets" do
15
17
  subject { site.assets }
16
- it { should be_a_kind_of ::Sprockets::Environment }
18
+ it { is_expected.to be_a_kind_of ::Sprockets::Environment }
17
19
 
18
20
  context "#cache_path" do
19
21
  let(:source_path) { Pathname.new site.source }
20
22
  subject { site.assets.cache_path }
21
23
 
22
- it { should eq source_path.join(".jekyll-assets-cache") }
24
+ it { is_expected.to eq source_path.join(".jekyll-assets-cache") }
23
25
  end
24
26
 
25
27
  context "calling #asset_path within assets" do
@@ -31,14 +33,14 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
31
33
  end
32
34
 
33
35
  context "when requested file found" do
34
- it "should have proper asset path" do
36
+ it "has proper asset path" do
35
37
  expect(site.assets["app.css"].to_s)
36
38
  .to match(%r{url\(/assets/noise-[a-f0-9]{32}\.png\)})
37
39
  end
38
40
  end
39
41
 
40
42
  context "when passed a blank path" do
41
- it "should be blank" do
43
+ it "is blank" do
42
44
  expect(site.assets["should_be_blank.css"].to_s)
43
45
  .to match(/url\(\)/)
44
46
  end
@@ -51,22 +53,22 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
51
53
 
52
54
  context "with none cachebust" do
53
55
  before { site.assets_config.cachebust = :none }
54
- it { should match(%r{^/assets/app\.css$}) }
56
+ it { is_expected.to match(%r{^/assets/app\.css$}) }
55
57
  end
56
58
 
57
59
  context "with soft cachebust" do
58
60
  before { site.assets_config.cachebust = :soft }
59
- it { should match(%r{^/assets/app\.css\?cb=[a-f0-9]{32}$}) }
61
+ it { is_expected.to match(%r{^/assets/app\.css\?cb=[a-f0-9]{32}$}) }
60
62
  end
61
63
 
62
64
  context "with hard cachebust" do
63
65
  before { site.assets_config.cachebust = :hard }
64
- it { should match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
66
+ it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
65
67
  end
66
68
 
67
69
  context "with unknown cachebust" do
68
70
  before { site.assets_config.cachebust = :wtf }
69
- it "should raise error" do
71
+ it "raises error" do
70
72
  expect { site.asset_path "app.css" }.to raise_error
71
73
  end
72
74
  end
@@ -76,17 +78,17 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
76
78
 
77
79
  context "and none cachebust" do
78
80
  before { site.assets_config.cachebust = :none }
79
- it { should match(%r{^/assets/app\.css\?foo=bar$}) }
81
+ it { is_expected.to match(%r{^/assets/app\.css\?foo=bar$}) }
80
82
  end
81
83
 
82
84
  context "and soft cachebust" do
83
85
  before { site.assets_config.cachebust = :soft }
84
- it { should match %r{^/assets/app\.css\?cb=[a-f0-9]{32}&foo=bar$} }
86
+ it { is_expected.to match %r{^/assets/app\.css\?cb=[a-f0-9]{32}&foo=bar$} }
85
87
  end
86
88
 
87
89
  context "and hard cachebust" do
88
90
  before { site.assets_config.cachebust = :hard }
89
- it { should match(%r{^/assets/app-[a-f0-9]{32}\.css\?foo=bar$}) }
91
+ it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css\?foo=bar$}) }
90
92
  end
91
93
  end
92
94
 
@@ -95,35 +97,35 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
95
97
 
96
98
  context "and none cachebust" do
97
99
  before { site.assets_config.cachebust = :none }
98
- it { should match(%r{^/assets/app\.css#foobar$}) }
100
+ it { is_expected.to match(%r{^/assets/app\.css#foobar$}) }
99
101
  end
100
102
 
101
103
  context "and soft cachebust" do
102
104
  before { site.assets_config.cachebust = :soft }
103
- it { should match(%r{^/assets/app\.css\?cb=[a-f0-9]{32}#foobar$}) }
105
+ it { is_expected.to match(%r{^/assets/app\.css\?cb=[a-f0-9]{32}#foobar$}) }
104
106
  end
105
107
 
106
108
  context "and hard cachebust" do
107
109
  before { site.assets_config.cachebust = :hard }
108
- it { should match(%r{^/assets/app-[a-f0-9]{32}\.css#foobar$}) }
110
+ it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css#foobar$}) }
109
111
  end
110
112
  end
111
113
  end
112
114
 
113
115
  context "#assets_config" do
114
116
  subject { site.assets_config }
115
- it { should be_an_instance_of Jekyll::AssetsPlugin::Configuration }
117
+ it { is_expected.to be_an_instance_of Jekyll::AssetsPlugin::Configuration }
116
118
 
117
- it "should been populated with `assets` section of config" do
118
- site.assets_config.dirname.should_not eq "foobar"
119
- site.assets_config.sources.should include "foobar"
119
+ it "populated with `assets` section of config" do
120
+ expect(site.assets_config.dirname).not_to eq "foobar"
121
+ expect(site.assets_config.sources).to include "foobar"
120
122
  end
121
123
  end
122
124
 
123
- it "should regenerate assets upon multiple #process" do
125
+ it "regenerates assets upon multiple #process" do
124
126
  @site.assets_config.cachebust = :none
125
127
  2.times { @site.process }
126
- @dest.join("assets", "app.css").exist?.should be_true
128
+ expect(@dest.join "assets", "app.css").to exist
127
129
  end
128
130
 
129
131
  context "with cache" do
@@ -139,30 +141,32 @@ describe Jekyll::AssetsPlugin::Patches::SitePatch do
139
141
  site.assets.cache_path.rmtree if site.assets.cache_path.exist?
140
142
  end
141
143
 
142
- it "should regenerate static assets upon multiple #process" do
144
+ it "regenerates static assets upon multiple #process" do
143
145
  2.times { site.process }
144
- @dest.join("assets", "noise.png").exist?.should be_true
146
+ expect(@dest.join "assets", "noise.png").to exist
145
147
  end
146
148
  end
147
149
 
148
150
  context "#gzip" do
149
151
  subject { site.assets_config }
150
152
 
151
- it "should generate a static assets if gzip is enabled" do
153
+ it "generates a static assets if gzip is enabled" do
152
154
  @site.assets_config.gzip = true
153
155
  @site.process
154
- @dest.join("assets", "app.css.gz").exist?.should be_true
156
+
157
+ expect(@dest.join "assets", "app.css.gz").to exist
155
158
  end
156
159
 
157
- it "should not generate a static assets if gzip is enabled" do
160
+ it "does not generate a static assets if gzip is enabled" do
158
161
  @site.assets_config.gzip = false
159
162
  @site.process
160
- @dest.join("assets", "app.css.gz").exist?.should be_false
163
+
164
+ expect(@dest.join "assets", "app.css.gz").to_not exist
161
165
  end
162
166
 
163
167
  end
164
168
 
165
- it "should be included into Jekyll::Site" do
166
- Jekyll::Site.included_modules.should include described_class
169
+ it "is included into Jekyll::Site" do
170
+ expect(Jekyll::Site.included_modules).to include described_class
167
171
  end
168
172
  end
@@ -3,7 +3,7 @@ require "ostruct"
3
3
 
4
4
  require "spec_helper"
5
5
 
6
- describe Jekyll::AssetsPlugin::Renderer do
6
+ RSpec.describe Jekyll::AssetsPlugin::Renderer do
7
7
  let(:site) do
8
8
  Jekyll::Site.new Jekyll.configuration({
9
9
  "source" => fixtures_path.to_s,
@@ -22,12 +22,12 @@ describe Jekyll::AssetsPlugin::Renderer do
22
22
 
23
23
  context "when debug mode enabled" do
24
24
  let(:assets_config) { Hash[:debug, true] }
25
- it { should match(/^(\s*<script src="[^"]+"><\/script>\s*){3}$/) }
25
+ it { is_expected.to match(/^(\s*<script src="[^"]+"><\/script>\s*){3}$/) }
26
26
  end
27
27
 
28
28
  context "when debug mode disabled" do
29
29
  let(:assets_config) { Hash[:debug, false] }
30
- it { should match(/^(\s*<script src="[^"]+"><\/script>\s*){1}$/) }
30
+ it { is_expected.to match(/^(\s*<script src="[^"]+"><\/script>\s*){1}$/) }
31
31
  end
32
32
  end
33
33
 
@@ -36,12 +36,12 @@ describe Jekyll::AssetsPlugin::Renderer do
36
36
 
37
37
  context "when debug mode enabled" do
38
38
  let(:assets_config) { Hash[:debug, true] }
39
- it { should match(/^(\s*<link rel="stylesheet" [^>]+>\s*){3}$/) }
39
+ it { is_expected.to match(/^(\s*<link rel="stylesheet" [^>]+>\s*){3}$/) }
40
40
  end
41
41
 
42
42
  context "when debug mode disabled" do
43
43
  let(:assets_config) { Hash[:debug, false] }
44
- it { should match(/^(\s*<link rel="stylesheet" [^>]+>\s*){1}$/) }
44
+ it { is_expected.to match(/^(\s*<link rel="stylesheet" [^>]+>\s*){1}$/) }
45
45
  end
46
46
  end
47
47
 
@@ -1,12 +1,16 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Jekyll::AssetsPlugin::Tag do
3
+ RSpec.describe Jekyll::AssetsPlugin::Tag do
4
4
  let(:context) { { :registers => { :site => @site } } }
5
5
 
6
6
  def render(content)
7
7
  ::Liquid::Template.parse(content).render({}, context)
8
8
  end
9
9
 
10
+ def not_found_error(file)
11
+ "Liquid error: Couldn't find file '#{file}'"
12
+ end
13
+
10
14
  context "{% image <file> %}" do
11
15
  def tag_re(name)
12
16
  file = "/assets/#{name}-[a-f0-9]{32}\.png"
@@ -15,12 +19,12 @@ describe Jekyll::AssetsPlugin::Tag do
15
19
 
16
20
  context "when <file> exists" do
17
21
  subject { render("{% image noise.png %}") }
18
- it { should match tag_re("noise") }
22
+ it { is_expected.to match tag_re("noise") }
19
23
  end
20
24
 
21
25
  context "when <file> does not exists" do
22
26
  subject { render("{% image not-found.png %}") }
23
- it { should match "Liquid error: Couldn't find file 'not-found.png'" }
27
+ it { is_expected.to match not_found_error "not-found.png" }
24
28
  end
25
29
  end
26
30
 
@@ -32,17 +36,17 @@ describe Jekyll::AssetsPlugin::Tag do
32
36
 
33
37
  context "when <file> exists" do
34
38
  subject { render("{% stylesheet app.css %}") }
35
- it { should match tag_re("app") }
39
+ it { is_expected.to match tag_re("app") }
36
40
  end
37
41
 
38
42
  context "when <file> extension is omited" do
39
43
  subject { render("{% stylesheet app %}") }
40
- it { should match tag_re("app") }
44
+ it { is_expected.to match tag_re("app") }
41
45
  end
42
46
 
43
47
  context "when <file> does not exists" do
44
48
  subject { render("{% stylesheet not-found.css %}") }
45
- it { should match "Liquid error: Couldn't find file 'not-found.css'" }
49
+ it { is_expected.to match not_found_error "not-found.css" }
46
50
  end
47
51
  end
48
52
 
@@ -54,29 +58,29 @@ describe Jekyll::AssetsPlugin::Tag do
54
58
 
55
59
  context "when <file> exists" do
56
60
  subject { render("{% javascript app.js %}") }
57
- it { should match tag_re("app") }
61
+ it { is_expected.to match tag_re("app") }
58
62
  end
59
63
 
60
64
  context "when <file> extension omited" do
61
65
  subject { render("{% javascript app %}") }
62
- it { should match tag_re("app") }
66
+ it { is_expected.to match tag_re("app") }
63
67
  end
64
68
 
65
69
  context "when <file> does not exists" do
66
70
  subject { render("{% javascript not-found.js %}") }
67
- it { should match "Liquid error: Couldn't find file 'not-found.js'" }
71
+ it { is_expected.to match not_found_error "not-found.js" }
68
72
  end
69
73
  end
70
74
 
71
75
  context "{% asset_path <file.ext> %}" do
72
76
  context "when <file> exists" do
73
77
  subject { render("{% asset_path app.css %}") }
74
- it { should match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
78
+ it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
75
79
  end
76
80
 
77
81
  context "when <file> does not exists" do
78
82
  subject { render("{% asset_path not-found.js %}") }
79
- it { should match "Liquid error: Couldn't find file 'not-found.js'" }
83
+ it { is_expected.to match not_found_error "not-found.js" }
80
84
  end
81
85
 
82
86
  context "with baseurl given as /foobar/" do
@@ -85,19 +89,19 @@ describe Jekyll::AssetsPlugin::Tag do
85
89
  end
86
90
 
87
91
  subject { render("{% asset_path app.css %}") }
88
- it { should match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
92
+ it { is_expected.to match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
89
93
  end
90
94
  end
91
95
 
92
96
  context "{% asset <file.ext> %}" do
93
97
  context "when <file> exists" do
94
98
  subject { render("{% asset app.css %}") }
95
- it { should match(/body \{ background-image: url\(.+?\) \}/) }
99
+ it { is_expected.to match(/body \{ background-image: url\(.+?\) \}/) }
96
100
  end
97
101
 
98
102
  context "when <file> does not exists" do
99
103
  subject { render("{% asset_path not-found.js %}") }
100
- it { should match "Liquid error: Couldn't find file 'not-found.js'" }
104
+ it { is_expected.to match not_found_error "not-found.js" }
101
105
  end
102
106
  end
103
107
  end
data/spec/spec_helper.rb CHANGED
@@ -22,6 +22,8 @@ RSpec.configure do |config|
22
22
  config.include FixturesHelpers
23
23
  config.extend FixturesHelpers
24
24
 
25
+ config.disable_monkey_patching!
26
+
25
27
  config.before(:all) do
26
28
  if Gem::Version.new("2") <= Gem::Version.new(Jekyll::VERSION)
27
29
  Jekyll.logger.log_level = :warn
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-25 00:00:00.000000000 Z
12
+ date: 2014-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll
@@ -49,6 +49,38 @@ dependencies:
49
49
  - - ~>
50
50
  - !ruby/object:Gem::Version
51
51
  version: '2.10'
52
+ - !ruby/object:Gem::Dependency
53
+ name: sprockets-sass
54
+ requirement: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: sprockets-helpers
70
+ requirement: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
52
84
  - !ruby/object:Gem::Dependency
53
85
  name: sass
54
86
  requirement: !ruby/object:Gem::Requirement
@@ -265,9 +297,9 @@ files:
265
297
  - spec/fixtures/_assets/should_fail.css.erb
266
298
  - spec/fixtures/_assets/vapor.css.scss
267
299
  - spec/fixtures/_assets/vapor.js
268
- - spec/fixtures/_assets/vendor/bourbon.css.sass
269
- - spec/fixtures/_assets/vendor/compass.css.sass
270
- - spec/fixtures/_assets/vendor/neat.css.sass
300
+ - spec/fixtures/_assets/vendor/with_bourbon.css.sass
301
+ - spec/fixtures/_assets/vendor/with_compass.css.sass
302
+ - spec/fixtures/_assets/vendor/with_neat.css.sass
271
303
  - spec/fixtures/_assets/wowscript.js
272
304
  - spec/fixtures/_assets/wowstyle.css
273
305
  - spec/fixtures/_config.yml
@@ -302,7 +334,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
302
334
  version: '0'
303
335
  segments:
304
336
  - 0
305
- hash: 3481509425775941281
337
+ hash: 483849259478873314
306
338
  required_rubygems_version: !ruby/object:Gem::Requirement
307
339
  none: false
308
340
  requirements:
@@ -311,13 +343,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
343
  version: '0'
312
344
  segments:
313
345
  - 0
314
- hash: 3481509425775941281
346
+ hash: 483849259478873314
315
347
  requirements: []
316
348
  rubyforge_project:
317
349
  rubygems_version: 1.8.23.2
318
350
  signing_key:
319
351
  specification_version: 3
320
- summary: jekyll-assets-0.7.9
352
+ summary: jekyll-assets-0.8.0
321
353
  test_files:
322
354
  - spec/fixtures/.gitignore
323
355
  - spec/fixtures/_assets/app.css.erb
@@ -332,9 +364,9 @@ test_files:
332
364
  - spec/fixtures/_assets/should_fail.css.erb
333
365
  - spec/fixtures/_assets/vapor.css.scss
334
366
  - spec/fixtures/_assets/vapor.js
335
- - spec/fixtures/_assets/vendor/bourbon.css.sass
336
- - spec/fixtures/_assets/vendor/compass.css.sass
337
- - spec/fixtures/_assets/vendor/neat.css.sass
367
+ - spec/fixtures/_assets/vendor/with_bourbon.css.sass
368
+ - spec/fixtures/_assets/vendor/with_compass.css.sass
369
+ - spec/fixtures/_assets/vendor/with_neat.css.sass
338
370
  - spec/fixtures/_assets/wowscript.js
339
371
  - spec/fixtures/_assets/wowstyle.css
340
372
  - spec/fixtures/_config.yml