ron 0.3 → 0.4
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/ron.gemspec +39 -51
- metadata +50 -77
- data/COPYING +0 -21
- data/README.md +0 -133
- data/Rakefile +0 -94
- data/bin/ron +0 -130
- data/lib/ron.rb +0 -16
- data/lib/ron/document.rb +0 -289
- data/lib/ron/layout.html +0 -75
- data/lib/ron/roff.rb +0 -180
- data/man/markdown.5 +0 -1614
- data/man/markdown.5.ron +0 -881
- data/man/ron.1 +0 -226
- data/man/ron.1.ron +0 -158
- data/man/ron.5 +0 -210
- data/man/ron.5.ron +0 -154
- data/man/ron.7 +0 -201
- data/man/ron.7.ron +0 -133
- data/test/angle_bracket_syntax.html +0 -12
- data/test/angle_bracket_syntax.ron +0 -12
- data/test/basic_document.html +0 -3
- data/test/basic_document.ron +0 -4
- data/test/custom_title_document.html +0 -3
- data/test/custom_title_document.ron +0 -5
- data/test/definition_list_syntax.html +0 -21
- data/test/definition_list_syntax.ron +0 -18
- data/test/document_test.rb +0 -88
- data/test/ron_test.rb +0 -59
- data/test/titleless_document.html +0 -2
- data/test/titleless_document.ron +0 -2
@@ -1,12 +0,0 @@
|
|
1
|
-
<h2 id='NAME'>NAME</h2>
|
2
|
-
<p><code>angle_bracket_syntax</code> -- angle bracket syntax test</p>
|
3
|
-
<p>A <var>WORD</var> in angle brackets is converted to <var>WORD</var>,</p>
|
4
|
-
|
5
|
-
<pre><code>except when <WORD> is
|
6
|
-
part of a preformatted
|
7
|
-
code block,
|
8
|
-
</code></pre>
|
9
|
-
|
10
|
-
<p>or when <code><WORD></code> is enclosed in backticks.</p>
|
11
|
-
|
12
|
-
<p>or when <var>WORD</var> has a <dot.> or <foo:colon>.</p>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
angle_bracket_syntax(5) -- angle bracket syntax test
|
2
|
-
====================================================
|
3
|
-
|
4
|
-
A <WORD> in angle brackets is converted to <var>WORD</var>,
|
5
|
-
|
6
|
-
except when <WORD> is
|
7
|
-
part of a preformatted
|
8
|
-
code block,
|
9
|
-
|
10
|
-
or when `<WORD>` is enclosed in backticks.
|
11
|
-
|
12
|
-
or when <WORD> has a <dot.> or <foo:colon>.
|
data/test/basic_document.html
DELETED
data/test/basic_document.ron
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
<h2 id='NAME'>NAME</h2>
|
2
|
-
<p><code>defition_list_syntax</code> -- hiya</p>
|
3
|
-
<p>Definition lists look like unordered lists:</p>
|
4
|
-
|
5
|
-
<dl>
|
6
|
-
<dt class="flush">term</dt>
|
7
|
-
<dd><p>definition</p></dd>
|
8
|
-
<dt>another one</dt>
|
9
|
-
<dd>
|
10
|
-
<p>The definition may span
|
11
|
-
multiple lines and even</p>
|
12
|
-
|
13
|
-
<p>start</p>
|
14
|
-
|
15
|
-
<p>new paragraphs</p>
|
16
|
-
</dd>
|
17
|
-
<dt>
|
18
|
-
<code>--somearg</code>=<var>VALUE</var>
|
19
|
-
</dt>
|
20
|
-
<dd><p>We can do that too.</p></dd>
|
21
|
-
</dl>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
defition_list_syntax(5) -- hiya
|
2
|
-
===============================
|
3
|
-
|
4
|
-
Definition lists look like unordered lists:
|
5
|
-
|
6
|
-
* term:
|
7
|
-
definition
|
8
|
-
|
9
|
-
* another one:
|
10
|
-
The definition may span
|
11
|
-
multiple lines and even
|
12
|
-
|
13
|
-
start
|
14
|
-
|
15
|
-
new paragraphs
|
16
|
-
|
17
|
-
* `--somearg`=<VALUE>:
|
18
|
-
We can do that too.
|
data/test/document_test.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
require 'contest'
|
2
|
-
require 'ron/document'
|
3
|
-
|
4
|
-
class DocumentTest < Test::Unit::TestCase
|
5
|
-
SIMPLE_FILE = "#{File.dirname(__FILE__)}/basic_document.ron"
|
6
|
-
|
7
|
-
test "new with path" do
|
8
|
-
doc = Ron::Document.new(SIMPLE_FILE)
|
9
|
-
assert_equal File.read(SIMPLE_FILE), doc.data
|
10
|
-
end
|
11
|
-
|
12
|
-
test "new with path and block" do
|
13
|
-
doc = Ron::Document.new('hello.1.ron') { "# hello(1) -- hello world" }
|
14
|
-
assert_equal "# hello(1) -- hello world", doc.data
|
15
|
-
end
|
16
|
-
|
17
|
-
test "new with path and block but missing name section" do
|
18
|
-
doc = Ron::Document.new('foo.7.ron') { '' }
|
19
|
-
assert_equal 'foo', doc.name
|
20
|
-
assert_equal '7', doc.section
|
21
|
-
end
|
22
|
-
|
23
|
-
test "new with non conventional path and missing name section" do
|
24
|
-
doc = Ron::Document.new('bar.ron') { '' }
|
25
|
-
assert_equal 'bar', doc.name
|
26
|
-
assert_equal nil, doc.section
|
27
|
-
assert_equal "./bar.html", doc.path_for('html')
|
28
|
-
assert_equal "./bar", doc.path_for('roff')
|
29
|
-
assert_equal "./bar", doc.path_for('')
|
30
|
-
assert_equal "./bar", doc.path_for(nil)
|
31
|
-
end
|
32
|
-
|
33
|
-
test "new with path and name section mismatch" do
|
34
|
-
doc = Ron::Document.new('foo/rick.7.ron') { "# randy(3) -- I'm confused." }
|
35
|
-
assert_equal 'randy', doc.name
|
36
|
-
assert_equal 'rick', doc.path_name
|
37
|
-
assert_equal '3', doc.section
|
38
|
-
assert_equal '7', doc.path_section
|
39
|
-
assert_equal 'rick.7', doc.basename
|
40
|
-
assert_equal 'foo/rick.7.bar', doc.path_for(:bar)
|
41
|
-
end
|
42
|
-
|
43
|
-
test "new with no path and a name section" do
|
44
|
-
doc = Ron::Document.new { "# brandy(5) -- wootderitis" }
|
45
|
-
assert_equal nil, doc.path_name
|
46
|
-
assert_equal nil, doc.path_section
|
47
|
-
assert_equal 'brandy', doc.name
|
48
|
-
assert_equal '5', doc.section
|
49
|
-
assert_equal 'brandy.5', doc.basename
|
50
|
-
assert_equal 'brandy.5.foo', doc.path_for(:foo)
|
51
|
-
end
|
52
|
-
|
53
|
-
context "simple conventionally named document" do
|
54
|
-
setup do
|
55
|
-
@doc = Ron::Document.new('hello.1.ron') { "# hello(1) -- hello world" }
|
56
|
-
end
|
57
|
-
|
58
|
-
should "load data" do
|
59
|
-
assert_equal "# hello(1) -- hello world", @doc.data
|
60
|
-
end
|
61
|
-
|
62
|
-
should "extract the manual page name from the filename or document" do
|
63
|
-
assert_equal 'hello', @doc.name
|
64
|
-
end
|
65
|
-
|
66
|
-
should "extract the manual page section from the filename or document" do
|
67
|
-
assert_equal '1', @doc.section
|
68
|
-
end
|
69
|
-
|
70
|
-
should "convert to an HTML fragment" do
|
71
|
-
assert_equal %[<h2 id='NAME'>NAME</h2>\n<p><code>hello</code> -- hello world</p>\n],
|
72
|
-
@doc.to_html_fragment
|
73
|
-
end
|
74
|
-
|
75
|
-
should "convert to HTML with a layout" do
|
76
|
-
assert_match %r{^<!DOCTYPE html.*}m, @doc.to_html
|
77
|
-
assert_match %[<h2 id='NAME'>NAME</h2>\n<p><code>hello</code> -- hello world</p>],
|
78
|
-
@doc.to_html
|
79
|
-
end
|
80
|
-
|
81
|
-
should "construct a path to related documents" do
|
82
|
-
assert_equal "./hello.1.html", @doc.path_for(:html)
|
83
|
-
assert_equal "./hello.1", @doc.path_for(:roff)
|
84
|
-
assert_equal "./hello.1", @doc.path_for('')
|
85
|
-
assert_equal "./hello.1", @doc.path_for(nil)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
data/test/ron_test.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'contest'
|
2
|
-
|
3
|
-
class RonTest < Test::Unit::TestCase
|
4
|
-
testdir = File.dirname(__FILE__)
|
5
|
-
|
6
|
-
# setup PATH so that we execute the right ron command
|
7
|
-
bindir = File.dirname(testdir) + "/bin"
|
8
|
-
ENV['PATH'] = "#{bindir}:#{ENV['PATH']}"
|
9
|
-
|
10
|
-
# make sure the load path is setup correctly
|
11
|
-
libdir = File.expand_path("#{testdir}/../lib")
|
12
|
-
$:.unshift(libdir) unless $:.any? { |path| File.expand_path(path) == libdir }
|
13
|
-
ENV['RUBYLIB'] = $:.join(':')
|
14
|
-
|
15
|
-
require 'ron'
|
16
|
-
|
17
|
-
test "takes ron text on stdin and produces roff on stdout" do
|
18
|
-
output = `echo '# hello(1) -- hello world' | ron --date=2009-11-23`
|
19
|
-
lines = output.split("\n")
|
20
|
-
assert_equal 7, lines.size
|
21
|
-
assert_equal %[.\\" generated with Ron/v#{Ron::VERSION}], lines.shift
|
22
|
-
assert_equal %[.\\" http://github.com/rtomayko/ron/], lines.shift
|
23
|
-
assert_equal %[.], lines.shift
|
24
|
-
assert_equal %[.TH "HELLO" "1" "November 2009" "" ""], lines.shift
|
25
|
-
assert_equal %[.], lines.shift
|
26
|
-
assert_equal %[.SH "NAME"], lines.shift
|
27
|
-
assert_equal %[\\fBhello\\fR \\-\\- hello world], lines.shift
|
28
|
-
assert_equal 0, lines.size
|
29
|
-
end
|
30
|
-
|
31
|
-
test "produces html instead of roff with the --html argument" do
|
32
|
-
output = `echo '# hello(1) -- hello world' | ron --html`
|
33
|
-
assert_match(/<h2 id='NAME'>NAME<\/h2>/, output)
|
34
|
-
end
|
35
|
-
|
36
|
-
test "produces html fragment with the --fragment argument" do
|
37
|
-
output = `echo '# hello(1) -- hello world' | ron --fragment`
|
38
|
-
assert_equal "<h2 id='NAME'>NAME</h2>\n<p><code>hello</code> -- hello world</p>\n",
|
39
|
-
output
|
40
|
-
end
|
41
|
-
|
42
|
-
# file based tests
|
43
|
-
Dir[testdir + '/*.ron'].each do |source|
|
44
|
-
dest = source.sub(/ron$/, 'html')
|
45
|
-
wrong = source.sub(/ron$/, "wrong")
|
46
|
-
test File.basename(source, '.ron') do
|
47
|
-
html = `ron --html --fragment #{source}`
|
48
|
-
expected = File.read(dest) rescue ''
|
49
|
-
if expected != html
|
50
|
-
File.open(wrong, 'wb') { |f| f.write(html) }
|
51
|
-
diff = `diff -u #{dest} #{wrong} 2>/dev/null`
|
52
|
-
fail "the #{dest} file does not exist" if diff.empty?
|
53
|
-
flunk diff
|
54
|
-
elsif File.exist?(wrong)
|
55
|
-
File.unlink(wrong)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
data/test/titleless_document.ron
DELETED