tilt 1.3.6 → 1.4.0

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.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  ## master
2
2
 
3
+ ## 1.4.0 (2013-05-01)
4
+
5
+ * Better encoding support
6
+
7
+ ## 1.3.7 (2013-04-09)
8
+
9
+ * Erubis: Check for the correct constant (#183, mattwildig)
10
+ * Don't fail when BasicObject is defined in 1.8 (#182, technobrat, judofyr)
11
+
3
12
  ## 1.3.6 (2013-03-17)
4
13
 
5
14
  * Accept Hash that implements #path as options (#180, lawso017)
data/README.md CHANGED
@@ -194,6 +194,27 @@ template, but if you depend on a specific implementation, you should use #prefer
194
194
  When a file extension has a preferred template class, Tilt will *always* use
195
195
  that class, even if it raises an exception.
196
196
 
197
+ Encodings
198
+ ---------
199
+
200
+ Tilt needs to know the encoding of the template in order to work properly:
201
+
202
+ Tilt will use `Encoding.default_external` as the encoding when reading external
203
+ files. If you're mostly working with one encoding (e.g. UTF-8) we *highly*
204
+ recommend setting this option. When providing a custom reader block (`Tilt.new
205
+ { custom_string }`) you'll have ensure the string is properly encoded yourself.
206
+
207
+ Most of the template engines in Tilt also allows you to override the encoding
208
+ using the `:default_encoding`-option:
209
+
210
+ ```ruby
211
+ tmpl = Tilt.new('hello.erb', :default_encoding => 'Big5')
212
+ ```
213
+
214
+ Ultimately it's up to the template engine how to handle the encoding: It might
215
+ respect `:default_encoding`, it might always assume it's UTF-8 (like
216
+ CoffeScript), or it can do its own encoding detection.
217
+
197
218
  Template Compilation
198
219
  --------------------
199
220
 
data/lib/tilt/erb.rb CHANGED
@@ -74,7 +74,7 @@ module Tilt
74
74
  # within <%= %> blocks will be automatically html escaped.
75
75
  class ErubisTemplate < ERBTemplate
76
76
  def self.engine_initialized?
77
- defined? ::Erubis
77
+ defined? ::Erubis::Eruby
78
78
  end
79
79
 
80
80
  def initialize_engine
data/lib/tilt/template.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Tilt
2
- TOPOBJECT = defined?(BasicObject) ? BasicObject : Object
2
+ TOPOBJECT = Object.superclass || Object
3
3
 
4
4
  # Base class for template implementations. Subclasses must implement
5
5
  # the #prepare method and one of the #evaluate or #precompiled_template
@@ -65,11 +65,37 @@ module Tilt
65
65
  @default_encoding = @options.delete :default_encoding
66
66
 
67
67
  # load template data and prepare (uses binread to avoid encoding issues)
68
- @reader = block || lambda { |t| File.respond_to?(:binread) ? File.binread(@file) : File.read(@file) }
68
+ @reader = block || lambda { |t| read_template_file }
69
69
  @data = @reader.call(self)
70
+
71
+ if @data.respond_to?(:force_encoding)
72
+ @data.force_encoding(default_encoding) if default_encoding
73
+
74
+ if !@data.valid_encoding?
75
+ raise Encoding::InvalidByteSequenceError, "#{eval_file} is not valid #{@data.encoding}"
76
+ end
77
+ end
78
+
70
79
  prepare
71
80
  end
72
81
 
82
+ # The encoding of the source data. Defaults to the
83
+ # default_encoding-option if present. You may override this method
84
+ # in your template class if you have a better hint of the data's
85
+ # encoding.
86
+ def default_encoding
87
+ @default_encoding
88
+ end
89
+
90
+ def read_template_file
91
+ data = File.open(file, 'rb') { |io| io.read }
92
+ if data.respond_to?(:force_encoding)
93
+ # Set it to the default external (without verifying)
94
+ data.force_encoding(Encoding.default_external) if Encoding.default_external
95
+ end
96
+ data
97
+ end
98
+
73
99
  # Render the template in the given scope with the locals specified. If a
