middleman-sprockets 3.0.1 → 3.0.2

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.
@@ -7,8 +7,8 @@ Feature: Assets get a file hash appended to their and references to them are upd
7
7
  | images/100px-1242c368.png |
8
8
  | images/100px-5fd6fb90.jpg |
9
9
  | images/100px-5fd6fb90.gif |
10
- | javascripts/application-df677242.js |
11
- | stylesheets/site-ed8c2d12.css |
10
+ | javascripts/application-1d8d5276.js |
11
+ | stylesheets/site-50eaa978.css |
12
12
  | index.html |
13
13
  | subdir/index.html |
14
14
  | other/index.html |
@@ -19,50 +19,50 @@ Feature: Assets get a file hash appended to their and references to them are upd
19
19
  | javascripts/application.js |
20
20
  | stylesheets/site.css |
21
21
 
22
- And the file "javascripts/application-df677242.js" should contain "img.src = '/images/100px-5fd6fb90.jpg'"
23
- And the file "stylesheets/site-ed8c2d12.css" should contain "background-image: url('../images/100px-5fd6fb90.jpg')"
24
- And the file "index.html" should contain 'href="stylesheets/site-ed8c2d12.css"'
25
- And the file "index.html" should contain 'src="javascripts/application-df677242.js"'
22
+ And the file "javascripts/application-1d8d5276.js" should contain "img.src = '/images/100px-5fd6fb90.jpg'"
23
+ And the file "stylesheets/site-50eaa978.css" should contain "background-image: url('../images/100px-5fd6fb90.jpg')"
24
+ And the file "index.html" should contain 'href="stylesheets/site-50eaa978.css"'
25
+ And the file "index.html" should contain 'src="javascripts/application-1d8d5276.js"'
26
26
  And the file "index.html" should contain 'src="images/100px-5fd6fb90.jpg"'
27
- And the file "subdir/index.html" should contain 'href="../stylesheets/site-ed8c2d12.css"'
28
- And the file "subdir/index.html" should contain 'src="../javascripts/application-df677242.js"'
27
+ And the file "subdir/index.html" should contain 'href="../stylesheets/site-50eaa978.css"'
28
+ And the file "subdir/index.html" should contain 'src="../javascripts/application-1d8d5276.js"'
29
29
  And the file "subdir/index.html" should contain 'src="../images/100px-5fd6fb90.jpg"'
30
- And the file "other/index.html" should contain 'href="../stylesheets/site-ed8c2d12.css"'
31
- And the file "other/index.html" should contain 'src="../javascripts/application-df677242.js"'
30
+ And the file "other/index.html" should contain 'href="../stylesheets/site-50eaa978.css"'
31
+ And the file "other/index.html" should contain 'src="../javascripts/application-1d8d5276.js"'
32
32
  And the file "other/index.html" should contain 'src="../images/100px-5fd6fb90.jpg"'
33
33
 
34
34
  Scenario: Hashed assets work in preview server
35
35
  Given the Server is running at "asset-hash-app"
36
36
  When I go to "/"
37
- Then I should see 'href="stylesheets/site-ed8c2d12.css"'
38
- And I should see 'src="javascripts/application-df677242.js"'
37
+ Then I should see 'href="stylesheets/site-50eaa978.css"'
38
+ And I should see 'src="javascripts/application-1d8d5276.js"'
39
39
  And I should see 'src="images/100px-5fd6fb90.jpg"'
40
40
  When I go to "/subdir/"
41
- Then I should see 'href="../stylesheets/site-ed8c2d12.css"'
42
- And I should see 'src="../javascripts/application-df677242.js"'
41
+ Then I should see 'href="../stylesheets/site-50eaa978.css"'
42
+ And I should see 'src="../javascripts/application-1d8d5276.js"'
43
43
  And I should see 'src="../images/100px-5fd6fb90.jpg"'
44
44
  When I go to "/other/"
45
- Then I should see 'href="../stylesheets/site-ed8c2d12.css"'
46
- And I should see 'src="../javascripts/application-df677242.js"'
45
+ Then I should see 'href="../stylesheets/site-50eaa978.css"'
46
+ And I should see 'src="../javascripts/application-1d8d5276.js"'
47
47
  And I should see 'src="../images/100px-5fd6fb90.jpg"'
