jekyll-assets 1.0.0 → 2.0.0.pre.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +10 -10
- data/LICENSE +16 -18
- data/README.md +94 -554
- data/Rakefile +2 -8
- data/lib/jekyll/assets.rb +18 -12
- data/lib/jekyll/assets/cached.rb +12 -0
- data/lib/jekyll/assets/configuration.rb +43 -87
- data/lib/jekyll/assets/context.rb +23 -0
- data/lib/jekyll/assets/env.rb +181 -0
- data/lib/jekyll/assets/extras/es6.rb +5 -0
- data/lib/jekyll/assets/extras/font-awesome.rb +1 -0
- data/lib/jekyll/assets/extras/helpers.rb +6 -0
- data/lib/jekyll/assets/extras/prefix.rb +5 -0
- data/lib/jekyll/assets/filters.rb +9 -11
- data/lib/jekyll/assets/helpers.rb +37 -0
- data/lib/jekyll/assets/hook.rb +45 -0
- data/lib/jekyll/assets/hooks/post_read.rb +3 -0
- data/lib/jekyll/assets/hooks/post_write.rb +3 -0
- data/lib/jekyll/assets/logger.rb +25 -0
- data/lib/jekyll/assets/patches/jekyll/cleaner.rb +11 -0
- data/lib/jekyll/assets/patches/jekyll/site.rb +5 -0
- data/lib/jekyll/assets/patches/sprockets/asset.rb +13 -0
- data/lib/jekyll/assets/tag.rb +136 -9
- data/lib/jekyll/assets/tag/parser.rb +129 -0
- data/lib/jekyll/assets/tag/proxied_asset.rb +84 -0
- data/lib/jekyll/assets/tag/proxies.rb +86 -0
- data/lib/jekyll/assets/tag/proxies/magick.rb +101 -0
- data/lib/jekyll/assets/version.rb +1 -1
- metadata +59 -149
- data/.gitignore +0 -27
- data/.rspec +0 -1
- data/.rubocop.yml +0 -43
- data/.rubocop_todo.yml +0 -10
- data/.travis.yml +0 -16
- data/.yardopts +0 -1
- data/Appraisals +0 -7
- data/Guardfile +0 -7
- data/HISTORY.md +0 -297
- data/gemfiles/jekyll_2.gemfile +0 -17
- data/gemfiles/jekyll_3.gemfile +0 -17
- data/jekyll-assets.gemspec +0 -34
- data/lib/jekyll-assets.rb +0 -2
- data/lib/jekyll/assets/asset_path.rb +0 -39
- data/lib/jekyll/assets/environment.rb +0 -62
- data/lib/jekyll/assets/patches.rb +0 -1
- data/lib/jekyll/assets/patches/asset_patch.rb +0 -102
- data/lib/jekyll/assets/patches/bundled_asset_patch.rb +0 -16
- data/lib/jekyll/assets/patches/context_patch.rb +0 -31
- data/lib/jekyll/assets/patches/index_patch.rb +0 -25
- data/lib/jekyll/assets/patches/processed_asset_patch.rb +0 -59
- data/lib/jekyll/assets/patches/site_patch.rb +0 -62
- data/lib/jekyll/assets/renderer.rb +0 -122
- data/spec/fixtures/.gitignore +0 -2
- data/spec/fixtures/.jekyll-metadata +0 -0
- data/spec/fixtures/_assets/alert.js +0 -1
- data/spec/fixtures/_assets/app.css.erb +0 -5
- data/spec/fixtures/_assets/app.js +0 -1
- data/spec/fixtures/_assets/app.min.css +0 -0
- data/spec/fixtures/_assets/app.min.js +0 -0
- data/spec/fixtures/_assets/fonts/vapor.eot +0 -0
- data/spec/fixtures/_assets/fonts/vapor.svg +0 -0
- data/spec/fixtures/_assets/fonts/vapor.ttf +0 -0
- data/spec/fixtures/_assets/fonts/vapor.woff +0 -0
- data/spec/fixtures/_assets/lib/relative.css.scss +0 -12
- data/spec/fixtures/_assets/noise.png +0 -0
- data/spec/fixtures/_assets/noize.png +0 -0
- data/spec/fixtures/_assets/should_be_blank.css.erb +0 -1
- data/spec/fixtures/_assets/should_fail.css.erb +0 -1
- data/spec/fixtures/_assets/vapor.css.scss +0 -13
- data/spec/fixtures/_assets/vapor.js +0 -2
- data/spec/fixtures/_assets/vendor/with_bootstrap.css.sass +0 -1
- data/spec/fixtures/_assets/vendor/with_bourbon.css.sass +0 -4
- data/spec/fixtures/_assets/vendor/with_compass.css.sass +0 -4
- data/spec/fixtures/_assets/vendor/with_neat.css.sass +0 -5
- data/spec/fixtures/_assets/wowscript.js +0 -0
- data/spec/fixtures/_assets/wowstyle.css +0 -0
- data/spec/fixtures/_config.yml +0 -2
- data/spec/fixtures/_layouts/default.html +0 -9
- data/spec/fixtures/_posts/2012-10-19-hello-world.md +0 -6
- data/spec/fixtures/_posts/2015-02-02-duplicates.md +0 -8
- data/spec/fixtures/index.html +0 -0
- data/spec/lib/jekyll/assets/configuration_spec.rb +0 -172
- data/spec/lib/jekyll/assets/environment_spec.rb +0 -18
- data/spec/lib/jekyll/assets/filters_spec.rb +0 -112
- data/spec/lib/jekyll/assets/patches/site_patch_spec.rb +0 -176
- data/spec/lib/jekyll/assets/renderer_spec.rb +0 -286
- data/spec/lib/jekyll/assets/tag_spec.rb +0 -139
- data/spec/spec_helper.rb +0 -58
- data/spec/support/fixtures_helpers.rb +0 -7
@@ -1,139 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Jekyll::Assets::Tag do
|
4
|
-
let(:context) { { :registers => { :site => @site } } }
|
5
|
-
|
6
|
-
def render(content)
|
7
|
-
::Liquid::Template.parse(content).render({}, context)
|
8
|
-
end
|
9
|
-
|
10
|
-
def not_found_error(file)
|
11
|
-
"Liquid error: Couldn't find file '#{file}'"
|
12
|
-
end
|
13
|
-
|
14
|
-
def render_tag(template, path, attrs = "")
|
15
|
-
template = Jekyll::Assets::Renderer.const_get template
|
16
|
-
attrs = " #{attrs}" unless attrs.empty?
|
17
|
-
|
18
|
-
format template, :path => path, :attrs => attrs
|
19
|
-
end
|
20
|
-
|
21
|
-
context "{% image <file> %}" do
|
22
|
-
def tag_re(name, attrs = "")
|
23
|
-
file = "/assets/#{name}-[a-f0-9]{32}\.png"
|
24
|
-
Regexp.new "^#{render_tag :IMAGE, file, attrs}$"
|
25
|
-
end
|
26
|
-
|
27
|
-
context "when <file> exists" do
|
28
|
-
subject { render("{% image noise.png %}") }
|
29
|
-
it { is_expected.to match tag_re("noise") }
|
30
|
-
end
|
31
|
-
|
32
|
-
context "when <file> has an attribute" do
|
33
|
-
subject { render("{% image noise.png alt=\"Foobar\" %}") }
|
34
|
-
it { is_expected.to match tag_re("noise", "alt=\"Foobar\"") }
|
35
|
-
end
|
36
|
-
|
37
|
-
context "when <file> does not exists" do
|
38
|
-
subject { render("{% image not-found.png %}") }
|
39
|
-
it { is_expected.to match not_found_error "not-found.png" }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "{% stylesheet <file> %}" do
|
44
|
-
def tag_re(name, attrs = "")
|
45
|
-
file = "/assets/#{name}-[a-f0-9]{32}\.css"
|
46
|
-
Regexp.new "^#{render_tag :STYLESHEET, file, attrs}$"
|
47
|
-
end
|
48
|
-
|
49
|
-
context "when <file> exists" do
|
50
|
-
subject { render("{% stylesheet app.css %}") }
|
51
|
-
it { is_expected.to match tag_re("app") }
|
52
|
-
end
|
53
|
-
|
54
|
-
context "when <file> has an attribute" do
|
55
|
-
subject { render("{% stylesheet app.css type=\"text/css\" %}") }
|
56
|
-
it { is_expected.to match tag_re("app", "type=\"text/css\"") }
|
57
|
-
end
|
58
|
-
|
59
|
-
context "when <file> name has multiple dots" do
|
60
|
-
subject { render("{% stylesheet app.min %}") }
|
61
|
-
it { is_expected.to match tag_re("app.min") }
|
62
|
-
end
|
63
|
-
|
64
|
-
context "when <file> extension is omited" do
|
65
|
-
subject { render("{% stylesheet app %}") }
|
66
|
-
it { is_expected.to match tag_re("app") }
|
67
|
-
end
|
68
|
-
|
69
|
-
context "when <file> does not exists" do
|
70
|
-
subject { render("{% stylesheet not-found.css %}") }
|
71
|
-
it { is_expected.to match not_found_error "not-found.css" }
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context "{% javascript <file> %}" do
|
76
|
-
def tag_re(name, attrs = "")
|
77
|
-
file = "/assets/#{name}-[a-f0-9]{32}\.js"
|
78
|
-
Regexp.new "^#{render_tag :JAVASCRIPT, file, attrs}$"
|
79
|
-
end
|
80
|
-
|
81
|
-
context "when <file> exists" do
|
82
|
-
subject { render("{% javascript app.js %}") }
|
83
|
-
it { is_expected.to match tag_re("app") }
|
84
|
-
end
|
85
|
-
|
86
|
-
context "when <file> has an attribute" do
|
87
|
-
subject { render("{% javascript app.js type=\"text/javascript\" %}") }
|
88
|
-
it { is_expected.to match tag_re("app", "type=\"text/javascript\"") }
|
89
|
-
end
|
90
|
-
|
91
|
-
context "when <file> name has multiple dots" do
|
92
|
-
subject { render("{% javascript app.min %}") }
|
93
|
-
it { is_expected.to match tag_re("app.min") }
|
94
|
-
end
|
95
|
-
|
96
|
-
context "when <file> extension omited" do
|
97
|
-
subject { render("{% javascript app %}") }
|
98
|
-
it { is_expected.to match tag_re("app") }
|
99
|
-
end
|
100
|
-
|
101
|
-
context "when <file> does not exists" do
|
102
|
-
subject { render("{% javascript not-found.js %}") }
|
103
|
-
it { is_expected.to match not_found_error "not-found.js" }
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
context "{% asset_path <file.ext> %}" do
|
108
|
-
context "when <file> exists" do
|
109
|
-
subject { render("{% asset_path app.css %}") }
|
110
|
-
it { is_expected.to match(%r{^/assets/app-[a-f0-9]{32}\.css$}) }
|
111
|
-
end
|
112
|
-
|
113
|
-
context "when <file> does not exists" do
|
114
|
-
subject { render("{% asset_path not-found.js %}") }
|
115
|
-
it { is_expected.to match not_found_error "not-found.js" }
|
116
|
-
end
|
117
|
-
|
118
|
-
context "with baseurl given as /foobar/" do
|
119
|
-
before do
|
120
|
-
context[:registers][:site].assets_config.baseurl = "/foobar/"
|
121
|
-
end
|
122
|
-
|
123
|
-
subject { render("{% asset_path app.css %}") }
|
124
|
-
it { is_expected.to match(%r{^/foobar/app-[a-f0-9]{32}\.css$}) }
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
context "{% asset <file.ext> %}" do
|
129
|
-
context "when <file> exists" do
|
130
|
-
subject { render("{% asset app.css %}") }
|
131
|
-
it { is_expected.to match(/body \{ background-image: url\(.+?\) \}/) }
|
132
|
-
end
|
133
|
-
|
134
|
-
context "when <file> does not exists" do
|
135
|
-
subject { render("{% asset_path not-found.js %}") }
|
136
|
-
it { is_expected.to match not_found_error "not-found.js" }
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
|
3
|
-
require "simplecov"
|
4
|
-
require "coveralls"
|
5
|
-
|
6
|
-
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
7
|
-
SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter
|
8
|
-
]
|
9
|
-
|
10
|
-
SimpleCov.start
|
11
|
-
|
12
|
-
require_relative "../lib/jekyll/assets"
|
13
|
-
|
14
|
-
require "jekyll"
|
15
|
-
require "liquid"
|
16
|
-
require "sprockets"
|
17
|
-
|
18
|
-
# Requires supporting ruby files with custom matchers and macros, etc,
|
19
|
-
# in spec/support/ and its subdirectories.
|
20
|
-
Dir[File.expand_path("../support", __FILE__) + "/**/*.rb"]
|
21
|
-
.each { |f| require f }
|
22
|
-
|
23
|
-
# rubocop:disable Metrics/AbcSize
|
24
|
-
def start_site
|
25
|
-
if Gem::Version.new("2") <= Gem::Version.new(Jekyll::VERSION)
|
26
|
-
Jekyll.logger.log_level = :warn
|
27
|
-
else
|
28
|
-
Jekyll.logger.log_level = Jekyll::Stevenson::WARN
|
29
|
-
end
|
30
|
-
|
31
|
-
@dest = fixtures_path.join("_site")
|
32
|
-
@site = Jekyll::Site.new(Jekyll.configuration({
|
33
|
-
"source" => fixtures_path.to_s,
|
34
|
-
"destination" => @dest.to_s
|
35
|
-
}))
|
36
|
-
|
37
|
-
@dest.rmtree if @dest.exist?
|
38
|
-
@site.process
|
39
|
-
end
|
40
|
-
# rubocop:enable Metrics/AbcSize
|
41
|
-
|
42
|
-
RSpec.configure do |config|
|
43
|
-
config.include FixturesHelpers
|
44
|
-
config.extend FixturesHelpers
|
45
|
-
config.filter_run :focus => true
|
46
|
-
config.run_all_when_everything_filtered = true
|
47
|
-
|
48
|
-
config.disable_monkey_patching!
|
49
|
-
|
50
|
-
config.before(:all) do
|
51
|
-
Jekyll::Assets::HOOKS.clear
|
52
|
-
start_site
|
53
|
-
end
|
54
|
-
|
55
|
-
config.after(:all) do
|
56
|
-
@dest.rmtree if @dest.exist?
|
57
|
-
end
|
58
|
-
end
|