74
100
  # block is given, it is typically available within the template via
75
101
  # +yield+.
@@ -156,26 +182,29 @@ module Tilt
156
182
  def precompiled(locals)
157
183
  preamble = precompiled_preamble(locals)
158
184
  template = precompiled_template(locals)
159
- magic_comment = extract_magic_comment(template)
160
- if magic_comment
161
- # Magic comment e.g. "# coding: utf-8" has to be in the first line.
162
- # So we copy the magic comment to the first line.
163
- preamble = magic_comment + "\n" + preamble
185
+ postamble = precompiled_postamble(locals)
186
+ source = ''
187
+
188
+ # Ensure that our generated source code has the same encoding as the
189
+ # the source code generated by the template engine.
190
+ if source.respond_to?(:force_encoding)
191
+ template_encoding = extract_encoding(template)
192
+
193
+ source.force_encoding(template_encoding)
194
+ template.force_encoding(template_encoding)
164
195
  end
165
- parts = [
166
- preamble,
167
- template,
168
- precompiled_postamble(locals)
169
- ]
170
- [parts.join("\n"), preamble.count("\n") + 1]
196
+
197
+ source << preamble << "\n" << template << "\n" << postamble
198
+
199
+ [source, preamble.count("\n")+1]
171
200
  end
172
201
 
173
202
  # A string containing the (Ruby) source code for the template. The
174
- # default Template#evaluate implementation requires either this method
175
- # or the #precompiled method be overridden. When defined, the base
176
- # Template guarantees correct file/line handling, locals support, custom
177
- # scopes, and support for template compilation when the scope object
178
- # allows it.
203
+ # default Template#evaluate implementation requires either this
204
+ # method or the #precompiled method be overridden. When defined,
205
+ # the base Template guarantees correct file/line handling, locals
206
+ # support, custom scopes, proper encoding, and support for template
207
+ # compilation.
179
208
  def precompiled_template(locals)
180
209
  raise NotImplementedError
181
210
  end
@@ -212,8 +241,13 @@ module Tilt
212
241
  def compile_template_method(locals)
213
242
  source, offset = precompiled(locals)
214
243
  method_name = "__tilt_#{Thread.current.object_id.abs}"
215
- method_source = <<-RUBY
216
- #{extract_magic_comment source}
244
+ method_source = ""
245
+
246
+ if method_source.respond_to?(:force_encoding)
247
+ method_source.force_encoding(source.encoding)
248
+ end
249
+
250
+ method_source << <<-RUBY
217
251
  TOPOBJECT.class_eval do
218
252
  def #{method_name}(locals)
219
253
  Thread.current[:tilt_vars] = [self, locals]
@@ -234,13 +268,22 @@ module Tilt
234
268
  method
235
269
  end
236
270
 
271
+ def extract_encoding(script)
272
+ extract_magic_comment(script) || script.encoding
273
+ end
274
+
237
275
  def extract_magic_comment(script)
