malt 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/History.rdoc +18 -0
  2. data/README.rdoc +6 -2
  3. data/lib/malt.rb +9 -0
  4. data/lib/malt/engines/abstract.rb +7 -7
  5. data/lib/malt/engines/bluecloth.rb +3 -3
  6. data/lib/malt/engines/builder.rb +72 -0
  7. data/lib/malt/engines/erb.rb +2 -0
  8. data/lib/malt/engines/erector.rb +59 -0
  9. data/lib/malt/engines/haml.rb +2 -2
  10. data/lib/malt/engines/kramdown.rb +6 -4
  11. data/lib/malt/engines/less.rb +8 -8
  12. data/lib/malt/engines/markaby.rb +51 -0
  13. data/lib/malt/engines/mustache.rb +44 -0
  14. data/lib/malt/engines/radius.rb +4 -4
  15. data/lib/malt/engines/ragtag.rb +49 -0
  16. data/lib/malt/engines/rdiscount.rb +1 -1
  17. data/lib/malt/engines/rdoc.rb +3 -3
  18. data/lib/malt/engines/redcloth.rb +1 -1
  19. data/lib/malt/engines/sass.rb +8 -8
  20. data/lib/malt/engines/tenjin.rb +6 -6
  21. data/lib/malt/formats/abstract.rb +8 -2
  22. data/lib/malt/formats/builder.rb +56 -0
  23. data/lib/malt/formats/css.rb +8 -8
  24. data/lib/malt/formats/erector.rb +53 -0
  25. data/lib/malt/formats/haml.rb +2 -2
  26. data/lib/malt/formats/html.rb +3 -3
  27. data/lib/malt/formats/latex.rb +4 -4
  28. data/lib/malt/formats/less.rb +5 -5
  29. data/lib/malt/formats/liquid.rb +11 -1
  30. data/lib/malt/formats/markaby.rb +53 -0
  31. data/lib/malt/formats/markdown.rb +6 -6
  32. data/lib/malt/formats/mustache.rb +34 -0
  33. data/lib/malt/formats/pdf.rb +2 -2
  34. data/lib/malt/formats/radius.rb +4 -4
  35. data/lib/malt/formats/{rtals.rb → ragtag.rb} +13 -9
  36. data/lib/malt/formats/rdoc.rb +4 -4
  37. data/lib/malt/formats/ruby.rb +2 -2
  38. data/lib/malt/formats/sass.rb +10 -0
  39. data/lib/malt/formats/scss.rb +10 -0
  40. data/lib/malt/formats/tenjin.rb +4 -4
  41. data/lib/malt/formats/textile.rb +12 -12
  42. data/lib/malt/formats/xml.rb +29 -0
  43. data/lib/malt/formats/yaml.rb +2 -2
  44. data/lib/malt/meta/data.rb +4 -4
  45. data/lib/malt/meta/{gemfile → package} +6 -2
  46. data/lib/malt/render.rb +37 -9
  47. data/meta/data.rb +4 -4
  48. data/meta/{gemfile → package} +6 -2
  49. data/qed/03_formats/08_ragtag.rdoc +19 -0
  50. data/qed/03_formats/17_markaby.rdoc +50 -0
  51. data/qed/03_formats/18_builder.rb +50 -0
  52. data/qed/03_formats/19_erector.rb +50 -0
  53. data/qed/03_formats/20_mustache.rdoc +54 -0
  54. data/{test/samples/sample.md → qed/samples/sample.markdown} +0 -0
  55. data/{test → qed}/samples/sample.rdoc +0 -0
  56. metadata +81 -12
  57. data/lib/malt/engines/rtals.rb +0 -46
  58. data/qed/03_formats/08_rtal.rdoc +0 -15
@@ -4,10 +4,10 @@ module Malt
4
4
 
5
5
  DIRECTORY = File.dirname(__FILE__)
6
6
 
