malt 0.1.1 → 0.2.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/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
|
+
|