238
- comment = script.slice(/\A[ \t]*\#.*coding\s*[=:]\s*([[:alnum:]\-_]+).*$/)
239
- if comment && !%w[ascii-8bit binary].include?($1.downcase)
240
- comment
241
- elsif @default_encoding
242
- "# coding: #{@default_encoding}"
276
+ binary script do
277
+ script[/\A[ \t]*\#.*coding\s*[=:]\s*([[:alnum:]\-_]+).*$/n, 1]
243
278
  end
244
279
  end
280
+
281
+ def binary(string)
282
+ original_encoding = string.encoding
283
+ string.force_encoding(Encoding::BINARY)
284
+ yield
285
+ ensure
286
+ string.force_encoding(original_encoding)
287
+ end
245
288
  end
246
289
  end
data/lib/tilt.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Tilt
2
- VERSION = '1.3.6'
2
+ VERSION = '1.4.0'
3
3
 
4
4
  @preferred_mappings = Hash.new
5
5
  @template_mappings = Hash.new { |h, k| h[k] = [] }
@@ -18,7 +18,7 @@ module MarkdownTests
18
18
  end
19
19
 
20
20
  def normalize(html)
21
- Nokogiri::HTML.fragment(html).to_s
21
+ Nokogiri::HTML.fragment(html).to_s.strip
22
22
  end
23
23
 
24
24
  def nrender(text, options = {})
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'contest'
2
3
  require 'tilt'
3
4
  require 'tempfile'
@@ -176,4 +177,100 @@ class TiltTemplateTest < Test::Unit::TestCase
176
177
  inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{CONSTANT}!' }
177
178
  assert_equal "Hey Bob!", inst.render(Person.new("Joe"))
178
179
  end
180
+
181
+ ##
182
+ # Encodings
183
+
184
+ class DynamicMockTemplate < MockTemplate
185
+ def precompiled_template(locals)
186
+ options[:code]
187
+ end
188
+ end
189
+
190
+ class UTF8Template < MockTemplate
191
+ def default_encoding
192
+ Encoding::UTF_8
193
+ end
194
+ end
195
+
196
+ if ''.respond_to?(:encoding)
197
+ original_encoding = Encoding.default_external
198
+
199
+ setup do
200
+ @file = Tempfile.open('template')
201
+ @file.puts "stuff"
202
+ @file.close
203
+ @template = @file.path
204
+ end
205
+
206
+ teardown do
207
+ Encoding.default_external = original_encoding
208
+ Encoding.default_internal = nil
209
+ @file.delete
210
+ end
211
+
212
+ test "reading from file assumes default external encoding" do
213
+ Encoding.default_external = 'Big5'
214
+ inst = MockTemplate.new(@template)
215
+ assert_equal 'Big5', inst.data.encoding.to_s
216
+ end
217
+
218
+ test "reading from file with a :default_encoding overrides default external" do
219
+ Encoding.default_external = 'Big5'
220
+ inst = MockTemplate.new(@template, :default_encoding => 'GBK')
221
+ assert_equal 'GBK', inst.data.encoding.to_s
222
+ end
223
+
224
+ test "reading from file with default_internal set does no transcoding" do
225
+ Encoding.default_internal = 'utf-8'
226
+ Encoding.default_external = 'Big5'
227
+ inst = MockTemplate.new(@template)
228
+ assert_equal 'Big5', inst.data.encoding.to_s
229
+ end
230
+
231
+ test "using provided template data verbatim when given as string" do
232
+ Encoding.default_internal = 'Big5'
233
+ inst = MockTemplate.new(@template) { "blah".force_encoding('GBK') }
234
+ assert_equal 'GBK', inst.data.encoding.to_s
235
+ end
236
+
237
+ test "uses the template from the generated source code" do
238
+ tmpl = "ふが"
239
+ code = tmpl.inspect.encode('Shift_JIS')
240
+ inst = DynamicMockTemplate.new(:code => code) { '' }
241
+ res = inst.render
242
+ assert_equal 'Shift_JIS', res.encoding.to_s
243
+ assert_equal tmpl, res.encode(tmpl.encoding)
244
+ end
245
+
246
+ test "uses the magic comment from the generated source code" do
247
+ tmpl = "ふが"
248
+ code = ("# coding: Shift_JIS\n" + tmpl.inspect).encode('Shift_JIS')
249
+ # Set it to an incorrect encoding
250
+ code.force_encoding('UTF-8')
251
+
252
+ inst = DynamicMockTemplate.new(:code => code) { '' }
253
+ res = inst.render
254
+ assert_equal 'Shift_JIS', res.encoding.to_s
255
+ assert_equal tmpl, res.encode(tmpl.encoding)
256
+ end
257
+
258
+ test "uses #default_encoding instead of default_external" do
259
+ Encoding.default_external = 'Big5'
260
+ inst = UTF8Template.new(@template)
261
+ assert_equal 'UTF-8', inst.data.encoding.to_s
262
+ end
263
+
264
+ test "uses #default_encoding instead of current encoding" do
265
+ tmpl = "".force_encoding('Big5')
266
+ inst = UTF8Template.new(@template) { tmpl }
267
+ assert_equal 'UTF-8', inst.data.encoding.to_s
268
+ end
269
+
270
+ test "raises error if the encoding is not valid" do
271
+ assert_raises(Encoding::InvalidByteSequenceError) do
272
+ UTF8Template.new(@template) { "\xe4" }
273
+ end
274
+ end
275
+ end
179
276
  end
data/tilt.gemspec CHANGED
@@ -3,8 +3,8 @@ Gem::Specification.new do |s|
3
3
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
4
4
 
5
5
  s.name = 'tilt'
6
- s.version = '1.3.6'
7
- s.date = '2013-03-17'
6
+ s.version = '1.4.0'
7
+ s.date = '2013-05-01'
8
8
 
9
9
  s.description = "Generic interface to multiple Ruby template engines"
10
10
  s.summary = s.description
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tilt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.4.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ryan Tomayko
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-03-17 00:00:00.000000000 Z
12
+ date: 2013-05-01 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: asciidoctor
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: RedCloth
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ! '>='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ! '>='
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: bluecloth
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ! '>='
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ! '>='
53
60
  - !ruby/object:Gem::Version
@@ -55,6 +62,7 @@ dependencies:
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: builder
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
75
  - - ! '>='
67
76
  - !ruby/object:Gem::Version
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: coffee-script
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ! '>='
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
91
  - - ! '>='
81
92
  - !ruby/object:Gem::Version
@@ -83,6 +94,7 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: contest
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
99
  - - ! '>='
88
100
  - !ruby/object:Gem::Version
@@ -90,6 +102,7 @@ dependencies:
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
107
  - - ! '>='
95
108
  - !ruby/object:Gem::Version
@@ -97,6 +110,7 @@ dependencies:
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: creole
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ! '>='
102
116
  - !ruby/object:Gem::Version
@@ -104,6 +118,7 @@ dependencies:
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
123
  - - ! '>='
109
124
  - !ruby/object:Gem::Version
@@ -111,6 +126,7 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: erubis
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ! '>='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - ! '>='
123
140
  - !ruby/object:Gem::Version
@@ -125,6 +142,7 @@ dependencies:
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: haml
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
147
  - - ! '>='
130
148
  - !ruby/object:Gem::Version
@@ -132,6 +150,7 @@ dependencies:
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
155
  - - ! '>='
137
156
  - !ruby/object:Gem::Version
@@ -139,6 +158,7 @@ dependencies:
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: kramdown
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
163
  - - ! '>='
144
164
  - !ruby/object:Gem::Version
@@ -146,6 +166,7 @@ dependencies:
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
171
  - - ! '>='
151
172
  - !ruby/object:Gem::Version
@@ -153,6 +174,7 @@ dependencies:
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: less
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
179
  - - ! '>='
158
180
  - !ruby/object:Gem::Version
@@ -160,6 +182,7 @@ dependencies:
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
187
  - - ! '>='
165
188
  - !ruby/object:Gem::Version
@@ -167,6 +190,7 @@ dependencies:
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: liquid
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
195
  - - ! '>='
172
196
  - !ruby/object:Gem::Version
@@ -174,6 +198,7 @@ dependencies:
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
203
  - - ! '>='
179
204
  - !ruby/object:Gem::Version
@@ -181,6 +206,7 @@ dependencies:
181
206
  - !ruby/object:Gem::Dependency
182
207
  name: markaby
183
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
184
210
  requirements:
185
211
  - - ! '>='
186
212
  - !ruby/object:Gem::Version
@@ -188,6 +214,7 @@ dependencies:
188
214
  type: :development
189
215
  prerelease: false
190
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
191
218
  requirements:
192
219
  - - ! '>='
193
220
  - !ruby/object:Gem::Version
@@ -195,6 +222,7 @@ dependencies:
195
222
  - !ruby/object:Gem::Dependency
196
223
  name: maruku
197
224
  requirement: !ruby/object:Gem::Requirement
225
+ none: false
198
226
  requirements:
199
227
  - - ! '>='
200
228
  - !ruby/object:Gem::Version
@@ -202,6 +230,7 @@ dependencies:
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
205
234
  requirements:
206
235
  - - ! '>='
207
236
  - !ruby/object:Gem::Version
@@ -209,6 +238,7 @@ dependencies:
209
238
  - !ruby/object:Gem::Dependency
210
239
  name: nokogiri
211
240
  requirement: !ruby/object:Gem::Requirement
241
+ none: false
212
242
  requirements:
213
243
  - - ! '>='
214
244
  - !ruby/object:Gem::Version
@@ -216,6 +246,7 @@ dependencies:
216
246
  type: :development
217
247
  prerelease: false
218
248
  version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
219
250
  requirements:
220
251
  - - ! '>='
221
252
  - !ruby/object:Gem::Version
@@ -223,6 +254,7 @@ dependencies:
223
254
  - !ruby/object:Gem::Dependency
224
255
  name: radius
225
256
  requirement: !ruby/object:Gem::Requirement
257
+ none: false
226
258
  requirements:
227
259
  - - ! '>='
228
260
  - !ruby/object:Gem::Version
@@ -230,6 +262,7 @@ dependencies:
230
262
  type: :development
231
263
  prerelease: false
232
264
  version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
233
266
  requirements:
234
267
  - - ! '>='
235
268
  - !ruby/object:Gem::Version
@@ -237,6 +270,7 @@ dependencies:
237
270
  - !ruby/object:Gem::Dependency
238
271
  name: rdiscount
239
272
  requirement: !ruby/object:Gem::Requirement
273
+ none: false
240
274
  requirements:
241
275
  - - ! '>='
242
276
  - !ruby/object:Gem::Version
@@ -244,6 +278,7 @@ dependencies:
244
278
  type: :development
245
279
  prerelease: false
246
280
  version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
247
282
  requirements:
248
283
  - - ! '>='
249
284
  - !ruby/object:Gem::Version
@@ -251,6 +286,7 @@ dependencies:
251
286
  - !ruby/object:Gem::Dependency
252
287
  name: rdoc
253
288
  requirement: !ruby/object:Gem::Requirement
289
+ none: false
254
290
  requirements:
255
291
  - - ! '>='
256
292
  - !ruby/object:Gem::Version
@@ -258,6 +294,7 @@ dependencies:
258
294
  type: :development
259
295
  prerelease: false
260
296
  version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
261
298
  requirements:
262
299
  - - ! '>='
263
300
  - !ruby/object:Gem::Version
@@ -265,6 +302,7 @@ dependencies:
265
302
  - !ruby/object:Gem::Dependency
266
303
  name: redcarpet
267
304
  requirement: !ruby/object:Gem::Requirement
305
+ none: false
268
306
  requirements:
269
307
  - - ! '>='
270
308
  - !ruby/object:Gem::Version
@@ -272,6 +310,7 @@ dependencies:
272
310
  type: :development
273
311
  prerelease: false
274
312
  version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
275
314
  requirements:
276
315
  - - ! '>='
277
316
  - !ruby/object:Gem::Version
@@ -279,6 +318,7 @@ dependencies:
279
318
  - !ruby/object:Gem::Dependency
280
319
  name: sass
281
320
  requirement: !ruby/object:Gem::Requirement
321
+ none: false
282
322
  requirements:
283
323
  - - ! '>='
284
324
  - !ruby/object:Gem::Version
@@ -286,6 +326,7 @@ dependencies:
286
326
  type: :development
287
327
  prerelease: false
288
328
  version_requirements: !ruby/object:Gem::Requirement
329
+ none: false
289
330
  requirements:
290
331
  - - ! '>='
291
332
  - !ruby/object:Gem::Version
@@ -293,6 +334,7 @@ dependencies:
293
334
  - !ruby/object:Gem::Dependency
294
335
  name: wikicloth
295
336
  requirement: !ruby/object:Gem::Requirement
337
+ none: false
296
338
  requirements:
297
339
  - - ! '>='
298
340
  - !ruby/object:Gem::Version
@@ -300,6 +342,7 @@ dependencies:
300
342
  type: :development
301
343
  prerelease: false
302
344
  version_requirements: !ruby/object:Gem::Requirement
345
+ none: false
303
346
  requirements:
304
347
  - - ! '>='
305
348
  - !ruby/object:Gem::Version
@@ -307,6 +350,7 @@ dependencies:
307
350
  - !ruby/object:Gem::Dependency
308
351
  name: yajl-ruby
309
352
  requirement: !ruby/object:Gem::Requirement
353
+ none: false
310
354
  requirements:
311
355
  - - ! '>='
312
356
  - !ruby/object:Gem::Version
@@ -314,6 +358,7 @@ dependencies:
314
358
  type: :development
315
359
  prerelease: false
316
360
  version_requirements: !ruby/object:Gem::Requirement
361
+ none: false
317
362
  requirements:
318
363
  - - ! '>='
319
364
  - !ruby/object:Gem::Version
@@ -321,6 +366,7 @@ dependencies:
321
366
  - !ruby/object:Gem::Dependency
322
367
  name: rdoc
323
368
  requirement: !ruby/object:Gem::Requirement
369
+ none: false
324
370
  requirements:
325
371
  - - ! '>='
326
372
  - !ruby/object:Gem::Version
@@ -328,6 +374,7 @@ dependencies:
328
374
  type: :development
329
375
  prerelease: false
330
376
  version_requirements: !ruby/object:Gem::Requirement
377
+ none: false
331
378
  requirements:
332
379
  - - ! '>='
333
380
  - !ruby/object:Gem::Version
@@ -411,7 +458,6 @@ files:
411
458
  homepage: http://github.com/rtomayko/tilt/
412
459
  licenses:
413
460
  - MIT
414
- metadata: {}
415
461
  post_install_message:
416
462
  rdoc_options:
417
463
  - --line-numbers
@@ -423,18 +469,20 @@ rdoc_options:
423
469
  require_paths:
424
470
  - lib
425
471
  required_ruby_version: !ruby/object:Gem::Requirement
472
+ none: false
426
473
  requirements:
427
474
  - - ! '>='
428
475
  - !ruby/object:Gem::Version
429
476
  version: '0'
430
477
  required_rubygems_version: !ruby/object:Gem::Requirement
478
+ none: false
431
479
  requirements:
432
480
  - - ! '>='
433
481
  - !ruby/object:Gem::Version
434
482
  version: '0'
435
483
  requirements: []
436
484
  rubyforge_project:
437
- rubygems_version: 2.0.2
485
+ rubygems_version: 1.8.25
438
486
  signing_key:
439
487
  specification_version: 2
440
488
  summary: Generic interface to multiple Ruby template engines
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MTA1ZmRhM2QwODJjZDM1YTAzMzM2ZTZlMGIwNmI3MzMxOTZlYjA2ZQ==
5
- data.tar.gz: !binary |-
6
- ZmNmOTUwNTQyNzg2MTViMDkzMzU0YTAwMTVhZjJjM2JlMjhlMDAzZA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NGFmMDlkYjgxY2ExMjJkYjZkZDg3ZjliMjk4MmFiNjUyOTlkYjYwOGUwOTUz
10
- OGIwYWRjOTFmNjhmMDYwNjU3NDhiMTM0MmViN2NjZmNlMDVlYjkzODFhMzI4
11
- MThjZDJkY2QwODM2OTU3NGFhZDQ4MGRjYTQ4NDUwZTIyNGE2ZWM=
12
- data.tar.gz: !binary |-
13
- OTE3OTkzYWQzZTEyODUxNzk5NDcyNDUxN2NjZWE0NTA4ZTIzYjM1MWI0NmE4
14
- MTJjMjYxYjdiNTk3YTEwNWRjNWQzZWM4M2ExZDIzNmIxMjUyYWUzZmFmYzQz
15
- ODJhNjNmNzY2MDkxODcxMGE0NDhkOWVhOGIzYmMwYzFiZjQ3Y2E=