malt 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +18 -0
- data/README.rdoc +6 -2
- data/lib/malt.rb +9 -0
- data/lib/malt/engines/abstract.rb +7 -7
- data/lib/malt/engines/bluecloth.rb +3 -3
- data/lib/malt/engines/builder.rb +72 -0
- data/lib/malt/engines/erb.rb +2 -0
- data/lib/malt/engines/erector.rb +59 -0
- data/lib/malt/engines/haml.rb +2 -2
- data/lib/malt/engines/kramdown.rb +6 -4
- data/lib/malt/engines/less.rb +8 -8
- data/lib/malt/engines/markaby.rb +51 -0
- data/lib/malt/engines/mustache.rb +44 -0
- data/lib/malt/engines/radius.rb +4 -4
- data/lib/malt/engines/ragtag.rb +49 -0
- data/lib/malt/engines/rdiscount.rb +1 -1
- data/lib/malt/engines/rdoc.rb +3 -3
- data/lib/malt/engines/redcloth.rb +1 -1
- data/lib/malt/engines/sass.rb +8 -8
- data/lib/malt/engines/tenjin.rb +6 -6
- data/lib/malt/formats/abstract.rb +8 -2
- data/lib/malt/formats/builder.rb +56 -0
- data/lib/malt/formats/css.rb +8 -8
- data/lib/malt/formats/erector.rb +53 -0
- data/lib/malt/formats/haml.rb +2 -2
- data/lib/malt/formats/html.rb +3 -3
- data/lib/malt/formats/latex.rb +4 -4
- data/lib/malt/formats/less.rb +5 -5
- data/lib/malt/formats/liquid.rb +11 -1
- data/lib/malt/formats/markaby.rb +53 -0
- data/lib/malt/formats/markdown.rb +6 -6
- data/lib/malt/formats/mustache.rb +34 -0
- data/lib/malt/formats/pdf.rb +2 -2
- data/lib/malt/formats/radius.rb +4 -4
- data/lib/malt/formats/{rtals.rb → ragtag.rb} +13 -9
- data/lib/malt/formats/rdoc.rb +4 -4
- data/lib/malt/formats/ruby.rb +2 -2
- data/lib/malt/formats/sass.rb +10 -0
- data/lib/malt/formats/scss.rb +10 -0
- data/lib/malt/formats/tenjin.rb +4 -4
- data/lib/malt/formats/textile.rb +12 -12
- data/lib/malt/formats/xml.rb +29 -0
- data/lib/malt/formats/yaml.rb +2 -2
- data/lib/malt/meta/data.rb +4 -4
- data/lib/malt/meta/{gemfile → package} +6 -2
- data/lib/malt/render.rb +37 -9
- data/meta/data.rb +4 -4
- data/meta/{gemfile → package} +6 -2
- data/qed/03_formats/08_ragtag.rdoc +19 -0
- data/qed/03_formats/17_markaby.rdoc +50 -0
- data/qed/03_formats/18_builder.rb +50 -0
- data/qed/03_formats/19_erector.rb +50 -0
- data/qed/03_formats/20_mustache.rdoc +54 -0
- data/{test/samples/sample.md → qed/samples/sample.markdown} +0 -0
- data/{test → qed}/samples/sample.rdoc +0 -0
- metadata +81 -12
- data/lib/malt/engines/rtals.rb +0 -46
- data/qed/03_formats/08_rtal.rdoc +0 -15
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'malt/formats/abstract_template'
|
2
|
+
require 'malt/engines/mustache'
|
3
|
+
|
4
|
+
module Malt::Format
|
5
|
+
|
6
|
+
# Mustache templates
|
7
|
+
#
|
8
|
+
# http://github.com/defunkt/mustache
|
9
|
+
#
|
10
|
+
class Mustache < AbstractTemplate
|
11
|
+
|
12
|
+
register('mustache')
|
13
|
+
|
14
|
+
#
|
15
|
+
def mustache(*)
|
16
|
+
text
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
def to_mustache(*)
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
#
|
27
|
+
def render_engine
|
28
|
+
@render_engine ||= Malt::Engine::Mustache.new(options)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
data/lib/malt/formats/pdf.rb
CHANGED
data/lib/malt/formats/radius.rb
CHANGED
@@ -13,22 +13,22 @@ module Malt::Format
|
|
13
13
|
register('radius')
|
14
14
|
|
15
15
|
#
|
16
|
-
def radius
|
16
|
+
def radius(*)
|
17
17
|
text
|
18
18
|
end
|
19
19
|
|
20
20
|
#
|
21
|
-
def to_radius
|
21
|
+
def to_radius(*)
|
22
22
|
self
|
23
23
|
end
|
24
24
|
|
25
25
|
#
|
26
|
-
def html(data, &yld)
|
26
|
+
def html(data=nil, &yld)
|
27
27
|
render_engine.render(:text=>text, :file=>file, :data=>data, &yld)
|
28
28
|
end
|
29
29
|
|
30
30
|
#
|
31
|
-
def to_html(data, &yld)
|
31
|
+
def to_html(data=nil, &yld)
|
32
32
|
text = html(data, &yld)
|
33
33
|
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
34
34
|
HTML.new(opts)
|
@@ -1,43 +1,47 @@
|
|
1
1
|
require 'malt/formats/abstract'
|
2
2
|
require 'malt/formats/html'
|
3
|
-
require 'malt/
|
3
|
+
require 'malt/formats/xml'
|
4
|
+
require 'malt/engines/ragtag'
|
4
5
|
|
5
6
|
module Malt::Format
|
6
7
|
|
8
|
+
# RagTag
|
7
9
|
#
|
8
|
-
|
10
|
+
# http://github.com/rubyworks/ragtag
|
11
|
+
#
|
12
|
+
class RagTag < Abstract
|
9
13
|
|
10
|
-
register('
|
14
|
+
register('ragtag', 'rt')
|
11
15
|
|
12
16
|
#
|
13
|
-
def html(data, &yld)
|
17
|
+
def html(data=nil, &yld)
|
14
18
|
render_engine.render(:text=>text, :data=>data, &yld)
|
15
19
|
end
|
16
20
|
|
17
21
|
#
|
18
|
-
def to_html(data, &yld)
|
22
|
+
def to_html(data=nil, &yld)
|
19
23
|
text = html(data, &yld)
|
20
24
|
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
21
25
|
HTML.new(opts)
|
22
26
|
end
|
23
27
|
|
24
28
|
#
|
25
|
-
def xml(data, &yld)
|
29
|
+
def xml(data=nil, &yld)
|
26
30
|
render_engine.render(:text=>text, :data=>data, &yld)
|
27
31
|
end
|
28
32
|
|
29
33
|
#
|
30
|
-
def to_xml(data, &yld)
|
34
|
+
def to_xml(data=nil, &yld)
|
31
35
|
text = xml(data, &yld)
|
32
36
|
opts = options.merge(:text=>text, :file=>refile(:xml), :type=>:xml)
|
33
|
-
|
37
|
+
XML.new(opts)
|
34
38
|
end
|
35
39
|
|
36
40
|
private
|
37
41
|
|
38
42
|
#
|
39
43
|
def render_engine
|
40
|
-
@render_engine ||= Malt::Engine::
|
44
|
+
@render_engine ||= Malt::Engine::RagTag.new(options)
|
41
45
|
end
|
42
46
|
|
43
47
|
end
|
data/lib/malt/formats/rdoc.rb
CHANGED
@@ -10,22 +10,22 @@ module Malt::Format
|
|
10
10
|
register('rdoc')
|
11
11
|
|
12
12
|
#
|
13
|
-
def rdoc
|
13
|
+
def rdoc(*)
|
14
14
|
text
|
15
15
|
end
|
16
16
|
|
17
17
|
#
|
18
|
-
def to_rdoc
|
18
|
+
def to_rdoc(*)
|
19
19
|
self
|
20
20
|
end
|
21
21
|
|
22
22
|
#
|
23
|
-
def html
|
23
|
+
def html(*)
|
24
24
|
render_engine.render(:text=>text, :file=>file, :format=>:html)
|
25
25
|
end
|
26
26
|
|
27
27
|
#
|
28
|
-
def to_html
|
28
|
+
def to_html(*)
|
29
29
|
opts = options.merge(:text=>html, :file=>refile(:html), :type=>:html)
|
30
30
|
HTML.new(opts)
|
31
31
|
end
|
data/lib/malt/formats/ruby.rb
CHANGED
data/lib/malt/formats/sass.rb
CHANGED
data/lib/malt/formats/scss.rb
CHANGED
data/lib/malt/formats/tenjin.rb
CHANGED
@@ -12,12 +12,12 @@ module Malt::Format
|
|
12
12
|
|
13
13
|
register 'tenjin'
|
14
14
|
|
15
|
-
def rb
|
15
|
+
def rb(*)
|
16
16
|
render_engine.compile(text, file)
|
17
17
|
end
|
18
18
|
|
19
19
|
# Erb templates can be "precompiled" into Ruby templates.
|
20
|
-
def to_rb
|
20
|
+
def to_rb(*)
|
21
21
|
text = rb
|
22
22
|
Ruby.new(:text=>text, :file=>refile(:rb), :type=>:rb)
|
23
23
|
end
|
@@ -25,12 +25,12 @@ module Malt::Format
|
|
25
25
|
alias_method(:to_ruby, :to_rb)
|
26
26
|
|
27
27
|
#
|
28
|
-
def html
|
28
|
+
def html(data=nil, &yld)
|
29
29
|
render(:html, data, &yld)
|
30
30
|
end
|
31
31
|
|
32
32
|
#
|
33
|
-
def to_html(data, &yld)
|
33
|
+
def to_html(data=nil, &yld)
|
34
34
|
new_text = render(:html, data, &yld)
|
35
35
|
new_file = refile(:html)
|
36
36
|
new_options = options.merge(:text=>new_text, :file=>new_file, :type=>:html)
|
data/lib/malt/formats/textile.rb
CHANGED
@@ -9,12 +9,7 @@ module Malt::Format
|
|
9
9
|
register('textile', 'tt')
|
10
10
|
|
11
11
|
#
|
12
|
-
def
|
13
|
-
render_engine.render(:format=>:html, :text=>text, :file=>file)
|
14
|
-
end
|
15
|
-
|
16
|
-
#
|
17
|
-
def textile
|
12
|
+
def textile(*)
|
18
13
|
text
|
19
14
|
end
|
20
15
|
|
@@ -22,17 +17,22 @@ module Malt::Format
|
|
22
17
|
alias_method :tt, :textile
|
23
18
|
|
24
19
|
#
|
25
|
-
def
|
26
|
-
|
27
|
-
HTML.new(opts)
|
20
|
+
def to_textile(*)
|
21
|
+
self
|
28
22
|
end
|
29
23
|
|
24
|
+
alias_method :to_tt, :to_textile
|
25
|
+
|
30
26
|
#
|
31
|
-
def
|
32
|
-
|
27
|
+
def html(*)
|
28
|
+
render_engine.render(:format=>:html, :text=>text, :file=>file)
|
33
29
|
end
|
34
30
|
|
35
|
-
|
31
|
+
#
|
32
|
+
def to_html(*)
|
33
|
+
opts = options.merge(:text=>html, :file=>refile(:html), :type=>:html)
|
34
|
+
HTML.new(opts)
|
35
|
+
end
|
36
36
|
|
37
37
|
#
|
38
38
|
#def render_to(to, *)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'malt/formats/abstract'
|
2
|
+
|
3
|
+
module Malt::Format
|
4
|
+
|
5
|
+
# TODO: Add conversion to_html.
|
6
|
+
class XML < Abstract
|
7
|
+
|
8
|
+
register 'xml'
|
9
|
+
|
10
|
+
#
|
11
|
+
def xml(*)
|
12
|
+
text
|
13
|
+
end
|
14
|
+
|
15
|
+
# XML is XML ;)
|
16
|
+
def to_xml(*)
|
17
|
+
self
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
#
|
23
|
+
def render_engine
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
data/lib/malt/formats/yaml.rb
CHANGED
@@ -26,12 +26,12 @@ module Malt::Format
|
|
26
26
|
|
27
27
|
# Converting a plan YAML file to HTML makes no sense so we
|
28
28
|
# just wrap it in +pre+ tags.
|
29
|
-
def html
|
29
|
+
def html(*)
|
30
30
|
"<pre>\n#{h text}\n</pre>"
|
31
31
|
end
|
32
32
|
|
33
33
|
#
|
34
|
-
def to_html
|
34
|
+
def to_html(*)
|
35
35
|
text = html
|
36
36
|
opts = options.merge(:text=>text, :file=>refile(:html), :type=>:html)
|
37
37
|
HTML.new(opts)
|
data/lib/malt/meta/data.rb
CHANGED
@@ -4,10 +4,10 @@ module Malt
|
|
4
4
|
|
5
5
|
DIRECTORY = File.dirname(__FILE__)
|
6
6
|
|
7
|
-
def self.
|
8
|
-
@
|
7
|
+
def self.package
|
8
|
+
@package ||= (
|
9
9
|
require 'yaml'
|
10
|
-
YAML.load(File.new(DIRECTORY + '/
|
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
|
-
|
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-
|
3
|
-
version : 0.
|
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
|
|
data/lib/malt/render.rb
CHANGED
@@ -1,32 +1,54 @@
|
|
1
|
+
require 'malt/kernel'
|
1
2
|
require 'malt/config'
|
2
3
|
require 'malt/core_ext'
|
3
4
|
|
4
5
|
module Malt
|
5
6
|
|
7
|
+
extend Kernel
|
8
|
+
|
6
9
|
#
|
7
10
|
def self.config
|
8
11
|
@config ||= Config.new
|
9
12
|
end
|
10
13
|
|
14
|
+
# Render template.
|
15
|
+
#
|
16
|
+
# parameters[:file] - File name of template. Used to read text.
|
17
|
+
# parameters[:text] - Text of template document.
|
18
|
+
# parameters[:type] - File type/extension used to look up engine.
|
19
|
+
# parameters[:pass] - If not a supported type return text rather than raise an error.
|
20
|
+
# parameters[:engine] - Force the use of a this specific engine.
|
21
|
+
# parameters[:to] - Format to convert to (usual default is `html`).
|
11
22
|
#
|
12
23
|
def self.render(parameters={}, &body)
|
13
24
|
type = parameters[:type]
|
14
25
|
file = parameters[:file]
|
26
|
+
text = parameters[:text]
|
15
27
|
engine = parameters[:engine]
|
16
28
|
|
17
|
-
type = file_type(file
|
29
|
+
type = file_type(file, type)
|
18
30
|
text = file_read(file) unless text
|
19
|
-
engine = engine(type, engine).new
|
20
31
|
|
21
|
-
|
22
|
-
|
32
|
+
engine_class = engine(type, engine)
|
33
|
+
|
34
|
+
if engine_class
|
35
|
+
parameters[:type] = type
|
36
|
+
parameters[:text] = text
|
23
37
|
|
24
|
-
|
38
|
+
engine = engine_class.new
|
39
|
+
engine.render(parameters, &body)
|
40
|
+
else
|
41
|
+
if parameters[:pass]
|
42
|
+
text
|
43
|
+
else
|
44
|
+
raise "no engine to handle `#{type}' format"
|
45
|
+
end
|
46
|
+
end
|
25
47
|
end
|
26
48
|
|
27
49
|
#
|
28
50
|
def self.engine(type, engine=nil)
|
29
|
-
type = type
|
51
|
+
type = ext_to_type(type)
|
30
52
|
engine = engine || config.engine[type]
|
31
53
|
case engine
|
32
54
|
when Class
|
@@ -39,14 +61,14 @@ module Malt
|
|
39
61
|
if Engine.registry[type]
|
40
62
|
Engine.registry[type].first
|
41
63
|
else
|
42
|
-
|
64
|
+
nil
|
43
65
|
end
|
44
66
|
end
|
45
67
|
end
|
46
68
|
|
47
69
|
#
|
48
|
-
def self.file_type(file)
|
49
|
-
ext = File.extname(file)
|
70
|
+
def self.file_type(file, type=nil)
|
71
|
+
ext = type || File.extname(file)
|
50
72
|
ext = ext.to_s.downcase
|
51
73
|
if ext.empty?
|
52
74
|
nil
|
@@ -57,9 +79,15 @@ module Malt
|
|
57
79
|
end
|
58
80
|
end
|
59
81
|
|
82
|
+
#
|
83
|
+
#def self.ext_type(type)
|
84
|
+
# type.to_s.downcase.sub(/^\./,'').to_sym
|
85
|
+
#end
|
86
|
+
|
60
87
|
# TODO: Handle File objects and URLs.
|
61
88
|
def self.file_read(file)
|
62
89
|
File.read(file)
|
63
90
|
end
|
64
91
|
|
65
92
|
end
|
93
|
+
|