48
- When I go to "/javascripts/application-df677242.js"
48
+ When I go to "/javascripts/application-1d8d5276.js"
49
49
  Then I should see "img.src = '/images/100px-5fd6fb90.jpg'"
50
- When I go to "/stylesheets/site-ed8c2d12.css"
50
+ When I go to "/stylesheets/site-50eaa978.css"
51
51
  Then I should see "background-image: url('../images/100px-5fd6fb90.jpg')"
52
52
 
53
53
  Scenario: Enabling an asset host still produces hashed files and references
54
54
  Given the Server is running at "asset-hash-host-app"
55
55
  When I go to "/"
56
- Then I should see 'href="http://middlemanapp.com/stylesheets/site-e5a31a3e.css"'
56
+ Then I should see 'href="http://middlemanapp.com/stylesheets/site-171eb3c0.css"'
57
57
  And I should see 'src="http://middlemanapp.com/images/100px-5fd6fb90.jpg"'
58
58
  When I go to "/subdir/"
59
- Then I should see 'href="http://middlemanapp.com/stylesheets/site-e5a31a3e.css"'
59
+ Then I should see 'href="http://middlemanapp.com/stylesheets/site-171eb3c0.css"'
60
60
  And I should see 'src="http://middlemanapp.com/images/100px-5fd6fb90.jpg"'
61
61
  When I go to "/other/"
62
- Then I should see 'href="http://middlemanapp.com/stylesheets/site-e5a31a3e.css"'
62
+ Then I should see 'href="http://middlemanapp.com/stylesheets/site-171eb3c0.css"'
63
63
  And I should see 'src="http://middlemanapp.com/images/100px-5fd6fb90.jpg"'
64
64
  # Asset helpers don't appear to work from Compass right now
65
- # When I go to "/stylesheets/site-e5a31a3e.css"
65
+ # When I go to "/stylesheets/site-171eb3c0.css"
66
66
  # Then I should see "background-image: url('http://middlemanapp.com/images/100px-5fd6fb90.jpg')"
67
67
 
68
68
  Scenario: The asset hash should change when a SASS partial changes
@@ -73,14 +73,14 @@ Feature: Assets get a file hash appended to their and references to them are upd
73
73
  font-size: 14px
74
74
  """
75
75
  When I go to "/partials/"
76
- Then I should see 'href="../stylesheets/uses_partials-8b948098.css'
76
+ Then I should see 'href="../stylesheets/uses_partials-423a00f7.css'
77
77
  And the file "source/stylesheets/_partial.sass" has the contents
78
78
  """
79
79
  body
80
80
  font-size: 18px !important
81
81
  """
82
82
  When I go to "/partials/"
83
- Then I should see 'href="../stylesheets/uses_partials-1f9f0ed2.css'
83
+ Then I should see 'href="../stylesheets/uses_partials-e8c3d4eb.css'
84
84
 
85
85
  Scenario: The asset hash should change when a Javascript partial changes
86
86
  Given the Server is running at "asset-hash-app"
@@ -89,14 +89,14 @@ Feature: Assets get a file hash appended to their and references to them are upd
89
89
  function sprockets_sub_function() { }
90
90
  """
91
91
  When I go to "/partials/"
92
- Then I should see 'src="../javascripts/sprockets_base-0252a861.js'
93
- When I go to "/javascripts/sprockets_base-0252a861.js"
92
+ Then I should see 'src="../javascripts/sprockets_base-095c3f3f.js'
93
+ When I go to "/javascripts/sprockets_base-095c3f3f.js"
94
94
  Then I should see "sprockets_sub_function"
95
95
  And the file "source/javascripts/sprockets_sub.js" has the contents
96
96
  """
97
97
  function sprockets_sub2_function() { }
98
98
  """
99
99
  When I go to "/partials/"
100
- Then I should see 'src="../javascripts/sprockets_base-5121d891.js'
101
- When I go to "/javascripts/sprockets_base-5121d891.js"
100
+ Then I should see 'src="../javascripts/sprockets_base-095c3f3f.js'
101
+ When I go to "/javascripts/sprockets_base-095c3f3f.js"
102
102
  Then I should see "sprockets_sub2_function"
