tilt 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -1
- data/Gemfile +35 -15
- data/README.md +57 -37
- data/Rakefile +23 -13
- data/bin/tilt +16 -6
- data/docs/TEMPLATES.md +1 -0
- data/lib/tilt.rb +25 -3
- data/lib/tilt/babel.rb +15 -0
- data/lib/tilt/coffee.rb +11 -0
- data/lib/tilt/csv.rb +6 -6
- data/lib/tilt/haml.rb +3 -2
- data/lib/tilt/kramdown.rb +0 -8
- data/lib/tilt/less.rb +0 -8
- data/lib/tilt/liquid.rb +1 -1
- data/lib/tilt/plain.rb +0 -4
- data/lib/tilt/prawn.rb +43 -0
- data/lib/tilt/redcarpet.rb +5 -26
- data/lib/tilt/template.rb +11 -2
- data/man/index.txt +2 -0
- data/man/tilt.1.ronn +59 -0
- data/test/tilt_asciidoctor_test.rb +10 -4
- data/test/tilt_babeltemplate.rb +33 -0
- data/test/tilt_cache_test.rb +11 -0
- data/test/tilt_coffeescripttemplate_test.rb +115 -78
- data/test/tilt_csv_test.rb +12 -0
- data/test/tilt_hamltemplate_test.rb +22 -0
- data/test/tilt_markdown_test.rb +5 -2
- data/test/tilt_prawntemplate.prawn +1 -0
- data/test/tilt_prawntemplate_test.rb +75 -0
- data/test/tilt_redcarpettemplate_test.rb +0 -5
- data/test/tilt_template_test.rb +6 -14
- data/test/tilt_wikiclothtemplate_test.rb +2 -2
- data/tilt.gemspec +9 -2
- metadata +11 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 647ea82bd6b21c9160337188c95afa692d468048
|
4
|
+
data.tar.gz: fe4a38e1124fc88439048033b73ac69c9e26dabc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eeb600f8917fef64a15ae0e595afc9e6a99558be4118ca7b96ce81701159061835fe0103d0320a0f82419b553d215fc1961543abb59789273be9514e43b5ae6
|
7
|
+
data.tar.gz: a75cb1d660582518e2512a01da3b9c3ed917b48cea59680752570be482f6db17e79d1d6e2b2225e25c0f96977c5c37acab2e11eda8941883bebd5d20192c67f2
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,16 @@
|
|
1
|
-
##
|
1
|
+
## 2.0.2 (2016-01-06)
|
2
|
+
|
3
|
+
* Pass options to Redcarpet (#250, hughbien)
|
4
|
+
* Haml: Improve error message on frozen self (judofyr)
|
5
|
+
* Add basic support for Babel (judofyr)
|
6
|
+
* Add support for .litcoffee (#243, judofyr, mr-vinn)
|
7
|
+
* Document Tilt::Cache (#266, tommay)
|
8
|
+
* Sort local keys for better caching (#257, jeremyevans)
|
9
|
+
* Add more CSV options (#256, Juanmcuello)
|
10
|
+
* Add Prawn template (kematzy)
|
11
|
+
* Improve cache-miss performance in Tilt::Cache (#251, tommay)
|
12
|
+
* Add man page (#241, josephholsten)
|
13
|
+
* Support YAML/JSON data in bin/tilt (#241, josephholsten)
|
2
14
|
|
3
15
|
## 2.0.1 (2014-03-21)
|
4
16
|
|
data/Gemfile
CHANGED
@@ -1,27 +1,48 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem '
|
3
|
+
gem 'rake'
|
4
4
|
gem 'minitest', '~> 5.0'
|
5
5
|
|
6
|
-
|
6
|
+
group :development do
|
7
|
+
gem 'yard', '~> 0.8.6'
|
8
|
+
gem 'ronn', '~> 0.7.3'
|
9
|
+
end
|
7
10
|
|
8
|
-
|
9
|
-
|
11
|
+
can_execjs = (RUBY_VERSION >= '1.9.3')
|
12
|
+
|
13
|
+
group :primary do
|
10
14
|
gem 'builder'
|
11
|
-
gem 'coffee-script'
|
12
|
-
gem 'contest'
|
13
|
-
gem 'creole'
|
14
|
-
gem 'erubis'
|
15
15
|
gem 'haml', '>= 2.2.11', '< 4'
|
16
|
+
gem 'erubis'
|
17
|
+
gem 'markaby'
|
18
|
+
gem 'sass'
|
19
|
+
|
20
|
+
if can_execjs
|
21
|
+
gem 'less'
|
22
|
+
gem 'coffee-script'
|
23
|
+
gem 'babel-transpiler'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
platform :mri do
|
28
|
+
gem 'duktape', '~> 1.2.1.0' if can_execjs
|
29
|
+
end
|
30
|
+
|
31
|
+
group :secondary do
|
32
|
+
gem 'creole'
|
16
33
|
gem 'kramdown'
|
17
|
-
gem '
|
34
|
+
gem 'rdoc'
|
35
|
+
gem 'radius'
|
36
|
+
gem 'asciidoctor', '>= 0.1.0'
|
18
37
|
gem 'liquid'
|
19
|
-
gem 'markaby'
|
20
38
|
gem 'maruku'
|
39
|
+
|
40
|
+
if RUBY_VERSION > '1.9.3'
|
41
|
+
gem 'prawn', '>= 2.0.0'
|
42
|
+
gem 'pdf-reader', '~> 1.3.3'
|
43
|
+
end
|
44
|
+
|
21
45
|
gem 'nokogiri' if RUBY_VERSION > '1.9.2'
|
22
|
-
gem 'radius'
|
23
|
-
gem 'sass'
|
24
|
-
gem 'rdoc', (ENV['RDOC_VERSION'] || '> 0')
|
25
46
|
|
26
47
|
platform :ruby do
|
27
48
|
gem 'wikicloth'
|
@@ -32,8 +53,7 @@ group :engines do
|
|
32
53
|
end
|
33
54
|
|
34
55
|
platform :mri do
|
35
|
-
gem '
|
36
|
-
gem 'bluecloth' if ENV['BLUECLOTH']
|
56
|
+
gem 'bluecloth'
|
37
57
|
end
|
38
58
|
end
|
39
59
|
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Tilt [![Build Status](https://secure.travis-ci.org/rtomayko/tilt.
|
1
|
+
Tilt [![Build Status](https://secure.travis-ci.org/rtomayko/tilt.svg)](http://travis-ci.org/rtomayko/tilt) [![Dependency Status](https://gemnasium.com/rtomayko/tilt.png)](https://gemnasium.com/rtomayko/tilt) [![Inline docs](http://inch-ci.org/github/rtomayko/tilt.png)](http://inch-ci.org/github/rtomayko/tilt)
|
2
2
|
====
|
3
3
|
|
4
4
|
**NOTE** The following file documents the current release of Tilt (2.0). See
|
@@ -24,44 +24,64 @@ template engines included in the distribution.
|
|
24
24
|
|
25
25
|
Support for these template engines is included with the package:
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
27
|
+
| Engine | File Extensions | Required Libraries | Maintainer |
|
28
|
+
| ----------------------- | ---------------------- | ------------------------------------------ | ----------- |
|
29
|
+
| Asciidoctor | .ad, .adoc, .asciidoc | asciidoctor (>= 0.1.0) | Community |
|
30
|
+
| ERB | .erb, .rhtml | none (included ruby stdlib) | Tilt team |
|
31
|
+
| InterpolatedString | .str | none (included ruby core) | Tilt team |
|
32
|
+
| Erubis | .erb, .rhtml, .erubis | erubis | Tilt team |
|
33
|
+
| Haml | .haml | haml | Tilt team |
|
34
|
+
| Sass | .sass | haml (< 3.1) or sass (>= 3.1) | Tilt team |
|
35
|
+
| Scss | .scss | haml (< 3.1) or sass (>= 3.1) | Tilt team |
|
36
|
+
| Less CSS | .less | less | Tilt team |
|
37
|
+
| Builder | .builder | builder | Tilt team |
|
38
|
+
| Liquid | .liquid | liquid | Community |
|
39
|
+
| RDiscount | .markdown, .mkd, .md | rdiscount | Community |
|
40
|
+
| Redcarpet | .markdown, .mkd, .md | redcarpet | Community |
|
41
|
+
| BlueCloth | .markdown, .mkd, .md | bluecloth | Community |
|
42
|
+
| Kramdown | .markdown, .mkd, .md | kramdown | Community |
|
43
|
+
| Maruku | .markdown, .mkd, .md | maruku | Community |
|
44
|
+
| RedCloth | .textile | redcloth | Community |
|
45
|
+
| RDoc | .rdoc | rdoc | Tilt team |
|
46
|
+
| Radius | .radius | radius | Community |
|
47
|
+
| Markaby | .mab | markaby | Tilt team |
|
48
|
+
| Nokogiri | .nokogiri | nokogiri | Community |
|
49
|
+
| CoffeeScript | .coffee | coffee-script (+ javascript) | Tilt team |
|
50
|
+
| CoffeeScript (literate) | .litcoffee | coffee-script (>= 1.5.0) (+ javascript) | Tilt team |
|
51
|
+
| Creole (Wiki markup) | .wiki, .creole | creole | Community |
|
52
|
+
| WikiCloth (Wiki markup) | .wiki, .mediawiki, .mw | wikicloth | Community |
|
53
|
+
| Yajl | .yajl | yajl-ruby | Community |
|
54
|
+
| CSV | .rcsv | none (Ruby >= 1.9), fastercsv (Ruby < 1.9) | Tilt team |
|
55
|
+
| Prawn | .prawn | prawn (>= 2.0.0) | Community |
|
56
|
+
| Babel | .es6, .babel, .jsx | babel-transpiler | Tilt team |
|
57
|
+
| Opal | .rb | opal | Community |
|
58
|
+
|
59
|
+
Every supported template engine has a *maintainer*. Note that this is the
|
60
|
+
maintainer of the Tilt integration, not the maintainer of the template engine
|
61
|
+
itself. The maintainer is responsible for providing an adequate integration and
|
62
|
+
keeping backwards compatibility across Tilt version. Some integrations are
|
63
|
+
maintained by the *community*, which is handled in the following way:
|
64
|
+
|
65
|
+
- The Tilt team will liberally accept pull requests against the template
|
66
|
+
integration. It's up the community as a whole to make sure the integration
|
67
|
+
stays consistent and backwards compatible over time.
|
68
|
+
- Test failures in community-maintained integrations will not be prioritized by
|
69
|
+
the Tilt team and a new version of Tilt might be released even though these
|
70
|
+
tests are failing.
|
71
|
+
- Anyone can become a maintainer for a template engine integration they care
|
72
|
+
about. Just open an issue and we'll figure it out.
|
54
73
|
|
55
74
|
These template engines ship with their own Tilt integration:
|
56
75
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
76
|
+
| Engine | File Extensions | Required Libraries |
|
77
|
+
| ------------------- | ---------------- | ------------------- |
|
78
|
+
| Slim | .slim | slim (>= 0.7) |
|
79
|
+
| Embedded JavaScript | | sprockets |
|
80
|
+
| Embedded CoffeeScript | | sprockets |
|
81
|
+
| JST | | sprockets |
|
82
|
+
| Org-mode | .org | org-ruby (>= 0.6.2) |
|
83
|
+
| Handlebars | .hbs, handlebars | tilt-handlebars |
|
84
|
+
| Jbuilder | .jbuilder | tilt-jbuilder |
|
65
85
|
|
66
86
|
See [TEMPLATES.md][t] for detailed information on template engine
|
67
87
|
options and supported features.
|
@@ -77,7 +97,7 @@ Instant gratification:
|
|
77
97
|
require 'erb'
|
78
98
|
require 'tilt'
|
79
99
|
template = Tilt.new('templates/foo.erb')
|
80
|
-
=> #<Tilt::ERBTemplate @file="templates/foo.
|
100
|
+
=> #<Tilt::ERBTemplate @file="templates/foo.erb" ...>
|
81
101
|
output = template.render
|
82
102
|
=> "Hello world!"
|
83
103
|
|
data/Rakefile
CHANGED
@@ -15,19 +15,29 @@ end
|
|
15
15
|
|
16
16
|
# DOCUMENTATION =============================================================
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
18
|
+
begin
|
19
|
+
require 'yard'
|
20
|
+
YARD::Rake::YardocTask.new do |t|
|
21
|
+
t.files = [
|
22
|
+
'lib/tilt.rb', 'lib/tilt/mapping.rb', 'lib/tilt/template.rb',
|
23
|
+
'-',
|
24
|
+
'*.md', 'docs/*.md',
|
25
|
+
]
|
26
|
+
|
27
|
+
t.options <<
|
28
|
+
'--no-private' <<
|
29
|
+
'--protected' <<
|
30
|
+
'-m' << 'markdown' <<
|
31
|
+
'--asset' << 'docs/common.css:css/common.css'
|
32
|
+
end
|
33
|
+
rescue LoadError
|
34
|
+
end
|
35
|
+
|
36
|
+
task :man do
|
37
|
+
require 'ronn'
|
38
|
+
ENV['RONN_MANUAL'] = "Tilt Manual"
|
39
|
+
ENV['RONN_ORGANIZATION'] = "Tilt #{SPEC.version}"
|
40
|
+
sh "ronn -w -s toc -r5 --markdown man/*.ronn"
|
31
41
|
end
|
32
42
|
|
33
43
|
# PACKAGING =================================================================
|
data/bin/tilt
CHANGED
@@ -10,14 +10,15 @@ when <file> is '-', read template from stdin and use the --type option
|
|
10
10
|
to determine the template's type.
|
11
11
|
|
12
12
|
Options
|
13
|
-
-l, --list
|
14
|
-
-t, --type=<pattern>
|
15
|
-
-y, --layout=<file>
|
13
|
+
-l, --list List template engines + file patterns and exit
|
14
|
+
-t, --type=<pattern> Use this template engine; required if no <file>
|
15
|
+
-y, --layout=<file> Use <file> as a layout template
|
16
16
|
|
17
|
-
-D<name>=<value>
|
18
|
-
--
|
17
|
+
-D<name>=<value> Define variable <name> as <value>
|
18
|
+
-d, --define-file=<file> Load YAML from <file> and use for variables
|
19
|
+
--vars=<ruby> Evaluate <ruby> to Hash and use for variables
|
19
20
|
|
20
|
-
-h, --help
|
21
|
+
-h, --help Show this help message
|
21
22
|
|
22
23
|
Convert markdown to HTML:
|
23
24
|
$ tilt foo.markdown > foo.html
|
@@ -77,6 +78,15 @@ ARGV.options do |o|
|
|
77
78
|
locals[key.to_sym] = value
|
78
79
|
end
|
79
80
|
|
81
|
+
# define local variables from YAML or JSON
|
82
|
+
o.on("-d", "--define-file=FILE", String) do |file|
|
83
|
+
require 'yaml'
|
84
|
+
abort "no such define file: #{file}" unless File.exist? file
|
85
|
+
hash = File.open(file, 'r:bom|utf-8') { |f| YAML.load f, file }
|
86
|
+
abort "vars must be a Hash, not #{hash.inspect}" if !hash.is_a?(Hash)
|
87
|
+
hash.each { |key, value| locals[key.to_sym] = value }
|
88
|
+
end
|
89
|
+
|
80
90
|
# define local variables using a Ruby hash
|
81
91
|
o.on("--vars=RUBY") do |ruby|
|
82
92
|
hash = eval(ruby)
|
data/docs/TEMPLATES.md
CHANGED
@@ -31,6 +31,7 @@ Tilt also includes support for CSS processors like [LessCSS][lesscss] and
|
|
31
31
|
* Sass - `Tilt::SassTemplate`
|
32
32
|
* Scss - `Tilt::ScssTemplate`
|
33
33
|
* CoffeeScript - `Tilt::CoffeeScriptTemplate`
|
34
|
+
* Literate CoffeeScript - `Tilt::CoffeeScriptLiterateTemplate`
|
34
35
|
* [Textile](#redcloth) - `Tilt::RedClothTemplate`
|
35
36
|
* Creole - `Tilt::CreoleTemplate`
|
36
37
|
* [RDoc](#rdoc) - `Tilt::RDocTemplate`
|
data/lib/tilt.rb
CHANGED
@@ -4,7 +4,7 @@ require 'tilt/template'
|
|
4
4
|
# Namespace for Tilt. This module is not intended to be included anywhere.
|
5
5
|
module Tilt
|
6
6
|
# Current version.
|
7
|
-
VERSION = '2.0.
|
7
|
+
VERSION = '2.0.2'
|
8
8
|
|
9
9
|
@default_mapping = Mapping.new
|
10
10
|
|
@@ -78,14 +78,31 @@ module Tilt
|
|
78
78
|
# cache.fetch(path, line, options) { Tilt.new(path, line, options) }
|
79
79
|
#
|
80
80
|
# Subsequent invocations return the already loaded template object.
|
81
|
+
#
|
82
|
+
# @note
|
83
|
+
# Tilt::Cache is a thin wrapper around Hash. It has the following
|
84
|
+
# limitations:
|
85
|
+
# * Not thread-safe.
|
86
|
+
# * Size is unbounded.
|
87
|
+
# * Keys are not copied defensively, and should not be modified after
|
88
|
+
# being passed to #fetch. More specifically, the values returned by
|
89
|
+
# key#hash and key#eql? should not change.
|
90
|
+
# If this is too limiting for you, use a different cache implementation.
|
81
91
|
class Cache
|
82
92
|
def initialize
|
83
93
|
@cache = {}
|
84
94
|
end
|
85
95
|
|
86
|
-
#
|
96
|
+
# Caches a value for key, or returns the previously cached value.
|
97
|
+
# If a value has been previously cached for key then it is
|
98
|
+
# returned. Otherwise, block is yielded to and its return value
|
99
|
+
# which may be nil, is cached under key and returned.
|
100
|
+
# @yield
|
101
|
+
# @yieldreturn the value to cache for key
|
87
102
|
def fetch(*key)
|
88
|
-
@cache
|
103
|
+
@cache.fetch(key) do
|
104
|
+
@cache[key] = yield
|
105
|
+
end
|
89
106
|
end
|
90
107
|
|
91
108
|
# Clears the cache.
|
@@ -110,9 +127,11 @@ module Tilt
|
|
110
127
|
|
111
128
|
# Rest (sorted by name)
|
112
129
|
register_lazy :AsciidoctorTemplate, 'tilt/asciidoc', 'ad', 'adoc', 'asciidoc'
|
130
|
+
register_lazy :BabelTemplate, 'tilt/babel', 'es6', 'babel', 'jsx'
|
113
131
|
register_lazy :BuilderTemplate, 'tilt/builder', 'builder'
|
114
132
|
register_lazy :CSVTemplate, 'tilt/csv', 'rcsv'
|
115
133
|
register_lazy :CoffeeScriptTemplate, 'tilt/coffee', 'coffee'
|
134
|
+
register_lazy :CoffeeScriptLiterateTemplate, 'tilt/coffee', 'litcoffee'
|
116
135
|
register_lazy :CreoleTemplate, 'tilt/creole', 'wiki', 'creole'
|
117
136
|
register_lazy :EtanniTemplate, 'tilt/etanni', 'etn', 'etanni'
|
118
137
|
register_lazy :HamlTemplate, 'tilt/haml', 'haml'
|
@@ -121,6 +140,7 @@ module Tilt
|
|
121
140
|
register_lazy :MarkabyTemplate, 'tilt/markaby', 'mab'
|
122
141
|
register_lazy :NokogiriTemplate, 'tilt/nokogiri', 'nokogiri'
|
123
142
|
register_lazy :PlainTemplate, 'tilt/plain', 'html'
|
143
|
+
register_lazy :PrawnTemplate, 'tilt/prawn', 'prawn'
|
124
144
|
register_lazy :RDocTemplate, 'tilt/rdoc', 'rdoc'
|
125
145
|
register_lazy :RadiusTemplate, 'tilt/radius', 'radius'
|
126
146
|
register_lazy :RedClothTemplate, 'tilt/redcloth', 'textile'
|
@@ -134,4 +154,6 @@ module Tilt
|
|
134
154
|
register_lazy 'Slim::Template', 'slim', 'slim'
|
135
155
|
register_lazy 'Tilt::HandlebarsTemplate', 'tilt/handlebars', 'handlebars', 'hbs'
|
136
156
|
register_lazy 'Tilt::OrgTemplate', 'org-ruby', 'org'
|
157
|
+
register_lazy 'Opal::Processor', 'opal', 'opal', 'rb'
|
158
|
+
register_lazy 'Tilt::JbuilderTemplate', 'tilt/jbuilder', 'jbuilder'
|
137
159
|
end
|
data/lib/tilt/babel.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'tilt/template'
|
2
|
+
require 'babel/transpiler'
|
3
|
+
|
4
|
+
module Tilt
|
5
|
+
class BabelTemplate < Template
|
6
|
+
def prepare
|
7
|
+
options[:filename] ||= file
|
8
|
+
end
|
9
|
+
|
10
|
+
def evaluate(scope, locals, &block)
|
11
|
+
@output ||= Babel::Transpiler.transform(data)["code"]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
data/lib/tilt/coffee.rb
CHANGED
@@ -29,10 +29,15 @@ module Tilt
|
|
29
29
|
@@default_bare = value
|
30
30
|
end
|
31
31
|
|
32
|
+
def self.literate?
|
33
|
+
false
|
34
|
+
end
|
35
|
+
|
32
36
|
def prepare
|
33
37
|
if !options.key?(:bare) and !options.key?(:no_wrap)
|
34
38
|
options[:bare] = self.class.default_bare
|
35
39
|
end
|
40
|
+
options[:literate] ||= self.class.literate?
|
36
41
|
end
|
37
42
|
|
38
43
|
def evaluate(scope, locals, &block)
|
@@ -43,5 +48,11 @@ module Tilt
|
|
43
48
|
false
|
44
49
|
end
|
45
50
|
end
|
51
|
+
|
52
|
+
class CoffeeScriptLiterateTemplate < CoffeeScriptTemplate
|
53
|
+
def self.literate?
|
54
|
+
true
|
55
|
+
end
|
56
|
+
end
|
46
57
|
end
|
47
58
|
|
data/lib/tilt/csv.rb
CHANGED
@@ -45,15 +45,15 @@ module Tilt
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def prepare
|
48
|
-
@
|
49
|
-
#{self.class.engine}.generate do |csv|
|
50
|
-
#{data}
|
51
|
-
end
|
52
|
-
RUBY
|
48
|
+
@outvar = options.delete(:outvar) || '_csvout'
|
53
49
|
end
|
54
50
|
|
55
51
|
def precompiled_template(locals)
|
56
|
-
|
52
|
+
<<-RUBY
|
53
|
+
#{@outvar} = #{self.class.engine}.generate(#{options}) do |csv|
|
54
|
+
#{data}
|
55
|
+
end
|
56
|
+
RUBY
|
57
57
|
end
|
58
58
|
|
59
59
|
def precompiled(locals)
|
data/lib/tilt/haml.rb
CHANGED
@@ -13,6 +13,8 @@ module Tilt
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def evaluate(scope, locals, &block)
|
16
|
+
raise ArgumentError, 'invalid scope: must not be frozen' if scope.frozen?
|
17
|
+
|
16
18
|
if @engine.respond_to?(:precompiled_method_return_value, true)
|
17
19
|
super
|
18
20
|
else
|
@@ -47,11 +49,10 @@ module Tilt
|
|
47
49
|
<<-RUBY
|
48
50
|
#{precompiled_method_return_value}
|
49
51
|
ensure
|
50
|
-
@haml_buffer = @haml_buffer.upper
|
52
|
+
@haml_buffer = @haml_buffer.upper if @haml_buffer
|
51
53
|
end
|
52
54
|
RUBY
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|
57
|
-
|