rdoc-generator-mdoc 0.0.1 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/rdoc/generator/mdoc.rb +17 -5
- data/lib/rdoc/generator/mdoc/attribute.rb +1 -1
- data/lib/rdoc/generator/mdoc/class.rb +3 -1
- data/lib/rdoc/generator/mdoc/comment.rb +11 -2
- data/lib/rdoc/generator/mdoc/constant.rb +1 -1
- data/lib/rdoc/generator/mdoc/helpers.rb +2 -2
- data/lib/rdoc/generator/mdoc/method.rb +7 -3
- data/lib/rdoc/generator/mdoc/module.rb +12 -6
- data/lib/rdoc/generator/mdoc/section.rb +18 -10
- data/rdoc-generator-mdoc.gemspec +1 -5
- metadata +2 -3
- data/lib/rdoc/generator/mdoc/version.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65e13352de700980bfa375a2aa5984af7dd3e029
|
4
|
+
data.tar.gz: 129c79792e882b1fda01d38832cd6277f4a7735b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f4b84fbbfd8ad2cc7e881172383d84c9932b69cf56bdda57d7b70a3c300313ddceda4bca81a25fab04d98d49580e63b8ee601f38011e52da4e2aff38f08d7bf
|
7
|
+
data.tar.gz: 0052a203799ac1574663875d7c7123c826918445538a06ddd5fefe699e51889691250f66aa29d58dd9c5e1bbfdd0d6fc949ccfc351e27e213c2d6a198662db33
|
data/lib/rdoc/generator/mdoc.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "erb"
|
2
2
|
require "rdoc"
|
3
|
-
require "rdoc/generator/mdoc/version"
|
4
3
|
require "rdoc/generator/mdoc/class"
|
5
4
|
require "rdoc/generator/mdoc/module"
|
6
5
|
require "rdoc/generator/mdoc/render_context"
|
@@ -27,8 +26,10 @@ class RDoc::Generator::Mdoc
|
|
27
26
|
# Create an instance usign the provided RDoc::Store and RDoc::Options.
|
28
27
|
def initialize(store, options)
|
29
28
|
@store = store
|
30
|
-
@mandb_section =
|
31
|
-
|
29
|
+
@mandb_section = sanitize_mandb_section(
|
30
|
+
options.mandb_section || "3-rdoc",
|
31
|
+
)
|
32
|
+
@output_directory = File.expand_path(File.join(options.op_dir, "man#{mandb_section.split('-').first}"))
|
32
33
|
FileUtils.mkdir_p output_directory
|
33
34
|
end
|
34
35
|
|
@@ -36,7 +37,7 @@ class RDoc::Generator::Mdoc
|
|
36
37
|
# Generate man pages.
|
37
38
|
#
|
38
39
|
# Every class, module and method gets their own man page in the
|
39
|
-
# "
|
40
|
+
# "manSECTION_PREFIX" subdirectory of the output directory.
|
40
41
|
def generate
|
41
42
|
generate_class_and_module_pages
|
42
43
|
generate_method_pages
|
@@ -81,7 +82,18 @@ class RDoc::Generator::Mdoc
|
|
81
82
|
end
|
82
83
|
|
83
84
|
def file_name(object)
|
84
|
-
File.join(
|
85
|
+
File.join(
|
86
|
+
output_directory,
|
87
|
+
"#{sanitize_file_name(object.full_name)}.#{mandb_section}",
|
88
|
+
)
|
89
|
+
end
|
90
|
+
|
91
|
+
def sanitize_file_name(string)
|
92
|
+
string.gsub("/", "\\")
|
93
|
+
end
|
94
|
+
|
95
|
+
def sanitize_mandb_section(string)
|
96
|
+
string.gsub(".", "-")
|
85
97
|
end
|
86
98
|
|
87
99
|
def render_template(template, assigns)
|
@@ -4,7 +4,9 @@ require "rdoc/generator/mdoc/module"
|
|
4
4
|
class RDoc::Generator::Mdoc
|
5
5
|
class Class < Module
|
6
6
|
def superclass
|
7
|
-
if rdoc_class.superclass.
|
7
|
+
if rdoc_class.superclass.nil?
|
8
|
+
UnknownClass.new("Object")
|
9
|
+
elsif rdoc_class.superclass.is_a? String
|
8
10
|
UnknownClass.new(rdoc_class.superclass)
|
9
11
|
else
|
10
12
|
self.class.new(rdoc_class.superclass, mandb_section)
|
@@ -3,8 +3,17 @@ require "rdoc/generator/mdoc/formatter"
|
|
3
3
|
|
4
4
|
class RDoc::Generator::Mdoc
|
5
5
|
class Comment
|
6
|
-
def initialize(
|
7
|
-
|
6
|
+
def initialize(comment)
|
7
|
+
case comment
|
8
|
+
when RDoc::Markup::Document
|
9
|
+
@rdoc_document = comment
|
10
|
+
when RDoc::Comment
|
11
|
+
@markup = comment.text
|
12
|
+
when String
|
13
|
+
@markup = comment
|
14
|
+
else
|
15
|
+
raise "Can't handle input of class: #{comment.class}"
|
16
|
+
end
|
8
17
|
end
|
9
18
|
|
10
19
|
def first_paragraph
|
@@ -21,13 +21,13 @@ class RDoc::Generator::Mdoc
|
|
21
21
|
# > Typical syntax is shown in the first content macro displayed below,
|
22
22
|
# > ‘.Ad’.
|
23
23
|
def escape(string)
|
24
|
-
string.gsub(%r|[+\-/*%<>=&`'"]|, '\\\&\0')
|
24
|
+
string.to_s.gsub(%r|[+\-/*%<>=&`'"]|, '\\\&\0')
|
25
25
|
end
|
26
26
|
|
27
27
|
##
|
28
28
|
# Returns a new string enclosed in double quotes.
|
29
29
|
def quote(string)
|
30
|
-
string.gsub(/^|$/, '"')
|
30
|
+
string.to_s.gsub(/^|$/, '"')
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
@@ -24,7 +24,7 @@ class RDoc::Generator::Mdoc
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def parameters
|
27
|
-
rdoc_method.params.gsub(/[\(\)]/, '').split(", ")
|
27
|
+
rdoc_method.params.to_s.gsub(/[\(\)]/, '').split(", ")
|
28
28
|
end
|
29
29
|
|
30
30
|
def short_description
|
@@ -66,7 +66,7 @@ class RDoc::Generator::Mdoc
|
|
66
66
|
|
67
67
|
def source
|
68
68
|
@source ||= rdoc_method.token_stream &&
|
69
|
-
strip_source_file_path(rdoc_method.
|
69
|
+
strip_source_file_path(extract_source(rdoc_method.token_stream))
|
70
70
|
end
|
71
71
|
|
72
72
|
def alias?
|
@@ -109,7 +109,7 @@ class RDoc::Generator::Mdoc
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def comment
|
112
|
-
@comment ||= Comment.new(rdoc_method.comment
|
112
|
+
@comment ||= Comment.new(rdoc_method.comment)
|
113
113
|
end
|
114
114
|
|
115
115
|
def extract_invocation_examples(call_seq)
|
@@ -125,5 +125,9 @@ class RDoc::Generator::Mdoc
|
|
125
125
|
def strip_source_file_path(source)
|
126
126
|
source.lines[1..-1].join
|
127
127
|
end
|
128
|
+
|
129
|
+
def extract_source(token_stream)
|
130
|
+
token_stream.compact.map { |t| t.text }.join('')
|
131
|
+
end
|
128
132
|
end
|
129
133
|
end
|
@@ -54,21 +54,27 @@ class RDoc::Generator::Mdoc
|
|
54
54
|
rdoc_constants,
|
55
55
|
rdoc_attributes,
|
56
56
|
mandb_section,
|
57
|
+
self,
|
57
58
|
)
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
62
|
+
def methods_by_type(section)
|
63
|
+
rdoc_module.methods_by_type(section)
|
64
|
+
end
|
65
|
+
|
61
66
|
private
|
62
67
|
|
63
68
|
def comment
|
64
|
-
@comment ||=
|
69
|
+
@comment ||= if rdoc_module.comment_location.is_a? RDoc::Markup::Document
|
70
|
+
Comment.new(rdoc_module.comment_location)
|
71
|
+
else
|
72
|
+
Comment.new(extract_markup(rdoc_module.comment_location))
|
73
|
+
end
|
65
74
|
end
|
66
75
|
|
67
|
-
def
|
68
|
-
|
69
|
-
comment_location.
|
70
|
-
map { |rdoc_comment, _| rdoc_comment.text }.
|
71
|
-
join("\n")
|
76
|
+
def extract_markup(comment_location)
|
77
|
+
comment_location.map { |rdoc_comment, _| rdoc_comment.text }.join("\n")
|
72
78
|
end
|
73
79
|
|
74
80
|
def decorate_rdoc_mixins(rdoc_mixins)
|
@@ -9,11 +9,18 @@ class RDoc::Generator::Mdoc
|
|
9
9
|
[:class, :instance]
|
10
10
|
end
|
11
11
|
|
12
|
-
def initialize(
|
12
|
+
def initialize(
|
13
|
+
rdoc_section,
|
14
|
+
rdoc_constants,
|
15
|
+
rdoc_attributes,
|
16
|
+
mandb_section,
|
17
|
+
parent
|
18
|
+
)
|
13
19
|
@rdoc_section = rdoc_section
|
14
20
|
@rdoc_constants = rdoc_constants
|
15
21
|
@rdoc_attributes = rdoc_attributes
|
16
22
|
@mandb_section = mandb_section
|
23
|
+
@parent = parent
|
17
24
|
end
|
18
25
|
|
19
26
|
def titled?
|
@@ -51,12 +58,13 @@ class RDoc::Generator::Mdoc
|
|
51
58
|
def methods_of_type(type)
|
52
59
|
@methods_of_type ||= {}
|
53
60
|
@methods_of_type[type] ||=
|
54
|
-
rdoc_section.
|
55
61
|
parent.
|
56
62
|
methods_by_type(rdoc_section)[type.to_s].
|
57
63
|
flat_map do |visibility, rdoc_methods|
|
58
|
-
rdoc_methods.
|
59
|
-
|
64
|
+
rdoc_methods.select do |rdoc_method|
|
65
|
+
rdoc_method.is_a? RDoc::AnyMethod
|
66
|
+
end.map do |rdoc_method|
|
67
|
+
Method.new(rdoc_method, mandb_section, visibility)
|
60
68
|
end
|
61
69
|
end
|
62
70
|
end
|
@@ -64,14 +72,14 @@ class RDoc::Generator::Mdoc
|
|
64
72
|
private
|
65
73
|
|
66
74
|
attr_reader :rdoc_section, :rdoc_constants, :rdoc_attributes,
|
67
|
-
:mandb_section
|
68
|
-
|
69
|
-
def markup
|
70
|
-
rdoc_section.comments.map(&:normalize).map(&:text).join
|
71
|
-
end
|
75
|
+
:mandb_section, :parent
|
72
76
|
|
73
77
|
def comment
|
74
|
-
@comment ||=
|
78
|
+
@comment ||= if rdoc_section.comments.is_a? RDoc::Markup::Document
|
79
|
+
Comment.new(rdoc_section.comments)
|
80
|
+
else
|
81
|
+
Comment.new(rdoc_section.comments.map(&:normalize).map(&:text).join)
|
82
|
+
end
|
75
83
|
end
|
76
84
|
end
|
77
85
|
end
|
data/rdoc-generator-mdoc.gemspec
CHANGED
@@ -1,10 +1,6 @@
|
|
1
|
-
lib = File.expand_path("../lib", __FILE__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require "rdoc/generator/mdoc/version"
|
4
|
-
|
5
1
|
Gem::Specification.new do |spec|
|
6
2
|
spec.name = "rdoc-generator-mdoc"
|
7
|
-
spec.version =
|
3
|
+
spec.version = "0.0.3"
|
8
4
|
spec.authors = ["Calle Erlandsson", "Mike Burns"]
|
9
5
|
spec.email = ["calle@thoughtbot.com", "hello@thoughtbot.com"]
|
10
6
|
spec.summary = "An mdoc(7) generator for RDoc"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdoc-generator-mdoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Calle Erlandsson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-08-
|
12
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -94,7 +94,6 @@ files:
|
|
94
94
|
- lib/rdoc/generator/mdoc/section.rb
|
95
95
|
- lib/rdoc/generator/mdoc/unknown_class.rb
|
96
96
|
- lib/rdoc/generator/mdoc/unknown_module.rb
|
97
|
-
- lib/rdoc/generator/mdoc/version.rb
|
98
97
|
- rdoc-generator-mdoc.gemspec
|
99
98
|
- templates/method.mdoc.erb
|
100
99
|
- templates/module.mdoc.erb
|