7
- def self.gemfile
8
- @gemfile ||= (
7
+ def self.package
8
+ @package ||= (
9
9
  require 'yaml'
10
- YAML.load(File.new(DIRECTORY + '/gemfile'))
10
+ YAML.load(File.new(DIRECTORY + '/package'))
11
11
  )
12
12
  end
13
13
 
@@ -20,7 +20,7 @@ module Malt
20
20
 
21
21
  def self.const_missing(name)
22
22
  key = name.to_s.downcase
23
- gemfile[key] || profile[key] || super(name)
23
+ package[key] || profile[key] || super(name)
24
24
  end
25
25
 
26
26
  end
@@ -1,6 +1,6 @@
1
1
  name : malt
2
- date : 2010-10-21
3
- version : 0.1.1
2
+ date : 2010-10-22
3
+ version : 0.2.0
4
4
 
5
5
  requires:
6
6
  - syckle (build)
@@ -14,4 +14,8 @@ requires:
14
14
  - rtals (test)
15
15
  - liquid (test)
16
16
  - erubis (test)
17
+ - mustache (test)
18
+ - erector (test)
19
+ - markaby (test)
20
+ - builder (test)
17
21
 
@@ -0,0 +1,19 @@
1
+ == RagTag
2
+
3
+ Lets say we have a Rtals document called 'test.rt' containing:
4
+
5
+ <html>
6
+ <body>
7
+ <h1>Example <span replace="title">DUMMY</span></h1>
8
+ <p>This is an example of a RagTag template.</p>
9
+ </body>
10
+ </html>
11
+
12
+ We can render Rtal documents via the +render+ method, as we can any format.
13
+
14
+ data = { :title=>"Document" }
15
+
16
+ html = Malt.render(:file=>'tmp/test.rt', :data=>data)
17
+
18
+ html.assert.include?('<h1>Example Document</h1>')
19
+
@@ -0,0 +1,50 @@
1
+ == Markaby
2
+
3
+ Lets say we have a Markaby document called 'test.markaby' containing:
4
+
5
+ html do
6
+ h1 "Example #{@title}"
7
+ p "This is an example of a Maraby template."
8
+ end
9
+
10
+ Notice the use of the instance variable. Markaby templates must use instance
11
+ variables for data rendering in order to avoid ambiguity with the markup
12
+ syntax itself.
13
+
14
+ We can render Markaby documents via the +render+ method, as we can any format.
15
+ Since Markaby is a template format and not just a markup syntax, so we need
16
+ to also provide the +render+ function with data for interpolation into the
17
+ Markaby document.
18
+
19
+ data = { :title=>"Document" }
20
+
21
+ html = Malt.render(:file=>'tmp/test.markaby', :data=>data)
22
+
23
+ html.assert.include?('<h1>Example Document</h1>')
24
+
25
+ We can get a hold of the Markaby document via the Malt.file function.
26
+
27
+ markaby = Malt.file('tmp/test.markaby')
28
+
29
+ markaby.class.assert == Malt::Format::Markaby
30
+
31
+ We can convert Markaby documents to html very easily.
32
+
33
+ data = {:title => "Document"}
34
+
35
+ html = markaby.to_html(data)
36
+
37
+ First we will notice that the output is an instance of Malt::Format::HTML.
38
+
39
+ html.class.assert == Malt::Format::HTML
40
+
41
+ And that by calling #to_s we can get the rendered HTML document.
42
+
43
+ html.to_s.assert.include?('<h1>Example Document</h1>')
44
+
45
+ Or we can convert the Markaby document directly to HTML via the #html method.
46
+
47
+ out = markaby.html(data)
48
+
49
+ out.assert.include?('<h1>Example Document</h1>')
50
+
@@ -0,0 +1,50 @@
1
+ == Builder
2
+
3
+ Lets say we have a Builder document called 'test.builder' containing:
4
+
5
+ html do |h|
6
+ h.h1 "Example #{@title}"
7
+ h.p "This is an example of a Maraby template."
8
+ end
9
+
10
+ Notice the use of the instance variable. Builder templates must use instance
11
+ variables for data rendering in order to avoid ambiguity with the markup
12
+ syntax itself.
13
+
14
+ We can render Builder documents via the +render+ method, as we can any format.
15
+ Since Builder is a template format and not just a markup syntax, so we need
16
+ to also provide the +render+ function with data for interpolation into the
17
+ Builder document.
18
+
19
+ data = { :title=>"Document" }
20
+
21
+ html = Malt.render(:file=>'tmp/test.builder', :data=>data)
22
+
23
+ html.assert.include?('<h1>Example Document</h1>')
24
+
25
+ We can get a hold of the Builder document via the Malt.file function.
26
+
27
+ builder = Malt.file('tmp/test.builder')
28
+
29
+ builder.class.assert == Malt::Format::Builder
30
+
31
+ We can convert Builder documents to html very easily.
32
+
33
+ data = {:title => "Document"}
34
+
35
+ html = builder.to_html(data)
36
+
37
+ First we will notice that the output is an instance of Malt::Format::HTML.
38
+
39
+ html.class.assert == Malt::Format::HTML
40
+
41
+ And that by calling #to_s we can get the rendered HTML document.
42
+
43
+ html.to_s.assert.include?('<h1>Example Document</h1>')
44
+
45
+ Or we can convert the Builder document directly to HTML via the #html method.
46
+
47
+ out = builder.html(data)
48
+
49
+ out.assert.include?('<h1>Example Document</h1>')
50
+
@@ -0,0 +1,50 @@
1
+ == Erector
2
+
3
+ Lets say we have a Erector document called 'test.erector' containing:
4
+
5
+ html do
6
+ h1 "Example #{@title}"
7
+ p "This is an example of a Maraby template."
8
+ end
9
+
10
+ Notice the use of the instance variable. Erector templates must use instance
11
+ variables for data rendering in order to avoid ambiguity with the markup
12
+ syntax itself.
13
+
14
+ We can render Erector documents via the +render+ method, as we can any format.
15
+ Since Erector is a template format and not just a markup syntax, so we need
16
+ to also provide the +render+ function with data for interpolation into the
17
+ Erector document.
18
+
19
+ data = { :title=>"Document" }
20
+
21
+ html = Malt.render(:file=>'tmp/test.erector', :data=>data)
22
+
23
+ html.assert.include?('<h1>Example Document</h1>')
24
+
25
+ We can get a hold of the Erector document via the Malt.file function.
26
+
27
+ erector = Malt.file('tmp/test.erector')
28
+
29
+ erector.class.assert == Malt::Format::Erector
30
+
31
+ We can convert Erector documents to html very easily.
32
+
33
+ data = {:title => "Document"}
34
+
35
+ html = erector.to_html(data)
36
+
37
+ First we will notice that the output is an instance of Malt::Format::HTML.
38
+
39
+ html.class.assert == Malt::Format::HTML
40
+
41
+ And that by calling #to_s we can get the rendered HTML document.
42
+
43
+ html.to_s.assert.include?('<h1>Example Document</h1>')
44
+
45
+ Or we can convert the Erector document directly to HTML via the #html method.
46
+
47
+ out = erector.html(data)
48
+
49
+ out.assert.include?('<h1>Example Document</h1>')
50
+
@@ -0,0 +1,54 @@
1
+ == Mustache
2
+
3
+ Lets say we have a Mustache document called 'test.mustache' containing:
4
+
5
+ <h1>Example {{ title }}</h1>
6
+
7
+ <p>This is an example of a Mustache template.</p>
8
+
9
+ We can render mustache documents via the +render+ method, as we can any format.
10
+ However, becuase Mustache is a template format and not just a markup syntax,
11
+ we need to also provide the +render+ function with data for interpolation
12
+ into the mustache document.
13
+
14
+ data = { :title=>"Document" }
15
+
16
+ html = Malt.render(:file=>'tmp/test.mustache', :data=>data)
17
+
18
+ html.assert.include?('<h1>Example Document</h1>')
19
+
20
+ Mustache doesn't actually care what format the document is rendered as, since it
21
+ is purely a template engine that can be applied to any other format.
22
+ Lets say we have a Mustache document called 'test.mustache' containing ...
23
+
24
+ <h1>Example {{ title }}</h1>
25
+
26
+ <p>This is an example of a Mustache template.</p>
27
+
28
+ We can render erb documents to any format we wish.
29
+
30
+ liq = Malt.file('tmp/test.mustache')
31
+
32
+ html = liq.to_html(:title=>"Document")
33
+
34
+ We will notice that the output is an instance of Malt::Format::HTML.
35
+
36
+ html.class.assert == Malt::Format::HTML
37
+
38
+ We will notice that the output is an instance of Malt::Format::HTML.
39
+
40
+ html.class.assert == Malt::Format::HTML
41
+
42
+ Then by calling #to_s we can get the rendered HTML document.
43
+
44
+ html.to_s.assert.include?('<h1>Example Document</h1>')
45
+
46
+ Or we can convert the document directly to HTML via the #html method.
47
+
48
+ out = liq.html(:title=>"Alternate")
49
+
50
+ out.assert.include?('<h1>Example Alternate</h1>')
51
+
52
+ Mustache doesn't actually care what format the document is rendered as, since it
53
+ is purely a template engine that can be applied to any format.
54
+
File without changes
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: malt
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Thomas Sawyer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-21 00:00:00 -04:00
18
+ date: 2010-10-28 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -172,6 +172,62 @@ dependencies:
172
172
  version: "0"
173
173
  type: :development
174
174
  version_requirements: *id011
175
+ - !ruby/object:Gem::Dependency
176
+ name: mustache
177
+ prerelease: false
178
+ requirement: &id012 !ruby/object:Gem::Requirement
179
+ none: false
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ hash: 3
184
+ segments:
185
+ - 0
186
+ version: "0"
187
+ type: :development
188
+ version_requirements: *id012
189
+ - !ruby/object:Gem::Dependency
190
+ name: erector
191
+ prerelease: false
192
+ requirement: &id013 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ hash: 3
198
+ segments:
199
+ - 0
200
+ version: "0"
201
+ type: :development
202
+ version_requirements: *id013
203
+ - !ruby/object:Gem::Dependency
204
+ name: markaby
205
+ prerelease: false
206
+ requirement: &id014 !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ hash: 3
212
+ segments:
213
+ - 0
214
+ version: "0"
215
+ type: :development
216
+ version_requirements: *id014
217
+ - !ruby/object:Gem::Dependency
218
+ name: builder
219
+ prerelease: false
220
+ requirement: &id015 !ruby/object:Gem::Requirement
221
+ none: false
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ hash: 3
226
+ segments:
227
+ - 0
228
+ version: "0"
229
+ type: :development
230
+ version_requirements: *id015
175
231
  description: Malt provides a factory framework for rendering a variety of template and markup document formats.
176
232
  email: transfire@gmail.com
177
233
  executables:
@@ -195,55 +251,64 @@ files:
195
251
  - lib/malt/core_ext.rb
196
252
  - lib/malt/engines/abstract.rb
197
253
  - lib/malt/engines/bluecloth.rb
254
+ - lib/malt/engines/builder.rb
198
255
  - lib/malt/engines/erb.rb
256
+ - lib/malt/engines/erector.rb
199
257
  - lib/malt/engines/erubis.rb
200
258
  - lib/malt/engines/haml.rb
201
259
  - lib/malt/engines/kramdown.rb
202
260
  - lib/malt/engines/less.rb
203
261
  - lib/malt/engines/liquid.rb
262
+ - lib/malt/engines/markaby.rb
263
+ - lib/malt/engines/mustache.rb
204
264
  - lib/malt/engines/radius.rb
265
+ - lib/malt/engines/ragtag.rb
205
266
  - lib/malt/engines/rdiscount.rb
206
267
  - lib/malt/engines/rdoc.rb
207
268
  - lib/malt/engines/redcloth.rb
208
- - lib/malt/engines/rtals.rb
209
269
  - lib/malt/engines/ruby.rb
210
270
  - lib/malt/engines/sass.rb
211
271
  - lib/malt/engines/tenjin.rb
212
272
  - lib/malt/engines.rb
213
273
  - lib/malt/formats/abstract.rb
214
274
  - lib/malt/formats/abstract_template.rb
275
+ - lib/malt/formats/builder.rb
215
276
  - lib/malt/formats/css.rb
216
277
  - lib/malt/formats/erb.rb
278
+ - lib/malt/formats/erector.rb
217
279
  - lib/malt/formats/haml.rb
218
280
  - lib/malt/formats/html.rb
219
281
  - lib/malt/formats/latex.rb
220
282
  - lib/malt/formats/less.rb
221
283
  - lib/malt/formats/liquid.rb
284
+ - lib/malt/formats/markaby.rb
222
285
  - lib/malt/formats/markdown.rb
286
+ - lib/malt/formats/mustache.rb
223
287
  - lib/malt/formats/pdf.rb
224
288
  - lib/malt/formats/radius.rb
289
+ - lib/malt/formats/ragtag.rb
225
290
  - lib/malt/formats/rbhtml.rb
226
291
  - lib/malt/formats/rdoc.rb
227
292
  - lib/malt/formats/rhtml.rb
228
- - lib/malt/formats/rtals.rb
229
293
  - lib/malt/formats/ruby.rb
230
294
  - lib/malt/formats/sass.rb
231
295
  - lib/malt/formats/scss.rb
232
296
  - lib/malt/formats/tenjin.rb
233
297
  - lib/malt/formats/text.rb
234
298
  - lib/malt/formats/textile.rb
299
+ - lib/malt/formats/xml.rb
235
300
  - lib/malt/formats/yaml.rb
236
301
  - lib/malt/formats.rb
237
302
  - lib/malt/kernel.rb
238
303
  - lib/malt/markup.rb
239
304
  - lib/malt/meta/data.rb
240
- - lib/malt/meta/gemfile
305
+ - lib/malt/meta/package
241
306
  - lib/malt/meta/profile
242
307
  - lib/malt/render.rb
243
308
  - lib/malt/template.rb
244
309
  - lib/malt.rb
245
310
  - meta/data.rb
246
- - meta/gemfile
311
+ - meta/package
247
312
  - meta/profile
248
313
  - qed/01_overview.rdoc
249
314
  - qed/02_formats.rdoc
@@ -254,7 +319,7 @@ files:
254
319
  - qed/03_formats/05_erb.rdoc
255
320
  - qed/03_formats/06_liquid.rdoc
256
321
  - qed/03_formats/07_haml.rdoc
257
- - qed/03_formats/08_rtal.rdoc
322
+ - qed/03_formats/08_ragtag.rdoc
258
323
  - qed/03_formats/09_radius.rdoc
259
324
  - qed/03_formats/11_tenjin.rdoc
260
325
  - qed/03_formats/12_rbhtml.rdoc
@@ -262,6 +327,10 @@ files:
262
327
  - qed/03_formats/14_scss.rdoc
263
328
  - qed/03_formats/15_less.rdoc
264
329
  - qed/03_formats/16_ruby.rdoc
330
+ - qed/03_formats/17_markaby.rdoc
331
+ - qed/03_formats/18_builder.rb
332
+ - qed/03_formats/19_erector.rb
333
+ - qed/03_formats/20_mustache.rdoc
265
334
  - qed/applique/malt.rb
266
335
  - qed/samples/data.yml
267
336
  - qed/samples/output-erb.txt
@@ -270,10 +339,10 @@ files:
270
339
  - qed/samples/output-radius.txt
271
340
  - qed/samples/sample.erb
272
341
  - qed/samples/sample.liquid
342
+ - qed/samples/sample.markdown
273
343
  - qed/samples/sample.mustache
274
344
  - qed/samples/sample.radius
275
- - test/samples/sample.md
276
- - test/samples/sample.rdoc
345
+ - qed/samples/sample.rdoc
277
346
  - README.rdoc
278
347
  - Syckfile
279
348
  - History.rdoc