middleman-core 4.2.1 → 4.3.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/features/asset_hash.feature +10 -10
  3. data/features/builder.feature +1 -1
  4. data/features/chained_templates.feature +7 -0
  5. data/features/console.feature +1 -1
  6. data/features/extension_api_deprecations.feature +1 -3
  7. data/features/extension_hooks.feature +1 -3
  8. data/features/i18n_link_to.feature +23 -0
  9. data/features/i18n_preview.feature +5 -1
  10. data/features/ignore.feature +67 -11
  11. data/features/minify_javascript.feature +34 -34
  12. data/features/mount_rack.feature +1 -0
  13. data/features/relative_assets_helpers_only.feature +4 -4
  14. data/features/support/env.rb +2 -5
  15. data/fixtures/chained-app/source/stylesheets/main.css.scss.erb +3 -0
  16. data/fixtures/chained-app/source/stylesheets/sub.scss +1 -0
  17. data/fixtures/generator-test/config.rb +0 -14
  18. data/fixtures/i18n-test-app/locales/en.yml +7 -1
  19. data/fixtures/i18n-test-app/locales/es.yml +2 -1
  20. data/fixtures/i18n-test-app/source/localizable/tac.html.erb +1 -0
  21. data/lib/middleman-core/application.rb +4 -3
  22. data/lib/middleman-core/builder.rb +1 -1
  23. data/lib/middleman-core/core_extensions/data.rb +1 -1
  24. data/lib/middleman-core/core_extensions/i18n.rb +18 -5
  25. data/lib/middleman-core/extension.rb +5 -4
  26. data/lib/middleman-core/extension_manager.rb +5 -1
  27. data/lib/middleman-core/extensions/minify_javascript.rb +1 -1
  28. data/lib/middleman-core/preview_server.rb +2 -1
  29. data/lib/middleman-core/renderers/haml.rb +7 -0
  30. data/lib/middleman-core/renderers/liquid.rb +1 -1
  31. data/lib/middleman-core/sitemap/store.rb +2 -2
  32. data/lib/middleman-core/step_definitions/builder_steps.rb +26 -0
  33. data/lib/middleman-core/step_definitions/commandline_steps.rb +4 -4
  34. data/lib/middleman-core/step_definitions/server_steps.rb +1 -1
  35. data/lib/middleman-core/template_renderer.rb +2 -2
  36. data/lib/middleman-core/util/data.rb +0 -1
  37. data/lib/middleman-core/version.rb +1 -1
  38. data/middleman-core.gemspec +7 -9
  39. data/spec/spec_helper.rb +1 -6
  40. metadata +21 -43
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27623f60c1192955ffca53ed17a11b631703a18c
4
- data.tar.gz: 5e6f125ef24be52c4c1baff0047dbe188abec888
3
+ metadata.gz: 52f86ed81089423f830d056b3618e36218d4e478
4
+ data.tar.gz: a70572a4e9e68a10ce50860dee7b1bbf012e38d7
5
5
  SHA512:
6
- metadata.gz: a72cb26efa7fb14c1e76c7c37ce7d82adc6f31e4d2467642611fc94a67a22e890ea9714c522e110c2ae7c32ade3192771cd9687981690380a75a98d630cc1096
7
- data.tar.gz: fce5b0d259c3069ef44acc2a1dd1649ea277e37384a7b8bbab20da3a982803ff09b08b496abda03e5c927eae89b289bae772dda07fff24c30014e640cafe21ea
6
+ metadata.gz: f9e6f7ff55b3a7cfb86f966a1ba8c2bdfcbef8481ffcbcfce66d46febd5ad8edd297f813bf1e4e7ccc1b7fd6258a1271752f22180983d9a9ca9d0a2057d0518b
7
+ data.tar.gz: e27b12b8c5888a6b5eacd3bf9ae72c7d6b370b09ecc3c71182cf2a4f1f18b1a33347f60b81ee3a17556f7a7a6d8b7ae3ab89de3e14eda4f08ef40b8dac3da071
@@ -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-d1a750ca.css"'
67
- And I should see 'href="stylesheets/fragment-99b76247.css"'
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-d1a750ca.css"'
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-d1a750ca.css"'
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-d1a750ca.css"
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-99b76247.css"
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-4d4e34e6.css'
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-ec347271.css'
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-5ad7def0.css'
204
- When I go to "stylesheets/site-5ad7def0.css"
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
 
@@ -41,7 +41,7 @@ Feature: Builder
41
41
 
42
42
  Scenario: Build empty errors
43
43
  Given a built app at "empty-app"
44
- Then the exit status should be 1
44
+ Then was not successfully built
45
45
 
46
46
  Scenario: Build external_pipeline errors
47
47
  Given a built app at "external-pipeline-error"
@@ -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"
@@ -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 `middleman console` interactively
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 fixture app "extension-api-deprecations-app"
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 fixture app "extension-hooks-app"
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"
@@ -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
- | build/index.html |
12
+ | index.html |
12
13
  And the following files should not exist:
13
- | build/plain.html |
14
- | build/about.html |
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
- | build/plain.html |
71
- | build/images/portrait.jpg |
72
- | build/images/pic.png |
72
+ | plain.html |
73
+ | images/portrait.jpg |
74
+ | images/pic.png |
73
75
  And the following files should not exist:
74
- | build/about.html |
75
- | build/index.html |
76
- | build/reports/index.html |
77
- | build/reports/another.html |
78
- | build/images/icons/messages.png |
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
- ;(function() {
23
- this;
24
- should();
25
- too();
26
- })();
22
+ ;(function() {
23
+ this;
24
+ should();
25
+ too();
26
+ })();
27
27
  </script>
28
28
  <script type='text/javascript'>