@@ -4,6 +4,11 @@ Feature: Sprockets
4
4
  Given the Server is running at "sprockets-app2"
5
5
  When I go to "/javascripts/sprockets_base.js"
6
6
  Then I should see "sprockets_sub_function"
7
+
8
+ Scenario: asset_path helper
9
+ Given the Server is running at "sprockets-app2"
10
+ When I go to "/javascripts/asset_path.js"
11
+ Then I should see "templates.js"
7
12
 
8
13
  Scenario: Sprockets JS require with custom :js_dir
9
14
  Given the Server is running at "sprockets-app"
@@ -20,6 +25,22 @@ Feature: Sprockets
20
25
  When I go to "/javascripts/multiple_engines.js"
21
26
  Then I should see "Hello One"
22
27
 
28
+ Scenario: Sprockets JS should only contain body when requested
29
+ Given the Server is running at "sprockets-app2"
30
+ When I go to "/javascripts/sprockets_base.js?body=1"
31
+ Then I should see "base"
32
+ And I should not see "sprockets_sub_function"
33
+
34
+ Scenario: Script tags should be provided individually while debugging assets
35
+ Given the Server is running at "sprockets-app-debug-assets"
36
+ When I go to "/index.html"
37
+ Then I should see
38
+ """
39
+ <script src="/javascripts/dependency2.js?body=1" type="text/javascript"></script>
40
+ <script src="/javascripts/dependency1.js?body=1" type="text/javascript"></script>
41
+ <script src="/javascripts/main.js?body=1" type="text/javascript"></script>
42
+ """
43
+
23
44
  Scenario: Multiple engine files should build correctly
24
45
  Given a successfully built app at "sprockets-app2"
25
46
  When I cd to "build"
@@ -12,4 +12,9 @@ Feature: Sprockets Gems
12
12
  Scenario: Sprockets can pull js from vendored assets
13
13
  Given the Server is running at "sprockets-app"
14
14
  When I go to "/library/js/vendored_include.js"
15
+ Then I should see "var vendored_js_included = true;"
16
+
17
+ Scenario: Sprockets can pull js from custom vendor dir
18
+ Given the Server is running at "asset-paths-app"
19
+ When I go to "/javascripts/vendored_include.js"
15
20
  Then I should see "var vendored_js_included = true;"
@@ -0,0 +1,3 @@
1
+ Then /^I should see$/ do |contents|
2
+ @browser.last_response.body.should include(contents)
3
+ end
@@ -0,0 +1 @@
1
+ set :js_assets_paths, ["#{root}/derp/javascripts/"]
@@ -0,0 +1 @@
1
+ var vendored_js_included = true;
@@ -0,0 +1 @@
1
+ //= require "vendored_js"
@@ -0,0 +1 @@
1
+ set :debug_assets, true
@@ -0,0 +1 @@
1
+ <%= javascript_include_tag "main" %>
@@ -0,0 +1,3 @@
1
+ //= require dependency2
2
+
3
+ function dependency1() {}
@@ -0,0 +1 @@
1
+ function dependency2() {}
@@ -0,0 +1,3 @@
1
+ //= require dependency1
2
+
3
+ function main() {}
@@ -0,0 +1,3 @@
1
+ //= require_self
2
+
3
+ templatesURL = "<%= asset_path(:js, :templates) %>";
@@ -11,7 +11,6 @@ module Middleman::Sprockets
11
11
  # Location of javascripts external to source directory.
12
12
  # @return [Array]
13
13
  # set :js_assets_paths, ["#{root}/assets/javascripts/", "/path/2/external/js/repository/"]
14
- app.set :js_assets_paths, []
15
14
 
16
15
  # Add class methods to context
17
16
  app.send :include, InstanceMethods
@@ -19,8 +18,12 @@ module Middleman::Sprockets
19
18
  require "middleman-sprockets/sass"
20
19
  app.register Middleman::Sprockets::Sass
21
20
 
