middleman-core 4.2.1 → 4.3.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/features/asset_hash.feature +10 -10
- data/features/builder.feature +1 -1
- data/features/chained_templates.feature +7 -0
- data/features/console.feature +1 -1
- data/features/extension_api_deprecations.feature +1 -3
- data/features/extension_hooks.feature +1 -3
- data/features/i18n_link_to.feature +23 -0
- data/features/i18n_preview.feature +5 -1
- data/features/ignore.feature +67 -11
- data/features/minify_javascript.feature +34 -34
- data/features/mount_rack.feature +1 -0
- data/features/relative_assets_helpers_only.feature +4 -4
- data/features/support/env.rb +2 -5
- data/fixtures/chained-app/source/stylesheets/main.css.scss.erb +3 -0
- data/fixtures/chained-app/source/stylesheets/sub.scss +1 -0
- data/fixtures/generator-test/config.rb +0 -14
- data/fixtures/i18n-test-app/locales/en.yml +7 -1
- data/fixtures/i18n-test-app/locales/es.yml +2 -1
- data/fixtures/i18n-test-app/source/localizable/tac.html.erb +1 -0
- data/lib/middleman-core/application.rb +4 -3
- data/lib/middleman-core/builder.rb +1 -1
- data/lib/middleman-core/core_extensions/data.rb +1 -1
- data/lib/middleman-core/core_extensions/i18n.rb +18 -5
- data/lib/middleman-core/extension.rb +5 -4
- data/lib/middleman-core/extension_manager.rb +5 -1
- data/lib/middleman-core/extensions/minify_javascript.rb +1 -1
- data/lib/middleman-core/preview_server.rb +2 -1
- data/lib/middleman-core/renderers/haml.rb +7 -0
- data/lib/middleman-core/renderers/liquid.rb +1 -1
- data/lib/middleman-core/sitemap/store.rb +2 -2
- data/lib/middleman-core/step_definitions/builder_steps.rb +26 -0
- data/lib/middleman-core/step_definitions/commandline_steps.rb +4 -4
- data/lib/middleman-core/step_definitions/server_steps.rb +1 -1
- data/lib/middleman-core/template_renderer.rb +2 -2
- data/lib/middleman-core/util/data.rb +0 -1
- data/lib/middleman-core/version.rb +1 -1
- data/middleman-core.gemspec +7 -9
- data/spec/spec_helper.rb +1 -6
- metadata +21 -43
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 52f86ed81089423f830d056b3618e36218d4e478
|
|
4
|
+
data.tar.gz: a70572a4e9e68a10ce50860dee7b1bbf012e38d7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f9e6f7ff55b3a7cfb86f966a1ba8c2bdfcbef8481ffcbcfce66d46febd5ad8edd297f813bf1e4e7ccc1b7fd6258a1271752f22180983d9a9ca9d0a2057d0518b
|
|
7
|
+
data.tar.gz: e27b12b8c5888a6b5eacd3bf9ae72c7d6b370b09ecc3c71182cf2a4f1f18b1a33347f60b81ee3a17556f7a7a6d8b7ae3ab89de3e14eda4f08ef40b8dac3da071
|
data/features/asset_hash.feature
CHANGED
|
@@ -63,8 +63,8 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
63
63
|
Given the Server is running at "asset-hash-app"
|
|
64
64
|
When I go to "/"
|
|
65
65
|
Then I should see 'href="apple-touch-icon.png"'
|
|
66
|
-
And I should see 'href="stylesheets/site-
|
|
67
|
-
And I should see 'href="stylesheets/fragment-
|
|
66
|
+
And I should see 'href="stylesheets/site-47c40978.css"'
|
|
67
|
+
And I should see 'href="stylesheets/fragment-313b648b.css"'
|
|
68
68
|
And I should see 'src="javascripts/application-1d8d5276.js"'
|
|
69
69
|
And I should see 'src="images/100px-5fd6fb90.jpg"'
|
|
70
70
|
And I should see 'srcset="images/100px-5fd6fb90.jpg 1x, images/200px-c11eb203.jpg 2x, images/300px-59adce76.jpg 3x"'
|
|
@@ -72,11 +72,11 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
72
72
|
And I should see 'src="images/100px-5fd6fb90.jpg?#test"'
|
|
73
73
|
And I should see 'src="images/100px-5fd6fb90.jpg#test"'
|
|
74
74
|
When I go to "/subdir/"
|
|
75
|
-
Then I should see 'href="../stylesheets/site-
|
|
75
|
+
Then I should see 'href="../stylesheets/site-47c40978.css"'
|
|
76
76
|
And I should see 'src="../javascripts/application-1d8d5276.js"'
|
|
77
77
|
And I should see 'src="../images/100px-5fd6fb90.jpg"'
|
|
78
78
|
When I go to "/other/"
|
|
79
|
-
Then I should see 'href="../stylesheets/site-
|
|
79
|
+
Then I should see 'href="../stylesheets/site-47c40978.css"'
|
|
80
80
|
And I should see 'src="../javascripts/application-1d8d5276.js"'
|
|
81
81
|
And I should see 'src="../images/100px-5fd6fb90.jpg"'
|
|
82
82
|
And I should see 'src="../images/100px-5fd6fb90.jpg?test"'
|
|
@@ -84,7 +84,7 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
84
84
|
And I should see 'src="../images/100px-5fd6fb90.jpg#test"'
|
|
85
85
|
When I go to "/javascripts/application-1d8d5276.js"
|
|
86
86
|
Then I should see "img.src = '/images/100px-5fd6fb90.jpg'"
|
|
87
|
-
When I go to "/stylesheets/site-
|
|
87
|
+
When I go to "/stylesheets/site-47c40978.css"
|
|
88
88
|
Then I should see 'background-image: url("../images/100px-5fd6fb90.jpg");'
|
|
89
89
|
When I go to "/api.json"
|
|
90
90
|
Then I should see 'images/100px-5fd6fb90.gif'
|
|
@@ -94,7 +94,7 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
94
94
|
Then I should see 'images/100px-5fd6fb90.gif'
|
|
95
95
|
And I should see 'images/100px-5fd6fb90.jpg'
|
|
96
96
|
And I should see 'images/100px-1242c368.png'
|
|
97
|
-
When I go to "/stylesheets/fragment-
|
|
97
|
+
When I go to "/stylesheets/fragment-313b648b.css"
|
|
98
98
|
And I should see 'url("../images/100px-5fd6fb90.jpg");'
|
|
99
99
|
And I should see 'url("../images/100px-5fd6fb90.jpg?test");'
|
|
100
100
|
And I should see 'url("../images/100px-5fd6fb90.jpg?#test");'
|
|
@@ -179,14 +179,14 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
179
179
|
font-size: 14px
|
|
180
180
|
"""
|
|
181
181
|
When I go to "/partials/"
|
|
182
|
-
Then I should see 'href="../stylesheets/uses_partials-
|
|
182
|
+
Then I should see 'href="../stylesheets/uses_partials-58447acf.css'
|
|
183
183
|
And the file "source/stylesheets/_partial.sass" has the contents
|
|
184
184
|
"""
|
|
185
185
|
body
|
|
186
186
|
font-size: 18px !important
|
|
187
187
|
"""
|
|
188
188
|
When I go to "/partials/"
|
|
189
|
-
Then I should see 'href="../stylesheets/uses_partials-
|
|
189
|
+
Then I should see 'href="../stylesheets/uses_partials-72fbbb45.css'
|
|
190
190
|
|
|
191
191
|
Scenario: The asset hash should change when a Rack-based filter changes
|
|
192
192
|
Given a fixture app "asset-hash-app"
|
|
@@ -200,8 +200,8 @@ Feature: Assets get file hashes appended to them and references to them are upda
|
|
|
200
200
|
"""
|
|
201
201
|
Given the Server is running at "asset-hash-app"
|
|
202
202
|
When I go to "/"
|
|
203
|
-
Then I should see 'href="stylesheets/site-
|
|
204
|
-
When I go to "stylesheets/site-
|
|
203
|
+
Then I should see 'href="stylesheets/site-41d4c812.css'
|
|
204
|
+
When I go to "stylesheets/site-41d4c812.css"
|
|
205
205
|
Then I should see 'background-image: url("../images/100px-5fd6fb90.jpg")'
|
|
206
206
|
Then I should see 'Added by Rack filter'
|
|
207
207
|
|
data/features/builder.feature
CHANGED
|
@@ -7,6 +7,13 @@ Feature: Templates should be chainable
|
|
|
7
7
|
Then I should see "Title</h1>"
|
|
8
8
|
And I should see "Subtitle</h2>"
|
|
9
9
|
And I should see "Sup</h3>"
|
|
10
|
+
When I go to "/stylesheets/main.css"
|
|
11
|
+
|
|
12
|
+
Scenario: Scss file in Erb
|
|
13
|
+
Given the Server is running at "chained-app"
|
|
14
|
+
When I go to "/stylesheets/main.css"
|
|
15
|
+
Then I should see "color: from_main;"
|
|
16
|
+
And I should see "background: from_sub;"
|
|
10
17
|
|
|
11
18
|
Scenario: Build chained template
|
|
12
19
|
Given a successfully built app at "chained-app"
|
data/features/console.feature
CHANGED
|
@@ -2,7 +2,7 @@ Feature: Console
|
|
|
2
2
|
|
|
3
3
|
Scenario: Enter and exit the console
|
|
4
4
|
Given a fixture app "large-build-app"
|
|
5
|
-
When I run
|
|
5
|
+
When I run the interactive middleman console
|
|
6
6
|
And I type "puts 'Hello from the console.'"
|
|
7
7
|
And I type "exit"
|
|
8
8
|
Then it should pass with:
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
Feature: Extension author could use some hooks
|
|
2
2
|
|
|
3
3
|
Scenario: When build
|
|
4
|
-
Given a
|
|
5
|
-
When I run `middleman build`
|
|
6
|
-
Then the exit status should be 0
|
|
4
|
+
Given a successfully built app at "extension-api-deprecations-app"
|
|
7
5
|
And the output should contain "`set :layout` is deprecated"
|
|
8
6
|
And the file "build/index.html" should contain "In Index"
|
|
9
7
|
And the file "build/index.html" should not contain "In Layout"
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
Feature: Extension author could use some hooks
|
|
2
2
|
|
|
3
3
|
Scenario: When build
|
|
4
|
-
Given a
|
|
5
|
-
When I run `middleman build`
|
|
6
|
-
Then the exit status should be 0
|
|
4
|
+
Given a successfully built app at "extension-hooks-app"
|
|
7
5
|
And the output should contain "/// after_configuration ///"
|
|
8
6
|
And the output should contain "/// ready ///"
|
|
9
7
|
And the output should contain "/// before_build ///"
|
|
@@ -34,6 +34,8 @@ Feature: i18n Paths
|
|
|
34
34
|
<%= link_to "Other Home", "/index.html", title: "Other Home", locale: ::I18n.locale == :en ? :es : :en %>
|
|
35
35
|
<% link_to "/index.html", class: 'current' do %><span>Home: Current Block</span><% end %>
|
|
36
36
|
<% link_to "/index.html", title: "Other Home", locale: ::I18n.locale == :en ? :es : :en do %><span>Home: Other Block</span><% end %>
|
|
37
|
+
<%= link_to "Current Foobar", "/foobar.html", class: 'current' %>
|
|
38
|
+
<%= link_to "Other Foobar", "/foobar.html", title: "Other Foobar", locale: ::I18n.locale == :en ? :es : :en %>
|
|
37
39
|
|
|
38
40
|
<% data.pages.each_with_index do |p, i| %>
|
|
39
41
|
<%= link_to "Current #{p}", "/#{p}", class: 'current' %>
|
|
@@ -42,6 +44,14 @@ Feature: i18n Paths
|
|
|
42
44
|
<% link_to "/#{p}", title: "Other #{p}", locale: ::I18n.locale == :en ? :es : :en do %><span>Other Block</span><% end %>
|
|
43
45
|
<% end %>
|
|
44
46
|
"""
|
|
47
|
+
And a file named "source/localizable/foobar.en.html.erb" with:
|
|
48
|
+
"""
|
|
49
|
+
English foobar
|
|
50
|
+
"""
|
|
51
|
+
And a file named "source/localizable/foobar.es.html.erb" with:
|
|
52
|
+
"""
|
|
53
|
+
Spanish foobar
|
|
54
|
+
"""
|
|
45
55
|
And a file named "config.rb" with:
|
|
46
56
|
"""
|
|
47
57
|
set :strip_index_file, false
|
|
@@ -58,6 +68,8 @@ Feature: i18n Paths
|
|
|
58
68
|
Then I should see '<a href="/es/hola.html" title="Other hello.html">Other hello.html</a>'
|
|
59
69
|
Then I should see '<a href="/hello.html" class="current"><span>Current Block</span></a>'
|
|
60
70
|
Then I should see '<a href="/es/hola.html" title="Other hello.html"><span>Other Block</span></a>'
|
|
71
|
+
Then I should see '<a href="/foobar.html" class="current">Current Foobar</a>'
|
|
72
|
+
Then I should see '<a href="/es/foobar.html" title="Other Foobar">Other Foobar</a>'
|
|
61
73
|
When I go to "/es/hola.html"
|
|
62
74
|
Then I should see "Page: Hola"
|
|
63
75
|
Then I should see '<a href="/es/index.html" class="current">Current Home</a>'
|
|
@@ -68,6 +80,8 @@ Feature: i18n Paths
|
|
|
68
80
|
Then I should see '<a href="/hello.html" title="Other hello.html">Other hello.html</a>'
|
|
69
81
|
Then I should see '<a href="/es/hola.html" class="current"><span>Current Block</span></a>'
|
|
70
82
|
Then I should see '<a href="/hello.html" title="Other hello.html"><span>Other Block</span></a>'
|
|
83
|
+
Then I should see '<a href="/es/foobar.html" class="current">Current Foobar</a>'
|
|
84
|
+
Then I should see '<a href="/foobar.html" title="Other Foobar">Other Foobar</a>'
|
|
71
85
|
|
|
72
86
|
Scenario: link_to is i18n aware and supports relative_links
|
|
73
87
|
Given a fixture app "empty-app"
|
|
@@ -162,6 +176,7 @@ Feature: i18n Paths
|
|
|
162
176
|
es:
|
|
163
177
|
paths:
|
|
164
178
|
hello: "hola"
|
|
179
|
+
form: "formulario"
|
|
165
180
|
msg: Hola
|
|
166
181
|
"""
|
|
167
182
|
And a file named "source/localizable/hello.html.erb" with:
|
|
@@ -172,6 +187,10 @@ Feature: i18n Paths
|
|
|
172
187
|
Other: <%= url_for "/#{p}", locale: ::I18n.locale == :en ? :es : :en %>
|
|
173
188
|
<% end %>
|
|
174
189
|
"""
|
|
190
|
+
And a file named "source/localizable/form.html.erb" with:
|
|
191
|
+
"""
|
|
192
|
+
Other: <%= url_for "/form.html", query: { foo: 'bar' }, fragment: "deep", locale: ::I18n.locale == :en ? :es : :en %>
|
|
193
|
+
"""
|
|
175
194
|
And a file named "source/localizable/article.html.erb" with:
|
|
176
195
|
"""
|
|
177
196
|
Page Lang: Default
|
|
@@ -199,6 +218,10 @@ Feature: i18n Paths
|
|
|
199
218
|
Then I should see "Page: Hola"
|
|
200
219
|
Then I should see 'Current: /es/hola.html'
|
|
201
220
|
Then I should see 'Other: /hello.html'
|
|
221
|
+
When I go to "/form.html"
|
|
222
|
+
Then I should see 'Other: /es/formulario.html?foo=bar#deep'
|
|
223
|
+
When I go to "/es/formulario.html"
|
|
224
|
+
Then I should see 'Other: /form.html?foo=bar#deep'
|
|
202
225
|
When I go to "/article.html"
|
|
203
226
|
Then I should see "Page Lang: Default"
|
|
204
227
|
Then I should see 'Current: /article.html'
|
|
@@ -32,6 +32,10 @@ Feature: i18n Preview
|
|
|
32
32
|
Then I should see "Buenos días"
|
|
33
33
|
When I go to "/es/una.html"
|
|
34
34
|
Then I should see "Solamente una"
|
|
35
|
+
When I go to "/terms-and-conditions.html"
|
|
36
|
+
Then I should see "Terms & Conditions"
|
|
37
|
+
When I go to "/es/terms-and-conditions.html"
|
|
38
|
+
Then I should see "Condiciones Generales"
|
|
35
39
|
|
|
36
40
|
Scenario: A template changes i18n during preview
|
|
37
41
|
Given a fixture app "i18n-test-app"
|
|
@@ -249,4 +253,4 @@ Feature: i18n Preview
|
|
|
249
253
|
Then I should see "More"
|
|
250
254
|
When I go to "/es/"
|
|
251
255
|
Then I should see "Como Esta?"
|
|
252
|
-
Then I should see "Mucho"
|
|
256
|
+
Then I should see "Mucho"
|
data/features/ignore.feature
CHANGED
|
@@ -7,11 +7,12 @@ Feature: Ignoring paths
|
|
|
7
7
|
ignore 'plain.html'
|
|
8
8
|
"""
|
|
9
9
|
And a successfully built app at "ignore-app"
|
|
10
|
+
When I cd to "build"
|
|
10
11
|
Then the following files should exist:
|
|
11
|
-
|
|
|
12
|
+
| index.html |
|
|
12
13
|
And the following files should not exist:
|
|
13
|
-
|
|
|
14
|
-
|
|
|
14
|
+
| plain.html |
|
|
15
|
+
| about.html |
|
|
15
16
|
|
|
16
17
|
Scenario: Ignore a single path (server)
|
|
17
18
|
Given a fixture app "ignore-app"
|
|
@@ -66,16 +67,17 @@ Feature: Ignoring paths
|
|
|
66
67
|
ignore 'images/**/*.png'
|
|
67
68
|
"""
|
|
68
69
|
And a successfully built app at "ignore-app"
|
|
70
|
+
When I cd to "build"
|
|
69
71
|
Then the following files should exist:
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
72
|
+
| plain.html |
|
|
73
|
+
| images/portrait.jpg |
|
|
74
|
+
| images/pic.png |
|
|
73
75
|
And the following files should not exist:
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
76
|
+
| about.html |
|
|
77
|
+
| index.html |
|
|
78
|
+
| reports/index.html |
|
|
79
|
+
| reports/another.html |
|
|
80
|
+
| images/icons/messages.png |
|
|
79
81
|
|
|
80
82
|
Scenario: Ignore a globbed path (server)
|
|
81
83
|
Given a fixture app "ignore-app"
|
|
@@ -148,3 +150,57 @@ Feature: Ignoring paths
|
|
|
148
150
|
Then I should see "File Not Found"
|
|
149
151
|
When I go to "/images/icons/messages.png"
|
|
150
152
|
Then I should see "File Not Found"
|
|
153
|
+
|
|
154
|
+
Scenario: Ignore localized templates (build)
|
|
155
|
+
Given a fixture app "i18n-test-app"
|
|
156
|
+
And a file named "config.rb" with:
|
|
157
|
+
"""
|
|
158
|
+
activate :i18n
|
|
159
|
+
ignore 'localizable/hello.html.erb'
|
|
160
|
+
ignore /morning/
|
|
161
|
+
ignore 'localizable/*.md'
|
|
162
|
+
"""
|
|
163
|
+
And a successfully built app at "i18n-test-app"
|
|
164
|
+
When I cd to "build"
|
|
165
|
+
Then the following files should exist:
|
|
166
|
+
| index.html |
|
|
167
|
+
| es/index.html |
|
|
168
|
+
And the following files should not exist:
|
|
169
|
+
| hello.html |
|
|
170
|
+
| morning.html |
|
|
171
|
+
| one.html |
|
|
172
|
+
| es/hola.html |
|
|
173
|
+
| es/manana.html |
|
|
174
|
+
| es/una.html |
|
|
175
|
+
| es/hello.html |
|
|
176
|
+
| es/morning.html |
|
|
177
|
+
| es/one.html |
|
|
178
|
+
And the file "index.html" should contain "Howdy"
|
|
179
|
+
And the file "es/index.html" should contain "Como Esta?"
|
|
180
|
+
|
|
181
|
+
Scenario: Ignore localized templates (server)
|
|
182
|
+
Given a fixture app "i18n-test-app"
|
|
183
|
+
And a file named "config.rb" with:
|
|
184
|
+
"""
|
|
185
|
+
activate :i18n
|
|
186
|
+
ignore 'localizable/hello.html.erb'
|
|
187
|
+
ignore /morning/
|
|
188
|
+
ignore 'localizable/*.md'
|
|
189
|
+
"""
|
|
190
|
+
And the Server is running
|
|
191
|
+
When I go to "/index.html"
|
|
192
|
+
Then I should not see "File Not Found"
|
|
193
|
+
When I go to "/es/index.html"
|
|
194
|
+
Then I should not see "File Not Found"
|
|
195
|
+
When I go to "/hello.html"
|
|
196
|
+
Then I should see "File Not Found"
|
|
197
|
+
When I go to "/morning.html"
|
|
198
|
+
Then I should see "File Not Found"
|
|
199
|
+
When I go to "/one.html"
|
|
200
|
+
Then I should see "File Not Found"
|
|
201
|
+
When I go to "/es/hola.html"
|
|
202
|
+
Then I should see "File Not Found"
|
|
203
|
+
When I go to "/es/manana.html"
|
|
204
|
+
Then I should see "File Not Found"
|
|
205
|
+
When I go to "/es/una.html"
|
|
206
|
+
Then I should see "File Not Found"
|
|
@@ -19,23 +19,23 @@ Feature: Minify Javascript
|
|
|
19
19
|
})();
|
|
20
20
|
</script>
|
|
21
21
|
<script>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
;(function() {
|
|
23
|
+
this;
|
|
24
|
+
should();
|
|
25
|
+
too();
|
|
26
|
+
})();
|
|
27
27
|
</script>
|
|
28
28
|
<script type='text/javascript'>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
//<!--
|
|
30
|
+
;(function() {
|
|
31
|
+
one;
|
|
32
|
+
line();
|
|
33
|
+
here();
|
|
34
|
+
})();
|
|
35
|
+
//-->
|
|
36
36
|
</script>
|
|
37
37
|
<script type='text/html'>
|
|
38
|
-
|
|
38
|
+
I'm a jQuery {{template}}.
|
|
39
39
|
</script>
|
|
40
40
|
"""
|
|
41
41
|
|
|
@@ -66,23 +66,23 @@ Feature: Minify Javascript
|
|
|
66
66
|
})();
|
|
67
67
|
</script>
|
|
68
68
|
<script>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
;(function() {
|
|
70
|
+
this;
|
|
71
|
+
should();
|
|
72
|
+
too();
|
|
73
|
+
})();
|
|
74
74
|
</script>
|
|
75
75
|
<script type='text/javascript'>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
//<!--
|
|
77
|
+
;(function() {
|
|
78
|
+
one;
|
|
79
|
+
line();
|
|
80
|
+
here();
|
|
81
|
+
})();
|
|
82
|
+
//-->
|
|
83
83
|
</script>
|
|
84
84
|
<script type='text/html'>
|
|
85
|
-
|
|
85
|
+
I'm a jQuery {{template}}.
|
|
86
86
|
</script>
|
|
87
87
|
"""
|
|
88
88
|
|
|
@@ -108,15 +108,15 @@ Feature: Minify Javascript
|
|
|
108
108
|
Hello
|
|
109
109
|
</script>
|
|
110
110
|
<script>
|
|
111
|
-
|
|
111
|
+
Hello
|
|
112
112
|
</script>
|
|
113
113
|
<script type='text/javascript'>
|
|
114
|
-
|
|
114
|
+
//<!--
|
|
115
115
|
Hello
|
|
116
|
-
|
|
116
|
+
//-->
|
|
117
117
|
</script>
|
|
118
118
|
<script type='text/html'>
|
|
119
|
-
|
|
119
|
+
I'm a jQuery {{template}}.
|
|
120
120
|
</script>
|
|
121
121
|
"""
|
|
122
122
|
|
|
@@ -134,15 +134,15 @@ Feature: Minify Javascript
|
|
|
134
134
|
!function(){should(),all.be(),on={one:line}}();
|
|
135
135
|
</script>
|
|
136
136
|
<script>
|
|
137
|
-
|
|
137
|
+
!function(){should(),too()}();
|
|
138
138
|
</script>
|
|
139
139
|
<script type='text/javascript'>
|
|
140
|
-
|
|
140
|
+
//<!--
|
|
141
141
|
!function(){one,line(),here()}();
|
|
142
|
-
|
|
142
|
+
//-->
|
|
143
143
|
</script>
|
|
144
144
|
<script type='text/html'>
|
|
145
|
-
|
|
145
|
+
I'm a jQuery {{template}}.
|
|
146
146
|
</script>
|
|
147
147
|
"""
|
|
148
148
|
|
data/features/mount_rack.feature
CHANGED
|
@@ -6,7 +6,7 @@ Feature: Relative Assets (Helpers Only)
|
|
|
6
6
|
"""
|
|
7
7
|
activate :relative_assets, helpers_only: true
|
|
8
8
|
"""
|
|
9
|
-
And a file named "source/stylesheets/
|
|
9
|
+
And a file named "source/stylesheets/relative_assets_helper.css.sass.erb" with:
|
|
10
10
|
"""
|
|
11
11
|
h1
|
|
12
12
|
background: url("<%= asset_url('images/blank.gif') %>")
|
|
@@ -38,7 +38,7 @@ Feature: Relative Assets (Helpers Only)
|
|
|
38
38
|
}
|
|
39
39
|
"""
|
|
40
40
|
And the Server is running at "relative-assets-app"
|
|
41
|
-
When I go to "/stylesheets/
|
|
41
|
+
When I go to "/stylesheets/relative_assets_helper.css"
|
|
42
42
|
Then I should see 'url("../images/blank.gif'
|
|
43
43
|
And I should see 'url("../images/blank2.gif'
|
|
44
44
|
When I go to "/javascripts/application.js"
|
|
@@ -96,7 +96,7 @@ Feature: Relative Assets (Helpers Only)
|
|
|
96
96
|
'/stylesheets/fonts3.css',
|
|
97
97
|
], helpers_only: true
|
|
98
98
|
"""
|
|
99
|
-
And a file named "source/stylesheets/
|
|
99
|
+
And a file named "source/stylesheets/relative_assets_helper.css.sass.erb" with:
|
|
100
100
|
"""
|
|
101
101
|
h1
|
|
102
102
|
background: url("<%= asset_url('images/blank.gif') %>")
|
|
@@ -117,7 +117,7 @@ Feature: Relative Assets (Helpers Only)
|
|
|
117
117
|
}
|
|
118
118
|
"""
|
|
119
119
|
And the Server is running at "relative-assets-app"
|
|
120
|
-
When I go to "/stylesheets/
|
|
120
|
+
When I go to "/stylesheets/relative_assets_helper.css"
|
|
121
121
|
Then I should see 'url("../images/blank.gif'
|
|
122
122
|
When I go to "/stylesheets/fonts3.css"
|
|
123
123
|
Then I should see 'url(/fonts/roboto/roboto-regular-webfont.eot'
|
data/features/support/env.rb
CHANGED
|
@@ -8,11 +8,8 @@ SimpleCov.root(File.expand_path(File.dirname(__FILE__) + '/../..'))
|
|
|
8
8
|
require 'phantomjs/poltergeist'
|
|
9
9
|
Capybara.javascript_driver = :poltergeist
|
|
10
10
|
|
|
11
|
-
require '
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
require 'codeclimate-test-reporter'
|
|
15
|
-
CodeClimate::TestReporter.start
|
|
11
|
+
require 'simplecov'
|
|
12
|
+
SimpleCov.start
|
|
16
13
|
|
|
17
14
|
PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
|
|
18
15
|
require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-core')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
body { background: from_sub; }
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
###
|
|
2
|
-
# Compass
|
|
3
|
-
###
|
|
4
|
-
|
|
5
|
-
# Susy grids in Compass
|
|
6
|
-
# First: gem install compass-susy-plugin
|
|
7
|
-
# require 'susy'
|
|
8
|
-
|
|
9
|
-
# Change Compass configuration
|
|
10
|
-
# compass_config do |config|
|
|
11
|
-
# config.output_style = :compact
|
|
12
|
-
# end
|
|
13
|
-
|
|
14
1
|
###
|
|
15
2
|
# Page options, layouts, aliases and proxies
|
|
16
3
|
###
|
|
@@ -53,7 +40,6 @@
|
|
|
53
40
|
|
|
54
41
|
# Production configuration
|
|
55
42
|
configure :production do
|
|
56
|
-
# For example, change the Compass output style for deployment
|
|
57
43
|
# activate :minify_css
|
|
58
44
|
|
|
59
45
|
# Minify Javascript
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= I18n.t('tac') %>
|
|
@@ -345,13 +345,14 @@ module Middleman
|
|
|
345
345
|
|
|
346
346
|
# Clean up missing Tilt exts
|
|
347
347
|
def prune_tilt_templates!
|
|
348
|
-
::Tilt.default_mapping
|
|
348
|
+
mapping = ::Tilt.default_mapping
|
|
349
|
+
mapping.lazy_map.each_key do |key|
|
|
349
350
|
begin
|
|
350
|
-
|
|
351
|
+
mapping[key]
|
|
351
352
|
rescue LoadError, NameError
|
|
352
|
-
::Tilt.default_mapping.lazy_map.delete(key)
|
|
353
353
|
end
|
|
354
354
|
end
|
|
355
|
+
mapping.lazy_map.clear
|
|
355
356
|
end
|
|
356
357
|
|
|
357
358
|
# Whether we're in a specific mode
|
|
@@ -32,7 +32,7 @@ module Middleman
|
|
|
32
32
|
|
|
33
33
|
# Tell the file watcher to observe the :data_dir
|
|
34
34
|
@watcher = app.files.watch :data,
|
|
35
|
-
path: File.
|
|
35
|
+
path: File.expand_path(dir, app.root),
|
|
36
36
|
only: DATA_FILE_MATCHER
|
|
37
37
|
|
|
38
38
|
# Setup data files before anything else so they are available when
|
|
@@ -155,6 +155,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
155
155
|
|
|
156
156
|
# If it's a "localizable template"
|
|
157
157
|
localizable_folder_resources.each do |resource|
|
|
158
|
+
next if resource.ignored?
|
|
159
|
+
|
|
158
160
|
page_id = File.basename(resource.path, File.extname(resource.path))
|
|
159
161
|
locales.each do |locale|
|
|
160
162
|
# Remove folder name
|
|
@@ -174,6 +176,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
174
176
|
|
|
175
177
|
# If it uses file extension localization
|
|
176
178
|
file_extension_resources.each do |resource|
|
|
179
|
+
next if resource.ignored?
|
|
180
|
+
|
|
177
181
|
result = parse_locale_extension(resource.path)
|
|
178
182
|
ext_locale, path, page_id = result
|
|
179
183
|
new_resources << build_resource(path, resource.path, page_id, ext_locale)
|
|
@@ -183,6 +187,12 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
183
187
|
|
|
184
188
|
@lookup = new_resources.each_with_object({}) do |desc, sum|
|
|
185
189
|
abs_path = desc.source_path.sub(options[:templates_dir], '')
|
|
190
|
+
|
|
191
|
+
# Process templates with locale suffix
|
|
192
|
+
locales.each do |locale|
|
|
193
|
+
abs_path = abs_path.sub(".#{locale}.", ".")
|
|
194
|
+
end
|
|
195
|
+
|
|
186
196
|
sum[abs_path] ||= {}
|
|
187
197
|
sum[abs_path][desc.locale] = '/' + desc.path
|
|
188
198
|
end
|
|
@@ -194,10 +204,13 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
194
204
|
|
|
195
205
|
Contract String, Symbol => Maybe[String]
|
|
196
206
|
def localized_path(path, locale)
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
207
|
+
begin
|
|
208
|
+
lookup = ::Middleman::Util.parse_uri(path)
|
|
209
|
+
lookup.path << app.config[:index_file] if lookup.path && lookup.path.end_with?('/')
|
|
210
|
+
lookup.to_s if @lookup[lookup.path] && lookup.path = @lookup[lookup.path][locale]
|
|
211
|
+
rescue ::Addressable::URI::InvalidURIError
|
|
212
|
+
nil
|
|
213
|
+
end
|
|
201
214
|
end
|
|
202
215
|
|
|
203
216
|
Contract Symbol => String
|
|
@@ -272,7 +285,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension
|
|
|
272
285
|
def build_resource(path, source_path, page_id, locale)
|
|
273
286
|
old_locale = ::I18n.locale
|
|
274
287
|
::I18n.locale = locale
|
|
275
|
-
localized_page_id = ::I18n.t("paths.#{page_id}", default: page_id
|
|
288
|
+
localized_page_id = ::I18n.t("paths.#{page_id}", default: page_id)
|
|
276
289
|
|
|
277
290
|
partially_localized_path = ''
|
|
278
291
|
|
|
@@ -53,15 +53,16 @@ module Middleman
|
|
|
53
53
|
#
|
|
54
54
|
# Common lifecycle events can be handled by extensions simply by implementing an appropriately-named method:
|
|
55
55
|
#
|
|
56
|
+
# * {#before_configuration}
|
|
56
57
|
# * {#after_configuration}
|
|
57
|
-
# * {#after_build}
|
|
58
58
|
# * {#before_build}
|
|
59
|
+
# * {#after_build}
|
|
60
|
+
# * {#ready}
|
|
59
61
|
#
|
|
60
62
|
# There are also some less common hooks that can be listened to from within an extension's `initialize` method:
|
|
61
63
|
#
|
|
62
|
-
# * `app.before_render {|body, path, locs, template_class| ... }` - Manipulate template sources before they are rendered.
|
|
63
|
-
# * `app.after_render {|content, path, locs, template_class| ... }` - Manipulate output text after a template has been rendered. It is also common to install a Rack middleware to do this instead.
|
|
64
|
-
# * `app.ready { ... }` - Run code once Middleman is ready to serve or build files (after `after_configuration`).
|
|
64
|
+
# * `app.before_render { |body, path, locs, template_class| ... }` - Manipulate template sources before they are rendered.
|
|
65
|
+
# * `app.after_render { |content, path, locs, template_class| ... }` - Manipulate output text after a template has been rendered. It is also common to install a Rack middleware to do this instead.
|
|
65
66
|
|
|
66
67
|
#
|
|
67
68
|
# @see http://middlemanapp.com/advanced/custom/ Middleman Custom Extensions Documentation
|
|
@@ -24,6 +24,10 @@ module Middleman
|
|
|
24
24
|
@app.after_configuration_eval(&method(:activate_all))
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
def active?(key)
|
|
28
|
+
@activated.key?(key)
|
|
29
|
+
end
|
|
30
|
+
|
|
27
31
|
def auto_activate(key)
|
|
28
32
|
::Middleman::Extensions.auto_activate(key, @app)
|
|
29
33
|
end
|
|
@@ -60,7 +64,7 @@ module Middleman
|
|
|
60
64
|
@activated[ext_name] ||= {}
|
|
61
65
|
key = "instance_#{@activated[ext_name].keys.length}"
|
|
62
66
|
@activated[ext_name][key] = extension.new(@app, options, &block)
|
|
63
|
-
elsif
|
|
67
|
+
elsif active?(ext_name)
|
|
64
68
|
raise "#{ext_name} has already been activated and cannot be re-activated."
|
|
65
69
|
else
|
|
66
70
|
@activated[ext_name] = extension.new(@app, options, &block)
|
|
@@ -10,7 +10,7 @@ class Middleman::Extensions::MinifyJavascript < ::Middleman::Extension
|
|
|
10
10
|
require 'uglifier'
|
|
11
11
|
::Uglifier.new
|
|
12
12
|
}, 'Set the JS compressor to use.'
|
|
13
|
-
option :content_types, %w(application/javascript), 'Content types of resources that contain JS'
|
|
13
|
+
option :content_types, %w(application/javascript application/ld+json), 'Content types of resources that contain JS'
|
|
14
14
|
option :inline_content_types, %w(text/html text/php), 'Content types of resources that contain inline JS'
|
|
15
15
|
|
|
16
16
|
def ready
|
|
@@ -268,7 +268,8 @@ module Middleman
|
|
|
268
268
|
begin
|
|
269
269
|
::WEBrick::HTTPServer.new(http_opts)
|
|
270
270
|
rescue Errno::EADDRINUSE
|
|
271
|
-
|
|
271
|
+
port = http_opts[:Port]
|
|
272
|
+
$stderr.puts %(== Port #{port} is already in use. This could mean another instance of middleman is already running. Please make sure port #{port} is free and start `middleman server` again, or choose another port by running `middleman server —-port=#{port + 1}` instead.)
|
|
272
273
|
end
|
|
273
274
|
end
|
|
274
275
|
|
|
@@ -30,6 +30,10 @@ module Middleman
|
|
|
30
30
|
|
|
31
31
|
def evaluate(scope, locals, &block)
|
|
32
32
|
options = {}.merge!(@options).merge!(filename: eval_file, line: line, context: @context || scope)
|
|
33
|
+
if options.include?(:outvar)
|
|
34
|
+
options[:buffer] = options.delete(:outvar)
|
|
35
|
+
options[:save_buffer] = true
|
|
36
|
+
end
|
|
33
37
|
@engine = ::Haml::Engine.new(data, options)
|
|
34
38
|
output = @engine.render(scope, locals, &block)
|
|
35
39
|
|
|
@@ -44,6 +48,9 @@ module Middleman
|
|
|
44
48
|
|
|
45
49
|
::Haml::Options.defaults[:context] = nil
|
|
46
50
|
::Haml::Options.send :attr_accessor, :context
|
|
51
|
+
if defined?(::Haml::TempleEngine)
|
|
52
|
+
::Haml::TempleEngine.define_options context: nil
|
|
53
|
+
end
|
|
47
54
|
|
|
48
55
|
# rubocop:disable NestedMethodDefinition
|
|
49
56
|
[::Haml::Filters::Sass, ::Haml::Filters::Scss, ::Haml::Filters::Markdown].each do |f|
|
|
@@ -11,7 +11,7 @@ module Middleman
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
# Called by Liquid to retrieve a template file
|
|
14
|
-
def read_template_file(template_path
|
|
14
|
+
def read_template_file(template_path)
|
|
15
15
|
file = app.files.find(:source, "_#{template_path}.liquid")
|
|
16
16
|
raise ::Liquid::FileSystemError, "No such template '#{template_path}'" unless file
|
|
17
17
|
file.read
|
|
@@ -238,11 +238,11 @@ module Middleman
|
|
|
238
238
|
|
|
239
239
|
# Rebuild cache
|
|
240
240
|
@resources.each do |resource|
|
|
241
|
-
@_lookup_by_path[resource.path] = resource
|
|
241
|
+
@_lookup_by_path[::Middleman::Util.normalize_path(resource.path)] = resource
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
@resources.each do |resource|
|
|
245
|
-
@_lookup_by_destination_path[resource.destination_path] = resource
|
|
245
|
+
@_lookup_by_destination_path[::Middleman::Util.normalize_path(resource.destination_path)] = resource
|
|
246
246
|
end
|
|
247
247
|
|
|
248
248
|
# NB: This needs to be done after the previous two steps,
|
|
@@ -6,6 +6,10 @@ end
|
|
|
6
6
|
|
|
7
7
|
Given /^a built app at "([^\"]*)"$/ do |path|
|
|
8
8
|
step %Q{a fixture app "#{path}"}
|
|
9
|
+
|
|
10
|
+
cwd = File.expand_path(aruba.current_directory)
|
|
11
|
+
step %Q{I set the environment variable "MM_ROOT" to "#{cwd}"}
|
|
12
|
+
|
|
9
13
|
step %Q{I run `middleman build --verbose`}
|
|
10
14
|
end
|
|
11
15
|
|
|
@@ -15,6 +19,12 @@ Given /^was successfully built$/ do
|
|
|
15
19
|
step %Q{a directory named "build" should exist}
|
|
16
20
|
end
|
|
17
21
|
|
|
22
|
+
Given /^was not successfully built$/ do
|
|
23
|
+
step %Q{the output should not contain "Project built successfully."}
|
|
24
|
+
step %Q{the exit status should be 1}
|
|
25
|
+
step %Q{a directory named "build" should not exist}
|
|
26
|
+
end
|
|
27
|
+
|
|
18
28
|
Given /^a successfully built app at "([^\"]*)"$/ do |path|
|
|
19
29
|
step %Q{a built app at "#{path}"}
|
|
20
30
|
step %Q{was successfully built}
|
|
@@ -22,6 +32,10 @@ end
|
|
|
22
32
|
|
|
23
33
|
Given /^a built app at "([^\"]*)" with flags "([^\"]*)"$/ do |path, flags|
|
|
24
34
|
step %Q{a fixture app "#{path}"}
|
|
35
|
+
|
|
36
|
+
cwd = File.expand_path(aruba.current_directory)
|
|
37
|
+
step %Q{I set the environment variable "MM_ROOT" to "#{cwd}"}
|
|
38
|
+
|
|
25
39
|
step %Q{I run `middleman build #{flags}`}
|
|
26
40
|
end
|
|
27
41
|
|
|
@@ -29,3 +43,15 @@ Given /^a successfully built app at "([^\"]*)" with flags "([^\"]*)"$/ do |path,
|
|
|
29
43
|
step %Q{a built app at "#{path}" with flags "#{flags}"}
|
|
30
44
|
step %Q{was successfully built}
|
|
31
45
|
end
|
|
46
|
+
|
|
47
|
+
Given /^I run the interactive middleman console$/ do
|
|
48
|
+
cwd = File.expand_path(aruba.current_directory)
|
|
49
|
+
step %Q{I set the environment variable "MM_ROOT" to "#{cwd}"}
|
|
50
|
+
step %Q{I run `middleman console` interactively}
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
Given /^I run the interactive middleman server$/ do
|
|
54
|
+
cwd = File.expand_path(aruba.current_directory)
|
|
55
|
+
step %Q{I set the environment variable "MM_ROOT" to "#{cwd}"}
|
|
56
|
+
step %Q{I run `middleman server` interactively}
|
|
57
|
+
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
When /^I stop (?:middleman|all commands) if the output( of the last command)? contains:$/ do |last_command, expected|
|
|
2
2
|
begin
|
|
3
|
-
Timeout.timeout(exit_timeout) do
|
|
3
|
+
Timeout.timeout(aruba.config.exit_timeout) do
|
|
4
4
|
loop do
|
|
5
5
|
fail "You need to start middleman interactively first." unless @interactive
|
|
6
6
|
|
|
7
|
-
if
|
|
8
|
-
|
|
7
|
+
if sanitize_text(@interactive.output) =~ Regexp.new(sanitize_text(expected))
|
|
8
|
+
all_commands.each { |p| p.terminate }
|
|
9
9
|
break
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -80,7 +80,7 @@ end
|
|
|
80
80
|
|
|
81
81
|
# Make sure each and every process is really dead
|
|
82
82
|
After do
|
|
83
|
-
|
|
83
|
+
all_commands.each { |p| p.terminate }
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
Before '@ruby-2.1' do
|
|
@@ -132,7 +132,7 @@ module Middleman
|
|
|
132
132
|
@app.extensions.add_exposed_to_context(context)
|
|
133
133
|
|
|
134
134
|
locals.each do |k, _|
|
|
135
|
-
next unless context.respond_to?(k) && ![:current_path, :paginate, :page_articles, :blog_controller, :lang, :locale].include?(k.to_sym)
|
|
135
|
+
next unless context.respond_to?(k) && ![:current_path, :paginate, :page_articles, :blog_controller, :lang, :locale, :data].include?(k.to_sym)
|
|
136
136
|
|
|
137
137
|
msg = "Template local `#{k}` tried to overwrite an existing context value. Please rename the key when passing to `locals`"
|
|
138
138
|
|
|
@@ -183,7 +183,7 @@ module Middleman
|
|
|
183
183
|
content_renderer = ::Middleman::FileRenderer.new(@app, path)
|
|
184
184
|
content = content_renderer.render(locs, opts, context, &block)
|
|
185
185
|
|
|
186
|
-
path =
|
|
186
|
+
path = path.sub(/\.[^.]*\z/, '')
|
|
187
187
|
rescue LocalJumpError
|
|
188
188
|
raise "Tried to render a layout (calls yield) at #{path} like it was a template. Non-default layouts need to be in #{@app.config[:source]}/#{@app.config[:layouts_dir]}."
|
|
189
189
|
end
|
data/middleman-core.gemspec
CHANGED
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
|
11
11
|
s.email = ['me@tdreyno.com', 'ben@benhollis.net', 'karlfreeman@gmail.com']
|
|
12
12
|
s.homepage = 'http://middlemanapp.com'
|
|
13
13
|
s.summary = 'Hand-crafted frontend development'
|
|
14
|
-
s.description = 'A static site generator. Provides dozens of templating languages (Haml, Sass,
|
|
14
|
+
s.description = 'A static site generator. Provides dozens of templating languages (Haml, Sass, Slim, CoffeeScript, and more). Makes minification, compression, cache busting, Yaml data (and more) an easy part of your development cycle.'
|
|
15
15
|
|
|
16
16
|
s.files = `git ls-files -z`.split("\0")
|
|
17
17
|
s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
|
|
@@ -23,25 +23,24 @@ Gem::Specification.new do |s|
|
|
|
23
23
|
s.add_dependency('rack', ['>= 1.4.5', '< 3'])
|
|
24
24
|
s.add_dependency('tilt', ['~> 2.0'])
|
|
25
25
|
s.add_dependency('erubis')
|
|
26
|
-
s.add_dependency('fast_blank')
|
|
27
26
|
s.add_dependency('parallel')
|
|
28
27
|
s.add_dependency('servolux')
|
|
29
28
|
s.add_dependency('dotenv')
|
|
30
29
|
|
|
31
30
|
# Helpers
|
|
32
|
-
s.add_dependency('activesupport', ['>= 4.2', '< 5.
|
|
31
|
+
s.add_dependency('activesupport', ['>= 4.2', '< 5.2'])
|
|
33
32
|
s.add_dependency('padrino-helpers', ['~> 0.13.0'])
|
|
34
|
-
s.add_dependency(
|
|
33
|
+
s.add_dependency('addressable', ['~> 2.3'])
|
|
35
34
|
s.add_dependency('memoist', ['~> 0.14'])
|
|
36
35
|
|
|
37
36
|
# Watcher
|
|
38
|
-
s.add_dependency('listen', ['~> 3.0
|
|
37
|
+
s.add_dependency('listen', ['~> 3.0'])
|
|
39
38
|
|
|
40
39
|
# Tests
|
|
41
|
-
s.add_development_dependency(
|
|
40
|
+
s.add_development_dependency('capybara', ['~> 2.5.0'])
|
|
42
41
|
|
|
43
42
|
# i18n
|
|
44
|
-
s.add_dependency('i18n', ['~> 0.7
|
|
43
|
+
s.add_dependency('i18n', ['~> 0.7'])
|
|
45
44
|
|
|
46
45
|
# Automatic Image Sizes
|
|
47
46
|
s.add_dependency('fastimage', ['~> 2.0'])
|
|
@@ -54,10 +53,9 @@ Gem::Specification.new do |s|
|
|
|
54
53
|
s.add_dependency('execjs', ['~> 2.0'])
|
|
55
54
|
|
|
56
55
|
# Testing
|
|
57
|
-
s.add_dependency('contracts', ['~> 0.13
|
|
56
|
+
s.add_dependency('contracts', ['~> 0.13'])
|
|
58
57
|
|
|
59
58
|
# Hash stuff
|
|
60
59
|
s.add_dependency('hashie', ['~> 3.4'])
|
|
61
60
|
s.add_dependency('hamster', ['~> 3.0'])
|
|
62
|
-
s.add_dependency('backports', ['~> 3.6'])
|
|
63
61
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
require 'simplecov'
|
|
2
2
|
SimpleCov.root(File.expand_path(File.dirname(__FILE__) + '/..'))
|
|
3
|
-
|
|
4
|
-
require 'coveralls'
|
|
5
|
-
Coveralls.wear!
|
|
6
|
-
|
|
7
|
-
require 'codeclimate-test-reporter'
|
|
8
|
-
CodeClimate::TestReporter.start
|
|
3
|
+
SimpleCov.start
|
|
9
4
|
|
|
10
5
|
require 'aruba/api'
|
|
11
6
|
RSpec.configure do |config|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: middleman-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.3.0.rc.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Reynolds
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: bundler
|
|
@@ -74,20 +74,6 @@ dependencies:
|
|
|
74
74
|
- - ">="
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
76
|
version: '0'
|
|
77
|
-
- !ruby/object:Gem::Dependency
|
|
78
|
-
name: fast_blank
|
|
79
|
-
requirement: !ruby/object:Gem::Requirement
|
|
80
|
-
requirements:
|
|
81
|
-
- - ">="
|
|
82
|
-
- !ruby/object:Gem::Version
|
|
83
|
-
version: '0'
|
|
84
|
-
type: :runtime
|
|
85
|
-
prerelease: false
|
|
86
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
87
|
-
requirements:
|
|
88
|
-
- - ">="
|
|
89
|
-
- !ruby/object:Gem::Version
|
|
90
|
-
version: '0'
|
|
91
77
|
- !ruby/object:Gem::Dependency
|
|
92
78
|
name: parallel
|
|
93
79
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -139,7 +125,7 @@ dependencies:
|
|
|
139
125
|
version: '4.2'
|
|
140
126
|
- - "<"
|
|
141
127
|
- !ruby/object:Gem::Version
|
|
142
|
-
version: '5.
|
|
128
|
+
version: '5.2'
|
|
143
129
|
type: :runtime
|
|
144
130
|
prerelease: false
|
|
145
131
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -149,7 +135,7 @@ dependencies:
|
|
|
149
135
|
version: '4.2'
|
|
150
136
|
- - "<"
|
|
151
137
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: '5.
|
|
138
|
+
version: '5.2'
|
|
153
139
|
- !ruby/object:Gem::Dependency
|
|
154
140
|
name: padrino-helpers
|
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -198,14 +184,14 @@ dependencies:
|
|
|
198
184
|
requirements:
|
|
199
185
|
- - "~>"
|
|
200
186
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: 3.0
|
|
187
|
+
version: '3.0'
|
|
202
188
|
type: :runtime
|
|
203
189
|
prerelease: false
|
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
191
|
requirements:
|
|
206
192
|
- - "~>"
|
|
207
193
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: 3.0
|
|
194
|
+
version: '3.0'
|
|
209
195
|
- !ruby/object:Gem::Dependency
|
|
210
196
|
name: capybara
|
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -226,14 +212,14 @@ dependencies:
|
|
|
226
212
|
requirements:
|
|
227
213
|
- - "~>"
|
|
228
214
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: 0.7
|
|
215
|
+
version: '0.7'
|
|
230
216
|
type: :runtime
|
|
231
217
|
prerelease: false
|
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
219
|
requirements:
|
|
234
220
|
- - "~>"
|
|
235
221
|
- !ruby/object:Gem::Version
|
|
236
|
-
version: 0.7
|
|
222
|
+
version: '0.7'
|
|
237
223
|
- !ruby/object:Gem::Dependency
|
|
238
224
|
name: fastimage
|
|
239
225
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -296,14 +282,14 @@ dependencies:
|
|
|
296
282
|
requirements:
|
|
297
283
|
- - "~>"
|
|
298
284
|
- !ruby/object:Gem::Version
|
|
299
|
-
version: 0.13
|
|
285
|
+
version: '0.13'
|
|
300
286
|
type: :runtime
|
|
301
287
|
prerelease: false
|
|
302
288
|
version_requirements: !ruby/object:Gem::Requirement
|
|
303
289
|
requirements:
|
|
304
290
|
- - "~>"
|
|
305
291
|
- !ruby/object:Gem::Version
|
|
306
|
-
version: 0.13
|
|
292
|
+
version: '0.13'
|
|
307
293
|
- !ruby/object:Gem::Dependency
|
|
308
294
|
name: hashie
|
|
309
295
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -332,23 +318,9 @@ dependencies:
|
|
|
332
318
|
- - "~>"
|
|
333
319
|
- !ruby/object:Gem::Version
|
|
334
320
|
version: '3.0'
|
|
335
|
-
- !ruby/object:Gem::Dependency
|
|
336
|
-
name: backports
|
|
337
|
-
requirement: !ruby/object:Gem::Requirement
|
|
338
|
-
requirements:
|
|
339
|
-
- - "~>"
|
|
340
|
-
- !ruby/object:Gem::Version
|
|
341
|
-
version: '3.6'
|
|
342
|
-
type: :runtime
|
|
343
|
-
prerelease: false
|
|
344
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
345
|
-
requirements:
|
|
346
|
-
- - "~>"
|
|
347
|
-
- !ruby/object:Gem::Version
|
|
348
|
-
version: '3.6'
|
|
349
321
|
description: A static site generator. Provides dozens of templating languages (Haml,
|
|
350
|
-
Sass,
|
|
351
|
-
|
|
322
|
+
Sass, Slim, CoffeeScript, and more). Makes minification, compression, cache busting,
|
|
323
|
+
Yaml data (and more) an easy part of your development cycle.
|
|
352
324
|
email:
|
|
353
325
|
- me@tdreyno.com
|
|
354
326
|
- ben@benhollis.net
|
|
@@ -610,6 +582,8 @@ files:
|
|
|
610
582
|
- fixtures/chained-app/config.rb
|
|
611
583
|
- fixtures/chained-app/data/article.yml
|
|
612
584
|
- fixtures/chained-app/source/index.html.str.erb
|
|
585
|
+
- fixtures/chained-app/source/stylesheets/main.css.scss.erb
|
|
586
|
+
- fixtures/chained-app/source/stylesheets/sub.scss
|
|
613
587
|
- fixtures/chained-app/source/test.erb.combobreaker.str.erb
|
|
614
588
|
- fixtures/clean-app/config-complications.rb
|
|
615
589
|
- fixtures/clean-app/config-empty.rb
|
|
@@ -857,6 +831,7 @@ files:
|
|
|
857
831
|
- fixtures/i18n-test-app/source/localizable/partials/_greeting.en.erb
|
|
858
832
|
- fixtures/i18n-test-app/source/localizable/partials/_greeting.es.erb
|
|
859
833
|
- fixtures/i18n-test-app/source/localizable/partials/index.html.erb
|
|
834
|
+
- fixtures/i18n-test-app/source/localizable/tac.html.erb
|
|
860
835
|
- fixtures/i18n-test-app/source/password.txt
|
|
861
836
|
- fixtures/i18n-test-app/source/stylesheets/site.css
|
|
862
837
|
- fixtures/ignore-app/source/about.html.erb
|
|
@@ -1558,12 +1533,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1558
1533
|
version: 2.2.0
|
|
1559
1534
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1560
1535
|
requirements:
|
|
1561
|
-
- - "
|
|
1536
|
+
- - ">"
|
|
1562
1537
|
- !ruby/object:Gem::Version
|
|
1563
|
-
version:
|
|
1538
|
+
version: 1.3.1
|
|
1564
1539
|
requirements: []
|
|
1565
1540
|
rubyforge_project:
|
|
1566
|
-
rubygems_version: 2.
|
|
1541
|
+
rubygems_version: 2.6.13
|
|
1567
1542
|
signing_key:
|
|
1568
1543
|
specification_version: 4
|
|
1569
1544
|
summary: Hand-crafted frontend development
|
|
@@ -1815,6 +1790,8 @@ test_files:
|
|
|
1815
1790
|
- fixtures/chained-app/config.rb
|
|
1816
1791
|
- fixtures/chained-app/data/article.yml
|
|
1817
1792
|
- fixtures/chained-app/source/index.html.str.erb
|
|
1793
|
+
- fixtures/chained-app/source/stylesheets/main.css.scss.erb
|
|
1794
|
+
- fixtures/chained-app/source/stylesheets/sub.scss
|
|
1818
1795
|
- fixtures/chained-app/source/test.erb.combobreaker.str.erb
|
|
1819
1796
|
- fixtures/clean-app/config-complications.rb
|
|
1820
1797
|
- fixtures/clean-app/config-empty.rb
|
|
@@ -2062,6 +2039,7 @@ test_files:
|
|
|
2062
2039
|
- fixtures/i18n-test-app/source/localizable/partials/_greeting.en.erb
|
|
2063
2040
|
- fixtures/i18n-test-app/source/localizable/partials/_greeting.es.erb
|
|
2064
2041
|
- fixtures/i18n-test-app/source/localizable/partials/index.html.erb
|
|
2042
|
+
- fixtures/i18n-test-app/source/localizable/tac.html.erb
|
|
2065
2043
|
- fixtures/i18n-test-app/source/password.txt
|
|
2066
2044
|
- fixtures/i18n-test-app/source/stylesheets/site.css
|
|
2067
2045
|
- fixtures/ignore-app/source/about.html.erb
|