29
- //<!--
30
- ;(function() {
31
- one;
32
- line();
33
- here();
34
- })();
35
- //-->
29
+ //<!--
30
+ ;(function() {
31
+ one;
32
+ line();
33
+ here();
34
+ })();
35
+ //-->
36
36
  </script>
37
37
  <script type='text/html'>
38
- I'm a jQuery {{template}}.
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
- ;(function() {
70
- this;
71
- should();
72
- too();
73
- })();
69
+ ;(function() {
70
+ this;
71
+ should();
72
+ too();
73
+ })();
74
74
  </script>
75
75
  <script type='text/javascript'>
76
- //<!--
77
- ;(function() {
78
- one;
79
- line();
80
- here();
81
- })();
82
- //-->
76
+ //<!--
77
+ ;(function() {
78
+ one;
79
+ line();
80
+ here();
81
+ })();
82
+ //-->
83
83
  </script>
84
84
  <script type='text/html'>
85
- I'm a jQuery {{template}}.
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
- Hello
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
- I'm a jQuery {{template}}.
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
- !function(){should(),too()}();
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
- I'm a jQuery {{template}}.
145
+ I'm a jQuery {{template}}.
146
146
  </script>
147
147
  """
148
148
 
@@ -1,3 +1,4 @@
1
+ @wip
1
2
  Feature: Support Rack apps mounted using map
2
3
 
3
4
  Scenario: Mounted Rack App at /sinatra
@@ -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/relative_assets.css.sass.erb" with:
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/relative_assets.css"
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/relative_assets.css.sass.erb" with:
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/relative_assets.css"
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'
@@ -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 'coveralls'
12
- Coveralls.wear!
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,3 @@
1
+ @import 'sub';
2
+
3
+ <%= 'body { color: from_main; }' %>
@@ -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
@@ -1,4 +1,10 @@
1
1
  ---
2
2
  en:
3
+ paths:
4
+ hello: "hello"
5
+ morning: "morning"
6
+ tac: "terms-and-conditions"
7
+
3
8
  greetings: "Howdy"
4
- hi: "Hello"
9
+ hi: "Hello"
10
+ tac: "Terms & Conditions"
@@ -4,6 +4,7 @@ es:
4
4
  hello: "hola"
5
5
  morning: "manana"
6
6
  one: "una"
7
-
7
+
8
8
  greetings: "Como Esta?"
9
9
  hi: "Hola"
10
+ tac: "Condiciones Generales"
@@ -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.lazy_map.each_key do |key|
348
+ mapping = ::Tilt.default_mapping
349
+ mapping.lazy_map.each_key do |key|
349
350
  begin
350
- ::Tilt[".#{key}"]
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
@@ -184,8 +184,8 @@ module Middleman
184
184
  ])
185
185
  file.binmode
186
186
  file.write(contents)
187
- file.close
188
187
  File.chmod(0o644, file)
188
+ file.close
189
189
  file
190
190
  end
191
191
 
@@ -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.join(app.root, dir),
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
- lookup_path = path.dup
198
- lookup_path << app.config[:index_file] if lookup_path.end_with?('/')
199
-
200
- @lookup[lookup_path] && @lookup[lookup_path][locale]
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, fallback: [])
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 @activated.key?(ext_name)
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
- $stderr.puts %(== Port "#{http_opts[:Port]}" is in use. This should not have happened. Please start "middleman server" again.)
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 unescape(@interactive.output) =~ Regexp.new(unescape(expected))
8
- only_processes.each { |p| p.terminate }
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
- only_processes.each { |p| p.terminate }
83
+ all_commands.each { |p| p.terminate }
84
84
  end
85
85
 
86
86
  Before '@ruby-2.1' do
@@ -54,7 +54,7 @@ Given /^the Server is running$/ do
54
54
 
55
55
  app.after_configuration_eval do
56
56
  activation_commands.each do |p|
57
- config_context.instance_exec(&p)
57
+ app.config_context.instance_exec(&p)
58
58
  end
59
59
  end
60
60
  end
@@ -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 = File.basename(path, File.extname(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
@@ -1,7 +1,6 @@
1
1
  require 'yaml'
2
2
  require 'json'
3
3
  require 'pathname'
4
- require 'backports/2.1.0/array/to_h'
5
4
  require 'hashie'
6
5
  require 'memoist'
7
6
 
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  # Current Version
3
3
  # @return [String]
4
- VERSION = '4.2.1'.freeze unless const_defined?(:VERSION)
4
+ VERSION = '4.3.0.rc.1'.freeze unless const_defined?(:VERSION)
5
5
  end
@@ -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, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache busting, Yaml data (and more) an easy part of your development cycle.'
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.1'])
31
+ s.add_dependency('activesupport', ['>= 4.2', '< 5.2'])
33
32
  s.add_dependency('padrino-helpers', ['~> 0.13.0'])
34
- s.add_dependency("addressable", ["~> 2.3"])
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.0'])
37
+ s.add_dependency('listen', ['~> 3.0'])
39
38
 
40
39
  # Tests
41
- s.add_development_dependency("capybara", ["~> 2.5.0"])
40
+ s.add_development_dependency('capybara', ['~> 2.5.0'])
42
41
 
43
42
  # i18n
44
- s.add_dependency('i18n', ['~> 0.7.0'])
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.0'])
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.2.1
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: 2017-01-26 00:00:00.000000000 Z
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.1'
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.1'
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.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.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.0
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.0
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.0
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.0
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, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache
351
- busting, Yaml data (and more) an easy part of your development cycle.
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: '0'
1538
+ version: 1.3.1
1564
1539
  requirements: []
1565
1540
  rubyforge_project:
1566
- rubygems_version: 2.5.1
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