21
+ app.after_configuration do
22
+ helpers JavascriptTagHelper
23
+ end
24
+
22
25
  # Once Middleman is setup
23
- app.ready do
26
+ app.after_configuration do
24
27
  ::Tilt.register ::Sprockets::EjsTemplate, 'ejs'
25
28
  ::Tilt.register ::Sprockets::EcoTemplate, 'eco'
26
29
 
@@ -93,9 +96,10 @@ module Middleman::Sprockets
93
96
  append_path app.css_dir
94
97
 
95
98
  # add custom assets paths to the scope
99
+
96
100
  app.js_assets_paths.each do |p|
97
101
  append_path p
98
- end
102
+ end if app.respond_to?(:js_assets_paths)
99
103
  end
100
104
 
101
105
  # Override Sprockets' default digest function to *not*
@@ -123,4 +127,32 @@ module Middleman::Sprockets
123
127
  # Clear cache on error
124
128
  alias :css_exception_response :javascript_exception_response
125
129
  end
130
+
131
+ module JavascriptTagHelper
132
+
133
+ # extend padrinos javascript_include_tag with debug functionality
134
+ # splits up script dependencies in individual files when
135
+ # configuration variable :debug_assets is set to true
136
+ def javascript_include_tag(*sources)
137
+ options = sources.extract_options!.symbolize_keys
138
+
139
+ if respond_to?(:debug_assets) && debug_assets
140
+
141
+ # loop through all sources and the dependencies and
142
+ # output each as script tag in the correct order
143
+ sources.map do |source|
144
+ dependencies_paths = sprockets[source].to_a.map do |dependency|
145
+ # if sprockets sees "?body=1" it only gives back the body
146
+ # of the script without the dependencies included
147
+ dependency.logical_path << "?body=1"
148
+ end
149
+
150
+ super(dependencies_paths)
151
+ end.join("")
152
+
153
+ else
154
+ super
155
+ end
156
+ end
157
+ end
126
158
  end
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Sprockets
3
- VERSION = "3.0.1"
3
+ VERSION = "3.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-sprockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
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: 2012-09-04 00:00:00.000000000 Z
12
+ date: 2012-09-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: middleman-more
@@ -77,6 +77,7 @@ files:
77
77
  - features/sass_partials.feature
78
78
  - features/sprockets.feature
79
79
  - features/sprockets_gems.feature
80
+ - features/step_definitions/server_steps.rb
80
81
  - features/support/env.rb
81
82
  - fixtures/asset-hash-app/config.rb
82
83
  - fixtures/asset-hash-app/source/images/100px.gif
@@ -102,6 +103,9 @@ files:
102
103
  - fixtures/asset-hash-host-app/source/other.html.erb
103
104
  - fixtures/asset-hash-host-app/source/stylesheets/site.css.scss
104
105
  - fixtures/asset-hash-host-app/source/subdir/index.html.erb
106
+ - fixtures/asset-paths-app/config.rb
107
+ - fixtures/asset-paths-app/derp/javascripts/vendored_js.js
108
+ - fixtures/asset-paths-app/source/javascripts/vendored_include.js
105
109
  - fixtures/preview-app/config.rb
106
110
  - fixtures/preview-app/source/content.html.erb
107
111
  - fixtures/preview-app/source/layout.erb
@@ -110,6 +114,11 @@ files:
110
114
  - fixtures/preview-app/source/stylesheets/main.css.sass
111
115
  - fixtures/preview-app/source/stylesheets/main2.css.sass
112
116
  - fixtures/preview-app/source/stylesheets/plain.css.sass
117
+ - fixtures/sprockets-app-debug-assets/config.rb
118
+ - fixtures/sprockets-app-debug-assets/source/index.html.erb
119
+ - fixtures/sprockets-app-debug-assets/source/javascripts/dependency1.js
120
+ - fixtures/sprockets-app-debug-assets/source/javascripts/dependency2.js
121
+ - fixtures/sprockets-app-debug-assets/source/javascripts/main.js
113
122
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/bootstrap_include.css.scssc
114
123
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/sprockets_base1.css.scssc
115
124
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/sprockets_base2.css.scssc
@@ -130,6 +139,7 @@ files:
130
139
  - fixtures/sprockets-app2/data/test2.json
