jekyll-assets 0.5.3 → 0.5.4
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/Guardfile +2 -0
- data/HISTORY.md +9 -0
- data/LICENSE +1 -1
- data/README.md +13 -21
- data/Rakefile +0 -2
- data/jekyll-assets.gemspec +26 -25
- data/lib/jekyll/assets_plugin.rb +0 -1
- data/lib/jekyll/assets_plugin/configuration.rb +21 -10
- data/lib/jekyll/assets_plugin/environment.rb +9 -7
- data/lib/jekyll/assets_plugin/version.rb +1 -1
- data/spec/lib/jekyll/assets_plugin/configuration_spec.rb +46 -10
- metadata +13 -14
- data/lib/jekyll/assets_plugin/commands.rb +0 -16
data/Guardfile
CHANGED
data/HISTORY.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
### 0.5.4 (2103-07-07)
|
2
|
+
|
3
|
+
* Rename configuration options `compress.js` and `compress.css` into
|
4
|
+
`js_compressor` and `css_compressor` respectively.
|
5
|
+
* Rename configureation option `cache_assets` into `cache`.
|
6
|
+
* Allow specify custom compilation cache path.
|
7
|
+
* Invalidate cache upon config changes.
|
8
|
+
|
9
|
+
|
1
10
|
### 0.5.3 (2013-05-25)
|
2
11
|
|
3
12
|
* Assets cache disable by default, in order to avoid "unpredictable" behavior.
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -216,19 +216,13 @@ To improve build time, you can enabled compiled assets cache:
|
|
216
216
|
|
217
217
|
``` yaml
|
218
218
|
assets:
|
219
|
-
|
219
|
+
cache: true
|
220
220
|
```
|
221
221
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
Also you will need to add `.jekyll-assets-cache` path under source of your
|
227
|
-
jekyll site into exclusion list of your source control system (`.gitignore`
|
228
|
-
for git).
|
229
|
-
|
230
|
-
At the moment we use *FileStore* cache which keeps compiled data on file system.
|
231
|
-
If you need MemCache or Redis based store, please raise a ticket.
|
222
|
+
This will keep cache of compiled assets in `.jekyll-assets-cache` under source
|
223
|
+
of your jekyl site. If you want to use different location specify it instead of
|
224
|
+
`true`, in this case it should be an absolute path or path relative to source
|
225
|
+
path of your jekyl site.
|
232
226
|
|
233
227
|
|
234
228
|
## Custom Vendors
|
@@ -421,17 +415,15 @@ assets:
|
|
421
415
|
- _assets/stylesheets
|
422
416
|
- _assets/images
|
423
417
|
#
|
424
|
-
# Sets
|
425
|
-
#
|
418
|
+
# Sets JS compressor. No compression by default.
|
419
|
+
# Possible variants: 'yui', 'uglifier', nil
|
426
420
|
#
|
427
|
-
|
421
|
+
js_compressor: ~
|
428
422
|
#
|
429
|
-
#
|
430
|
-
#
|
423
|
+
# Sets CSS compressor. No compression by default.
|
424
|
+
# Possible variants: 'yui', 'sass', nil
|
431
425
|
#
|
432
|
-
|
433
|
-
js: ~
|
434
|
-
css: ~
|
426
|
+
css_compressor: ~
|
435
427
|
#
|
436
428
|
# Sets cachebusting policy for generated assets.
|
437
429
|
#
|
@@ -461,7 +453,7 @@ assets:
|
|
461
453
|
# Whenever or not cache compiled assets (disabled by default).
|
462
454
|
# See `Compilation Cache` section of README for details.
|
463
455
|
#
|
464
|
-
|
456
|
+
cache: false
|
465
457
|
#
|
466
458
|
# Specifies list of MIME types that needs to have gzipped versions.
|
467
459
|
# You can set it to `false` to disable gzipping. Only javascripts and
|
@@ -492,7 +484,7 @@ write an [e-mail][e-mail]. :D
|
|
492
484
|
|
493
485
|
## License
|
494
486
|
|
495
|
-
Copyright (C) 2012 Aleksey V Zapparov (http://ixti.net/)
|
487
|
+
Copyright (C) 2012-2013 Aleksey V Zapparov (http://ixti.net/)
|
496
488
|
|
497
489
|
The MIT License
|
498
490
|
|
data/Rakefile
CHANGED
data/jekyll-assets.gemspec
CHANGED
@@ -1,35 +1,36 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'jekyll/assets_plugin/version'
|
3
5
|
|
4
6
|
|
5
|
-
Gem::Specification.new do |
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "jekyll-assets"
|
9
|
+
spec.version = Jekyll::AssetsPlugin::VERSION
|
10
|
+
spec.homepage = "http://ixti.github.com/jekyll-assets"
|
11
|
+
spec.authors = ["Aleksey V Zapparov"]
|
12
|
+
spec.email = %w{ixti@member.fsf.org}
|
13
|
+
spec.license = "MIT"
|
14
|
+
spec.summary = "jekyll-assets-#{Jekyll::AssetsPlugin::VERSION}"
|
15
|
+
spec.description = <<-DESC
|
14
16
|
Jekyll plugin, that allows you to write javascript/css assets in
|
15
17
|
other languages such as CoffeeScript, Sass, Less and ERB, concatenate
|
16
18
|
them, respecting dependencies, minify and many more.
|
17
19
|
DESC
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
+
spec.files = `git ls-files`.split($/)
|
22
|
+
spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
23
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
24
|
+
spec.require_paths = ["lib"]
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
gem.add_development_dependency "guard-rspec"
|
25
|
-
gem.add_development_dependency "rb-inotify"
|
26
|
-
gem.add_development_dependency "compass"
|
27
|
-
gem.add_development_dependency "bourbon"
|
28
|
-
gem.add_development_dependency "neat"
|
26
|
+
spec.add_dependency "jekyll", "~> 1.0"
|
27
|
+
spec.add_dependency "sprockets", "~> 2.10"
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
30
|
+
spec.add_development_dependency "rake"
|
31
|
+
spec.add_development_dependency "rspec"
|
32
|
+
spec.add_development_dependency "guard-rspec"
|
33
|
+
spec.add_development_dependency "compass"
|
34
|
+
spec.add_development_dependency "bourbon"
|
35
|
+
spec.add_development_dependency "neat"
|
35
36
|
end
|
data/lib/jekyll/assets_plugin.rb
CHANGED
@@ -6,12 +6,13 @@ module Jekyll
|
|
6
6
|
module AssetsPlugin
|
7
7
|
class Configuration
|
8
8
|
DEFAULTS = {
|
9
|
-
:dirname
|
10
|
-
:sources
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
9
|
+
:dirname => "assets",
|
10
|
+
:sources => %w{_assets/javascripts _assets/stylesheets _assets/images},
|
11
|
+
:js_compressor => nil,
|
12
|
+
:css_compressor => nil,
|
13
|
+
:cachebust => :hard,
|
14
|
+
:cache => false,
|
15
|
+
:gzip => %w{ text/css application/javascript }
|
15
16
|
}.freeze
|
16
17
|
|
17
18
|
|
@@ -19,9 +20,14 @@ module Jekyll
|
|
19
20
|
@data = OpenStruct.new DEFAULTS.merge(config)
|
20
21
|
|
21
22
|
@data.sources = [ @data.sources ] if @data.sources.is_a? String
|
22
|
-
@data.compress = OpenStruct.new @data.compress
|
23
23
|
@data.dirname = @data.dirname.gsub(/^\/+|\/+$/, "")
|
24
24
|
|
25
|
+
compress = OpenStruct.new @data.compress
|
26
|
+
|
27
|
+
@data.js_compressor ||= compress.js
|
28
|
+
@data.css_compressor ||= compress.css
|
29
|
+
@data.cache ||= @data.cache_assets
|
30
|
+
|
25
31
|
# if baseurl not given - autoguess base on dirname
|
26
32
|
@data.baseurl ||= "/#{@data.dirname}/".squeeze '/'
|
27
33
|
end
|
@@ -33,12 +39,12 @@ module Jekyll
|
|
33
39
|
|
34
40
|
|
35
41
|
def js_compressor
|
36
|
-
compressor @data.
|
42
|
+
compressor @data.js_compressor
|
37
43
|
end
|
38
44
|
|
39
45
|
|
40
46
|
def css_compressor
|
41
|
-
compressor @data.
|
47
|
+
compressor @data.css_compressor
|
42
48
|
end
|
43
49
|
|
44
50
|
|
@@ -48,7 +54,12 @@ module Jekyll
|
|
48
54
|
|
49
55
|
|
50
56
|
def cache_assets?
|
51
|
-
!!@data.
|
57
|
+
!!@data.cache
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
def cache_path
|
62
|
+
@data.cache.is_a?(String) ? @data.cache : ".jekyll-assets-cache"
|
52
63
|
end
|
53
64
|
|
54
65
|
|
@@ -26,24 +26,26 @@ module Jekyll
|
|
26
26
|
@site = site
|
27
27
|
|
28
28
|
# append asset paths
|
29
|
-
|
29
|
+
site.assets_config.sources.each { |p| append_path p }
|
30
30
|
|
31
|
-
self.js_compressor =
|
32
|
-
self.css_compressor =
|
31
|
+
self.js_compressor = site.assets_config.js_compressor
|
32
|
+
self.css_compressor = site.assets_config.css_compressor
|
33
33
|
|
34
|
-
if
|
34
|
+
if site.assets_config.cache_assets?
|
35
35
|
self.cache = Sprockets::Cache::FileStore.new cache_path
|
36
36
|
end
|
37
37
|
|
38
|
-
#
|
39
|
-
|
38
|
+
# reset cache if config changed
|
39
|
+
self.version = site.assets_config.marshal_dump
|
40
40
|
|
41
|
+
# bind jekyll and Sprockets context together
|
42
|
+
context_class.instance_variable_set :@site, site
|
41
43
|
context_class.send :include, Patches::ContextPatch
|
42
44
|
end
|
43
45
|
|
44
46
|
|
45
47
|
def cache_path
|
46
|
-
Pathname.new(@site.source).join
|
48
|
+
Pathname.new(@site.source).join @site.assets_config.cache_path
|
47
49
|
end
|
48
50
|
|
49
51
|
|
@@ -27,12 +27,12 @@ module Jekyll::AssetsPlugin
|
|
27
27
|
end
|
28
28
|
|
29
29
|
context "js compressor" do
|
30
|
-
subject { config.
|
30
|
+
subject { config.js_compressor }
|
31
31
|
it { should be_nil }
|
32
32
|
end
|
33
33
|
|
34
34
|
context "css compressor" do
|
35
|
-
subject { config.
|
35
|
+
subject { config.css_compressor }
|
36
36
|
it { should be_nil }
|
37
37
|
end
|
38
38
|
|
@@ -46,18 +46,32 @@ module Jekyll::AssetsPlugin
|
|
46
46
|
it { should be_false }
|
47
47
|
end
|
48
48
|
|
49
|
+
context "cache_path" do
|
50
|
+
subject { config.cache_path }
|
51
|
+
it { should == ".jekyll-assets-cache" }
|
52
|
+
end
|
53
|
+
|
49
54
|
end
|
50
55
|
|
51
56
|
it "should override specified options and leave defaults for missing" do
|
52
57
|
config = Configuration.new({
|
53
|
-
:sources
|
54
|
-
:
|
58
|
+
:sources => %w{abc},
|
59
|
+
:css_compressor => "sass"
|
55
60
|
})
|
56
61
|
|
57
|
-
config.dirname.should
|
58
|
-
config.sources.should
|
59
|
-
config.
|
60
|
-
config.
|
62
|
+
config.dirname.should == "assets"
|
63
|
+
config.sources.should =~ %w{abc}
|
64
|
+
config.js_compressor.should be_nil
|
65
|
+
config.css_compressor.should == :sass
|
66
|
+
end
|
67
|
+
|
68
|
+
context "#cache" do
|
69
|
+
context "when specified as String" do
|
70
|
+
it "should override default cache path" do
|
71
|
+
config = Configuration.new :cache => "/tmp/jekyll-assets"
|
72
|
+
config.cache_path.should == "/tmp/jekyll-assets"
|
73
|
+
end
|
74
|
+
end
|
61
75
|
end
|
62
76
|
|
63
77
|
context "#baseurl" do
|
@@ -77,7 +91,7 @@ module Jekyll::AssetsPlugin
|
|
77
91
|
|
78
92
|
context "#js_compressor" do
|
79
93
|
context "when js compressor is given as `uglify`" do
|
80
|
-
let(:config){ Configuration.new(:
|
94
|
+
let(:config){ Configuration.new(:js_compressor => "uglify") }
|
81
95
|
subject { config.js_compressor }
|
82
96
|
it { should be :uglify }
|
83
97
|
end
|
@@ -91,7 +105,7 @@ module Jekyll::AssetsPlugin
|
|
91
105
|
|
92
106
|
context "#css_compressor" do
|
93
107
|
context "when css compressor is given as `sass`" do
|
94
|
-
let(:config){ Configuration.new(:
|
108
|
+
let(:config){ Configuration.new(:css_compressor => "sass") }
|
95
109
|
subject { config.css_compressor }
|
96
110
|
it { should be :sass }
|
97
111
|
end
|
@@ -110,5 +124,27 @@ module Jekyll::AssetsPlugin
|
|
110
124
|
it { should == [] }
|
111
125
|
end
|
112
126
|
end
|
127
|
+
|
128
|
+
|
129
|
+
context "Deprecated options" do
|
130
|
+
context "compress" do
|
131
|
+
let(:options){ { :compress => {:js => "uglify", :css => "sass"} } }
|
132
|
+
|
133
|
+
it "should set corresponding *_compressor value" do
|
134
|
+
config = Configuration.new options
|
135
|
+
config.js_compressor.should == :uglify
|
136
|
+
config.css_compressor.should == :sass
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context "cache_assets" do
|
141
|
+
let(:options){ { :cache_assets => true } }
|
142
|
+
|
143
|
+
it "should set `cache` value" do
|
144
|
+
config = Configuration.new options
|
145
|
+
config.cache_assets?.should be_true
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
113
149
|
end
|
114
150
|
end
|
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.5.
|
4
|
+
version: 0.5.4
|
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: 2013-
|
12
|
+
date: 2013-07-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jekyll
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '2.
|
37
|
+
version: '2.10'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,25 +42,25 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '2.
|
45
|
+
version: '2.10'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: bundler
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
53
|
+
version: '1.3'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1.3'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: rake
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: rspec
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
@@ -92,7 +92,7 @@ dependencies:
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0'
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: guard-rspec
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
@@ -181,7 +181,6 @@ files:
|
|
181
181
|
- lib/jekyll-assets/neat.rb
|
182
182
|
- lib/jekyll/assets_plugin.rb
|
183
183
|
- lib/jekyll/assets_plugin/asset_file.rb
|
184
|
-
- lib/jekyll/assets_plugin/commands.rb
|
185
184
|
- lib/jekyll/assets_plugin/configuration.rb
|
186
185
|
- lib/jekyll/assets_plugin/environment.rb
|
187
186
|
- lib/jekyll/assets_plugin/filters.rb
|
@@ -243,7 +242,7 @@ rubyforge_project:
|
|
243
242
|
rubygems_version: 1.8.23
|
244
243
|
signing_key:
|
245
244
|
specification_version: 3
|
246
|
-
summary: jekyll-assets-0.5.
|
245
|
+
summary: jekyll-assets-0.5.4
|
247
246
|
test_files:
|
248
247
|
- spec/fixtures/.gitignore
|
249
248
|
- spec/fixtures/_assets/app.css.erb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# 3rd-party
|
2
|
-
require "commander"
|
3
|
-
|
4
|
-
|
5
|
-
::Commander::Runner.instance.command "assets:cleanup" do |c|
|
6
|
-
c.syntax = "jekyll assets:cleanup"
|
7
|
-
c.description = "Clenup jekyll-assets cache"
|
8
|
-
|
9
|
-
c.option "--config CONFIG_FILE[,CONFIG_FILE2,...]", Array,
|
10
|
-
"Custom Jekyll configuration file"
|
11
|
-
|
12
|
-
c.action do |_, options|
|
13
|
-
assets = Jekyll::Site.new(Jekyll.configuration(options)).assets
|
14
|
-
assets.cache_path.rmtree if assets.cache_path.exist?
|
15
|
-
end
|
16
|
-
end
|