middleman-sprockets 4.0.0.beta.1 → 4.0.0.rc.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -3
- data/Gemfile +15 -16
- data/README.md +0 -58
- data/Rakefile +1 -16
- data/features/asset_hash.feature +5 -6
- data/features/bower.feature +6 -6
- data/features/sprockets.feature +13 -65
- data/features/sprockets_gems.feature +7 -26
- data/features/step_definitions/server_steps.rb +0 -4
- data/fixtures/asset-paths-app/config.rb +1 -4
- data/fixtures/bower-app/config.rb +0 -2
- data/fixtures/bower-app/source/javascripts/application.js +1 -1
- data/fixtures/bower-app/source/javascripts/import.js +1 -0
- data/fixtures/bower-individual-outputdir-app/config.rb +0 -4
- data/fixtures/bower-individual-outputdir-app/source/javascripts/application.js +3 -0
- data/fixtures/bower-multiple-assets-app/config.rb +1 -7
- data/fixtures/{sprockets-app-debug-assets/source/stylesheets/dependency1.css → bower-multiple-assets-app/source/index.html} +0 -0
- data/fixtures/bower-multiple-assets-app/source/javascripts/core.js +2 -0
- data/fixtures/jquery-mobile-app/source/javascripts/app.js +1 -0
- data/fixtures/sprockets-app/config.rb +0 -5
- data/fixtures/sprockets-app/source/library/css/bootstrap_include.css.scss +1 -1
- data/fixtures/sprockets-app/source/library/css/plain.css +2 -0
- data/fixtures/sprockets-app/source/library/css/sprockets_base2.css.scss +1 -1
- data/fixtures/sprockets-app/source/library/js/jquery_include.js +1 -1
- data/fixtures/sprockets-app/source/library/js/plain.js +3 -0
- data/fixtures/sprockets-app2/source/stylesheets/sprockets_base2.css.scss +1 -1
- data/fixtures/sprockets-imported-asset-path-conflicts-app/config.rb +1 -1
- data/fixtures/sprockets-imported-assets-match-multiple-paths-app/config.rb +1 -1
- data/fixtures/sprockets-multiple-extensions-app/config.rb +0 -3
- data/fixtures/sprockets-multiple-extensions-app/source/stylesheets/app.css.scss +3 -0
- data/fixtures/sprockets-svg-font-app/config.rb +0 -4
- data/fixtures/sprockets-svg-font-app/source/stylesheets/app.css.scss +4 -0
- data/lib/middleman-sprockets.rb +1 -6
- data/lib/middleman-sprockets/extension.rb +197 -113
- data/lib/middleman-sprockets/version.rb +1 -1
- data/middleman-sprockets.gemspec +2 -4
- metadata +29 -74
- data/Gemfile-Sprockets3 +0 -36
- data/Gemfile-v3 +0 -36
- data/features/asset_hash-3.0.feature +0 -105
- data/fixtures/sprockets-app-debug-assets/config.rb +0 -1
- data/fixtures/sprockets-app-debug-assets/source/index.html.erb +0 -8
- data/fixtures/sprockets-app-debug-assets/source/javascripts/dependency1.js +0 -3
- data/fixtures/sprockets-app-debug-assets/source/javascripts/dependency2.js +0 -1
- data/fixtures/sprockets-app-debug-assets/source/javascripts/main.js +0 -4
- data/fixtures/sprockets-app-debug-assets/source/stylesheets/app.css.scss +0 -4
- data/fixtures/sprockets-app-debug-assets/source/stylesheets/dependency2.css.scss +0 -0
- data/lib/middleman-sprockets/asset.rb +0 -142
- data/lib/middleman-sprockets/asset_tag_helpers.rb +0 -54
- data/lib/middleman-sprockets/config_only_environment.rb +0 -50
- data/lib/middleman-sprockets/environment.rb +0 -293
- data/lib/middleman-sprockets/imported_asset.rb +0 -30
- data/lib/middleman-sprockets/sass_function_hack.rb +0 -9
- data/lib/middleman-sprockets/sass_utils.rb +0 -14
- data/spec/asset_spec.rb +0 -118
- data/spec/imported_asset_spec.rb +0 -42
@@ -1,30 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Middleman
|
3
|
-
module Sprockets
|
4
|
-
# ImportedAsset
|
5
|
-
class ImportedAsset
|
6
|
-
attr_reader :logical_path, :output_path
|
7
|
-
|
8
|
-
# Create instance
|
9
|
-
#
|
10
|
-
# @param [Pathname] logical_path
|
11
|
-
# The logical path to the asset given in config.rb
|
12
|
-
#
|
13
|
-
# @param [proc] output_dir
|
14
|
-
# An individual output directory for that particular asset
|
15
|
-
def initialize logical_path, output_path = nil
|
16
|
-
@logical_path = Pathname.new logical_path
|
17
|
-
|
18
|
-
if output_path.respond_to? :call
|
19
|
-
if output_path.arity.abs == 1
|
20
|
-
output_path = output_path.call(@logical_path)
|
21
|
-
else
|
22
|
-
output_path = output_path.call
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
@output_path = Pathname.new output_path if output_path
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
if defined?(Sass)
|
2
|
-
module Sass::Script::Functions
|
3
|
-
# Override generated_image_url to use Sprockets
|
4
|
-
# a la https://github.com/Compass/compass-rails/blob/master/lib/compass-rails/patches/4_0.rb
|
5
|
-
def generated_image_url(path, only_path = nil)
|
6
|
-
asset_url(path, Sass::Script::String.new("image"))
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
data/spec/asset_spec.rb
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
RSpec.describe Middleman::Sprockets::Asset do
|
3
|
-
|
4
|
-
def build_subject_asset logical_path, source_dir
|
5
|
-
source_path = File.join source_dir, logical_path
|
6
|
-
@sprockets_double = instance_double("Middleman::Sprockets::Environment")
|
7
|
-
@app_double = double("Middleman::Application",
|
8
|
-
sprockets: @sprockets_double,
|
9
|
-
config: ::Middleman::Util.recursively_enhance(images_dir: 'images'))
|
10
|
-
@asset_double = instance_double("Sprockets::BundledAsset",
|
11
|
-
pathname: Pathname.new(source_path),
|
12
|
-
logical_path: logical_path)
|
13
|
-
allow( @sprockets_double ).to receive(:resolve).with(source_path)
|
14
|
-
.and_return("anything")
|
15
|
-
allow( @sprockets_double ).to receive(:[]).with("anything")
|
16
|
-
.and_return(@asset_double)
|
17
|
-
|
18
|
-
return described_class.new @app_double, source_path
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#initialize" do
|
22
|
-
it "raises Sprockets::FileNotFound if sprockets can't find the asset" do
|
23
|
-
source_path = "/path/to/nowhere.jpg"
|
24
|
-
|
25
|
-
@sprockets_double = instance_double("Middleman::Sprockets::Environment")
|
26
|
-
@app_double = double("Middleman::Application",
|
27
|
-
sprockets: @sprockets_double)
|
28
|
-
allow( @sprockets_double ).to receive(:resolve).with(source_path)
|
29
|
-
.and_return("anything")
|
30
|
-
|
31
|
-
# mimic sprockets unable to find an asset
|
32
|
-
allow( @sprockets_double ).to receive(:[]).with("anything")
|
33
|
-
.and_return(nil)
|
34
|
-
|
35
|
-
expect {
|
36
|
-
described_class.new @app_double, source_path
|
37
|
-
}.to raise_error Sprockets::FileNotFound
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe "#type" do
|
42
|
-
|
43
|
-
it 'finds type by extension' do
|
44
|
-
image = build_subject_asset 'path/to/image.png', 'source'
|
45
|
-
expect( image.type ).to eq :image
|
46
|
-
|
47
|
-
stylesheet = build_subject_asset 'path/to/stylesheet.css', 'source'
|
48
|
-
expect( stylesheet.type ).to eq :stylesheet
|
49
|
-
|
50
|
-
script = build_subject_asset 'path/to/script.js', 'source'
|
51
|
-
expect( script.type ).to eq :script
|
52
|
-
|
53
|
-
font = build_subject_asset 'path/to/font.ttf', 'source'
|
54
|
-
expect( font.type ).to eq :font
|
55
|
-
end
|
56
|
-
|
57
|
-
it 'finds type by path' do
|
58
|
-
image = build_subject_asset 'path/to/images/image.foo', 'source'
|
59
|
-
expect( image.type ).to eq :image
|
60
|
-
image = build_subject_asset 'path/to/image.foo', 'images'
|
61
|
-
expect( image.type ).to eq :image
|
62
|
-
|
63
|
-
stylesheet = build_subject_asset 'path/to/css/stylesheet.foo', 'source'
|
64
|
-
expect( stylesheet.type ).to eq :stylesheet
|
65
|
-
image = build_subject_asset 'path/to/stylesheet.foo', 'css'
|
66
|
-
expect( image.type ).to eq :stylesheet
|
67
|
-
|
68
|
-
script = build_subject_asset 'path/to/javascripts/script.foo', 'source'
|
69
|
-
expect( script.type ).to eq :script
|
70
|
-
image = build_subject_asset 'path/to/script.foo', 'javascripts'
|
71
|
-
expect( image.type ).to eq :script
|
72
|
-
|
73
|
-
font = build_subject_asset 'path/to/fonts/font.foo', 'source'
|
74
|
-
expect( font.type ).to eq :font
|
75
|
-
font = build_subject_asset 'path/to/font.foo', 'fonts'
|
76
|
-
expect( font.type ).to eq :font
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'finds type by double extension' do
|
80
|
-
image = build_subject_asset 'path/to/image.svg.erb', 'source'
|
81
|
-
expect( image.type ).to eq :image
|
82
|
-
|
83
|
-
stylesheet = build_subject_asset 'path/to/stylesheet.css.scss', 'source'
|
84
|
-
expect( stylesheet.type ).to eq :stylesheet
|
85
|
-
|
86
|
-
script = build_subject_asset 'path/to/script.js.coffee', 'source'
|
87
|
-
expect( script.type ).to eq :script
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'finds type in an unlimited number of extensions' do
|
91
|
-
asset = script = build_subject_asset 'path/to/image.asdf.png.asdf.xz', 'source'
|
92
|
-
expect( asset.type ).to eq :image
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
describe "#source_path" do
|
97
|
-
it "returns pathname from sprockets asset" do
|
98
|
-
asset = build_subject_asset 'path/to/asset.css', 'source'
|
99
|
-
expect( @asset_double ).to receive(:pathname)
|
100
|
-
.and_return("sprockets/pathname")
|
101
|
-
|
102
|
-
expect( asset.source_path ).to eq "sprockets/pathname"
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "#destination_path" do
|
107
|
-
it "builds path based on asset type" do
|
108
|
-
asset = build_subject_asset 'path/to/image.png', 'source'
|
109
|
-
expect( asset.destination_path.to_s ).to eq 'images/path/to/image.png'
|
110
|
-
end
|
111
|
-
|
112
|
-
it "strips asset type directory from logical path and uses apps asset directory" do
|
113
|
-
asset = build_subject_asset 'img/path/to/image.png', 'source'
|
114
|
-
expect( asset.destination_path.to_s ).to eq 'images/path/to/image.png'
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
end
|
data/spec/imported_asset_spec.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
RSpec.describe Middleman::Sprockets::ImportedAsset do
|
3
|
-
|
4
|
-
describe "#initialize" do
|
5
|
-
it "sets #logical_path to a pathname based on given path" do
|
6
|
-
subject = described_class.new "logical"
|
7
|
-
expect( subject.logical_path ).to eq Pathname.new("logical")
|
8
|
-
end
|
9
|
-
|
10
|
-
it "sets #output_path to nil if no block given" do
|
11
|
-
subject = described_class.new "logical"
|
12
|
-
expect( subject.output_path ).to be_nil
|
13
|
-
end
|
14
|
-
|
15
|
-
it "sets #output_path based on return of passed block" do
|
16
|
-
subject = described_class.new "logical", -> { "hello" }
|
17
|
-
expect( subject.output_path ).to eq Pathname.new("hello")
|
18
|
-
end
|
19
|
-
|
20
|
-
it "passes #logical_path to the output_path block if it accepts an argument" do
|
21
|
-
output_double = proc { |arg| "hello" }
|
22
|
-
expect( output_double ).to receive(:call).with(Pathname.new("logical"))
|
23
|
-
|
24
|
-
described_class.new "logical", output_double
|
25
|
-
end
|
26
|
-
|
27
|
-
it "passes #logical_path to the output_path block if it accepts an argument and has a default", skip: '1.9' do
|
28
|
-
output_double = lambda { |arg=3| "hello" }
|
29
|
-
expect( output_double ).to receive(:call).with(Pathname.new("logical"))
|
30
|
-
|
31
|
-
described_class.new "logical", output_double
|
32
|
-
end
|
33
|
-
|
34
|
-
it "calls output_path block with no args it it accepts none" do
|
35
|
-
output_double = -> { "hello" }
|
36
|
-
expect( output_double ).to receive(:call).with no_args()
|
37
|
-
|
38
|
-
described_class.new "logical", output_double
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|