Support Haml 4. Tests only run with Haml 4 now. Fixes #783
This commit is contained in:
parent
aa10991b78
commit
9057b7a85e
7 changed files with 45 additions and 57 deletions
4
Gemfile
4
Gemfile
|
@ -1,5 +1,8 @@
|
||||||
source :rubygems
|
source :rubygems
|
||||||
|
|
||||||
|
# Make sure to use Haml 4 for tests
|
||||||
|
gem "haml", "~> 4.0.0"
|
||||||
|
|
||||||
# Build and doc tools
|
# Build and doc tools
|
||||||
gem "rake", "~> 10.0.3"
|
gem "rake", "~> 10.0.3"
|
||||||
gem "yard", "~> 0.8.0"
|
gem "yard", "~> 0.8.0"
|
||||||
|
@ -13,7 +16,6 @@ gem "rspec", "~> 2.12"
|
||||||
# Optional middleman dependencies, included for tests
|
# Optional middleman dependencies, included for tests
|
||||||
gem "sinatra"
|
gem "sinatra"
|
||||||
gem "slim", "~> 1.2.0"
|
gem "slim", "~> 1.2.0"
|
||||||
gem "coffee-filter", "~> 0.1.1"
|
|
||||||
gem "liquid", "~> 2.2"
|
gem "liquid", "~> 2.2"
|
||||||
gem "less", "~> 2.2"
|
gem "less", "~> 2.2"
|
||||||
gem "stylus", "~> 0.6.2"
|
gem "stylus", "~> 0.6.2"
|
||||||
|
|
|
@ -11,25 +11,29 @@ module Middleman
|
||||||
class << self
|
class << self
|
||||||
# Once registered
|
# Once registered
|
||||||
def registered(app)
|
def registered(app)
|
||||||
app.before_configuration do
|
|
||||||
template_extensions :coffee => :js
|
|
||||||
end
|
|
||||||
|
|
||||||
# Tell Tilt to use it as well (for inline scss blocks)
|
# Tell Tilt to use it as well (for inline scss blocks)
|
||||||
::Tilt.register 'coffee', DebuggingCoffeeScriptTemplate
|
::Tilt.register 'coffee', DebuggingCoffeeScriptTemplate
|
||||||
::Tilt.prefer(DebuggingCoffeeScriptTemplate)
|
::Tilt.prefer(DebuggingCoffeeScriptTemplate)
|
||||||
|
|
||||||
|
app.before_configuration do
|
||||||
|
template_extensions :coffee => :js
|
||||||
|
DebuggingCoffeeScriptTemplate.middleman_app = self
|
||||||
|
end
|
||||||
end
|
end
|
||||||
alias :included :registered
|
alias :included :registered
|
||||||
end
|
end
|
||||||
|
|
||||||
# A Template for Tilt which outputs debug messages
|
# A Template for Tilt which outputs debug messages
|
||||||
class DebuggingCoffeeScriptTemplate < ::Tilt::CoffeeScriptTemplate
|
class DebuggingCoffeeScriptTemplate < ::Tilt::CoffeeScriptTemplate
|
||||||
|
# Make the current Middleman app accessible to the template
|
||||||
|
cattr_accessor :middleman_app
|
||||||
|
|
||||||
# Add exception messaging
|
# Add exception messaging
|
||||||
# @param [Class] context
|
# @param [Class] context
|
||||||
# @param [Hash] locals
|
# @param [Hash] locals
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def evaluate(context, locals, &block)
|
def evaluate(context, locals, &block)
|
||||||
return super if context.build?
|
return super if middleman_app.build?
|
||||||
|
|
||||||
begin
|
begin
|
||||||
super
|
super
|
||||||
|
|
|
@ -53,13 +53,11 @@ Feature: Minify CSS
|
||||||
When I go to "/inline-css.html"
|
When I go to "/inline-css.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<style type='text/css'>
|
<style>
|
||||||
/*<![CDATA[*/
|
|
||||||
body {
|
body {
|
||||||
test: style;
|
test: style;
|
||||||
good: deal;
|
good: deal;
|
||||||
}
|
}
|
||||||
/*]]>*/
|
|
||||||
</style>
|
</style>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -83,7 +81,7 @@ Feature: Minify CSS
|
||||||
When I go to "/inline-css.html"
|
When I go to "/inline-css.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<style type='text/css'>
|
<style>
|
||||||
body {
|
body {
|
||||||
test: style;
|
test: style;
|
||||||
good: deal; }
|
good: deal; }
|
||||||
|
@ -108,7 +106,7 @@ Feature: Minify CSS
|
||||||
When I go to "/inline-css.html"
|
When I go to "/inline-css.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<style type='text/css'>
|
<style>
|
||||||
Hello
|
Hello
|
||||||
</style>
|
</style>
|
||||||
"""
|
"""
|
||||||
|
@ -123,9 +121,7 @@ Feature: Minify CSS
|
||||||
When I go to "/inline-css.html"
|
When I go to "/inline-css.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<style type='text/css'>
|
<style>
|
||||||
/*<![CDATA[*/
|
|
||||||
body{test:style;good:deal}
|
body{test:style;good:deal}
|
||||||
/*]]>*/
|
|
||||||
</style>
|
</style>
|
||||||
"""
|
"""
|
|
@ -10,15 +10,13 @@ Feature: Minify Javascript
|
||||||
When I go to "/inline-js.html"
|
When I go to "/inline-js.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<script type='text/javascript'>
|
<script>
|
||||||
//<![CDATA[
|
|
||||||
;(function() {
|
;(function() {
|
||||||
this;
|
this;
|
||||||
should();
|
should();
|
||||||
all.be();
|
all.be();
|
||||||
on = { one: line };
|
on = { one: line };
|
||||||
})();
|
})();
|
||||||
//]]>
|
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
;(function() {
|
;(function() {
|
||||||
|
@ -61,15 +59,13 @@ Feature: Minify Javascript
|
||||||
When I go to "/inline-js.html"
|
When I go to "/inline-js.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<script type='text/javascript'>
|
<script>
|
||||||
//<![CDATA[
|
|
||||||
;(function() {
|
;(function() {
|
||||||
this;
|
this;
|
||||||
should();
|
should();
|
||||||
all.be();
|
all.be();
|
||||||
on = { one: line };
|
on = { one: line };
|
||||||
})();
|
})();
|
||||||
//]]>
|
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
;(function() {
|
;(function() {
|
||||||
|
@ -110,10 +106,8 @@ Feature: Minify Javascript
|
||||||
When I go to "/inline-js.html"
|
When I go to "/inline-js.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<script type='text/javascript'>
|
<script>
|
||||||
//<![CDATA[
|
|
||||||
Hello
|
Hello
|
||||||
//]]>
|
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
Hello
|
Hello
|
||||||
|
@ -138,10 +132,8 @@ Feature: Minify Javascript
|
||||||
When I go to "/inline-js.html"
|
When I go to "/inline-js.html"
|
||||||
Then I should see:
|
Then I should see:
|
||||||
"""
|
"""
|
||||||
<script type='text/javascript'>
|
<script>
|
||||||
//<![CDATA[
|
|
||||||
(function(){this,should(),all.be(),on={one:line}})();
|
(function(){this,should(),all.be(),on={one:line}})();
|
||||||
//]]>
|
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
(function(){this,should(),too()})();
|
(function(){this,should(),too()})();
|
||||||
|
@ -177,12 +169,11 @@ Feature: Minify Javascript
|
||||||
Given a fixture app "minify-js-app"
|
Given a fixture app "minify-js-app"
|
||||||
And a file named "config.rb" with:
|
And a file named "config.rb" with:
|
||||||
"""
|
"""
|
||||||
require "coffee-filter"
|
|
||||||
activate :minify_javascript, :inline => true
|
activate :minify_javascript, :inline => true
|
||||||
"""
|
"""
|
||||||
And the Server is running at "minify-js-app"
|
And the Server is running at "minify-js-app"
|
||||||
When I go to "/inline-coffeescript.html"
|
When I go to "/inline-coffeescript.html"
|
||||||
Then I should see "6" lines
|
Then I should see "3" lines
|
||||||
|
|
||||||
Scenario: Rendering external js (coffeescript) with the feature enabled
|
Scenario: Rendering external js (coffeescript) with the feature enabled
|
||||||
Given a fixture app "minify-js-app"
|
Given a fixture app "minify-js-app"
|
||||||
|
@ -198,8 +189,6 @@ Feature: Minify Javascript
|
||||||
Given a fixture app "passthrough-app"
|
Given a fixture app "passthrough-app"
|
||||||
And a file named "config.rb" with:
|
And a file named "config.rb" with:
|
||||||
"""
|
"""
|
||||||
require "coffee-filter"
|
|
||||||
|
|
||||||
module ::PassThrough
|
module ::PassThrough
|
||||||
def self.compress(data)
|
def self.compress(data)
|
||||||
data
|
data
|
||||||
|
@ -214,7 +203,7 @@ Feature: Minify Javascript
|
||||||
"""
|
"""
|
||||||
And the Server is running at "passthrough-app"
|
And the Server is running at "passthrough-app"
|
||||||
When I go to "/inline-coffeescript.html"
|
When I go to "/inline-coffeescript.html"
|
||||||
Then I should see "16" lines
|
Then I should see "13" lines
|
||||||
|
|
||||||
Scenario: Rendering external js (coffeescript) with a passthrough minifier
|
Scenario: Rendering external js (coffeescript) with a passthrough minifier
|
||||||
Given a fixture app "passthrough-app"
|
Given a fixture app "passthrough-app"
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
require "coffee-filter"
|
|
|
@ -1 +0,0 @@
|
||||||
require "coffee-filter"
|
|
|
@ -1,4 +1,3 @@
|
||||||
%style(type="text/css")
|
|
||||||
:sass
|
:sass
|
||||||
body
|
body
|
||||||
test: style
|
test: style
|
||||||
|
|
Loading…
Reference in a new issue