131
140
  - fixtures/sprockets-app2/source/javascripts/_templates/test.jst.ejs
132
141
  - fixtures/sprockets-app2/source/javascripts/_templates/test2.jst.eco
142
+ - fixtures/sprockets-app2/source/javascripts/asset_path.js.erb
133
143
  - fixtures/sprockets-app2/source/javascripts/multiple_engines.js.coffee.erb
134
144
  - fixtures/sprockets-app2/source/javascripts/sprockets_base.js
135
145
  - fixtures/sprockets-app2/source/javascripts/sprockets_sub.js
@@ -157,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
167
  version: '0'
158
168
  segments:
159
169
  - 0
160
- hash: -836714385759751023
170
+ hash: 905335292850793182
161
171
  required_rubygems_version: !ruby/object:Gem::Requirement
162
172
  none: false
163
173
  requirements:
@@ -166,10 +176,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
176
  version: '0'
167
177
  segments:
168
178
  - 0
169
- hash: -836714385759751023
179
+ hash: 905335292850793182
170
180
  requirements: []
171
181
  rubyforge_project: middleman-sprockets
172
- rubygems_version: 1.8.23
182
+ rubygems_version: 1.8.24
173
183
  signing_key:
174
184
  specification_version: 3
175
185
  summary: Sprockets support for Middleman
@@ -179,6 +189,7 @@ test_files:
179
189
  - features/sass_partials.feature
180
190
  - features/sprockets.feature
181
191
  - features/sprockets_gems.feature
192
+ - features/step_definitions/server_steps.rb
182
193
  - features/support/env.rb
183
194
  - fixtures/asset-hash-app/config.rb
184
195
  - fixtures/asset-hash-app/source/images/100px.gif
@@ -204,6 +215,9 @@ test_files:
204
215
  - fixtures/asset-hash-host-app/source/other.html.erb
205
216
  - fixtures/asset-hash-host-app/source/stylesheets/site.css.scss
206
217
  - fixtures/asset-hash-host-app/source/subdir/index.html.erb
218
+ - fixtures/asset-paths-app/config.rb
219
+ - fixtures/asset-paths-app/derp/javascripts/vendored_js.js
220
+ - fixtures/asset-paths-app/source/javascripts/vendored_include.js
207
221
  - fixtures/preview-app/config.rb
208
222
  - fixtures/preview-app/source/content.html.erb
209
223
  - fixtures/preview-app/source/layout.erb
@@ -212,6 +226,11 @@ test_files:
212
226
  - fixtures/preview-app/source/stylesheets/main.css.sass
213
227
  - fixtures/preview-app/source/stylesheets/main2.css.sass
214
228
  - fixtures/preview-app/source/stylesheets/plain.css.sass
229
+ - fixtures/sprockets-app-debug-assets/config.rb
230
+ - fixtures/sprockets-app-debug-assets/source/index.html.erb
231
+ - fixtures/sprockets-app-debug-assets/source/javascripts/dependency1.js
232
+ - fixtures/sprockets-app-debug-assets/source/javascripts/dependency2.js
233
+ - fixtures/sprockets-app-debug-assets/source/javascripts/main.js
215
234
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/bootstrap_include.css.scssc
216
235
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/sprockets_base1.css.scssc
217
236
  - fixtures/sprockets-app/.sass-cache/be37f3d65d619a3996ff80c3e286084336419f31/sprockets_base2.css.scssc
@@ -232,6 +251,7 @@ test_files:
232
251
  - fixtures/sprockets-app2/data/test2.json
233
252
  - fixtures/sprockets-app2/source/javascripts/_templates/test.jst.ejs
234
253
  - fixtures/sprockets-app2/source/javascripts/_templates/test2.jst.eco
254
+ - fixtures/sprockets-app2/source/javascripts/asset_path.js.erb
235
255
  - fixtures/sprockets-app2/source/javascripts/multiple_engines.js.coffee.erb
236
256
  - fixtures/sprockets-app2/source/javascripts/sprockets_base.js
237
257
  - fixtures/sprockets-app2/source/javascripts/sprockets_sub.js