yard-markdown 0.1.2 → 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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/example/Bird.md +1 -1
- data/example/Duck.md +1 -1
- data/example/Waterfowl.md +1 -1
- data/example/index.csv +18 -0
- data/templates/default/fulldoc/markdown/setup.rb +45 -3
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c561fb4adb1a813dee7cc4f1793ecee708627115f85aab396933822e4886cb0
|
4
|
+
data.tar.gz: 17e36c633008becd1b8ead5af645e58182d5be5959736cfb34280f4c7a077848
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c472b473610259d5067deceacbdc08ba3e2f68b00e07947d9b0aa55657623d28fccaf65237f213fc01f03b1f5d4674094fdfbe825f1829d17dadcc6c6efec69
|
7
|
+
data.tar.gz: abd879a66a9334c633120f9a1ee486cffa42dd4d08b184fe321bbea27a6f002a626b9adb76c46efc5637a3d489e3f365bdbea6b75f9901b3a22f8694bd73fbcc
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ gem 'yard-markdown'
|
|
14
14
|
```
|
15
15
|
And run `bundle install`
|
16
16
|
|
17
|
-
Run yardoc with `--format=markdown`
|
17
|
+
Run yardoc with `--format=markdown --plugin=markdown` parameters.
|
18
18
|
|
19
19
|
## Backstory
|
20
20
|
Successor to rdoc-mardown gem that was authored by me. So there is a lot of similarities between two - [example](https://github.com/skatkov/rdoc-markdown/tree/main/example).
|
data/example/Bird.md
CHANGED
data/example/Duck.md
CHANGED
data/example/Waterfowl.md
CHANGED
data/example/index.csv
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
name,type,path
|
2
|
+
Waterfowl,Module,Waterfowl.md
|
3
|
+
DEFAULT_DUCK_VELOCITY,Constant,Waterfowl.md#constant-DEFAULT_DUCK_VELOCITY
|
4
|
+
swim,Method,Waterfowl.md#method-i-swim
|
5
|
+
Bird,Class,Bird.md
|
6
|
+
DEFAULT_DUCK_VELOCITY,Constant,Bird.md#constant-DEFAULT_DUCK_VELOCITY
|
7
|
+
_fly_impl,Method,Bird.md#method-i-_fly_impl
|
8
|
+
fly,Method,Bird.md#method-i-fly
|
9
|
+
speak,Method,Bird.md#method-i-speak
|
10
|
+
Duck,Class,Duck.md
|
11
|
+
DEFAULT_DUCK_VELOCITY,Constant,Duck.md#constant-DEFAULT_DUCK_VELOCITY
|
12
|
+
initialize,Method,Duck.md#method-i-initialize
|
13
|
+
speak,Method,Duck.md#method-i-speak
|
14
|
+
swim,Method,Duck.md#method-i-swim
|
15
|
+
useful?,Method,Duck.md#method-i-useful?
|
16
|
+
rubber_ducks,Method,Duck.md#method-c-rubber_ducks
|
17
|
+
domestic,Attribute,Duck.md#attribute-i-domestic
|
18
|
+
rubber,Attribute,Duck.md#attribute-i-rubber
|
@@ -30,6 +30,45 @@ def init
|
|
30
30
|
log.backtrace(e)
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
serialize_index(objects)
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
require 'csv'
|
39
|
+
|
40
|
+
def serialize_index(objects)
|
41
|
+
filepath = "#{options.serializer.basepath}/index.csv"
|
42
|
+
|
43
|
+
CSV.open(filepath, 'wb') do |csv|
|
44
|
+
csv << %w[name type path]
|
45
|
+
|
46
|
+
objects.each do |object|
|
47
|
+
next if object.name == :root
|
48
|
+
|
49
|
+
if object.type == :class
|
50
|
+
csv << [object.name, 'Class', options.serializer.serialized_path(object)]
|
51
|
+
elsif object.type == :module
|
52
|
+
csv << [object.name, 'Module', options.serializer.serialized_path(object)]
|
53
|
+
end
|
54
|
+
|
55
|
+
if constant_listing.size.positive?
|
56
|
+
constant_listing.each { |cnst| csv << [cnst.name(false), 'Constant', (options.serializer.serialized_path(object) + "#" +aref(cnst))] }
|
57
|
+
end
|
58
|
+
|
59
|
+
if (insmeths = public_instance_methods(object)).size > 0
|
60
|
+
insmeths.each { |item| csv << [item.name(false), 'Method', options.serializer.serialized_path(object) + "#" + aref(item)] }
|
61
|
+
end
|
62
|
+
|
63
|
+
if (pubmeths = public_class_methods(object)).size > 0
|
64
|
+
pubmeths.each { |item| csv << [item.name(false), 'Method', options.serializer.serialized_path(object) + '#' + aref(item)]}
|
65
|
+
end
|
66
|
+
|
67
|
+
if (attrs = attr_listing(object)).size > 0
|
68
|
+
attrs.each { |item| csv << [item.name(false), 'Attribute', options.serializer.serialized_path(object) + "#" + aref(item)]}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
33
72
|
end
|
34
73
|
|
35
74
|
def serialize(object)
|
@@ -56,7 +95,7 @@ def serialize(object)
|
|
56
95
|
<% groups(constant_listing, "Constants") do |list, name| %>
|
57
96
|
# <%= name %>
|
58
97
|
<% list.each do |cnst| %>
|
59
|
-
## <%= cnst.name %> =
|
98
|
+
## <%= cnst.name %> = [](#<%=aref(cnst)%>)
|
60
99
|
(<%= cnst.value %>) <%= cnst.docstring %>
|
61
100
|
<% end %>
|
62
101
|
<% end %>
|
@@ -88,13 +127,15 @@ def serialize(object)
|
|
88
127
|
|
89
128
|
<% end %>
|
90
129
|
<% end %>
|
91
|
-
'.gsub(/^ /,
|
130
|
+
'.gsub(/^ /, ''), trim_mode: '%<>')
|
92
131
|
|
93
132
|
template.result(binding)
|
94
133
|
end
|
95
134
|
|
96
135
|
def aref(object)
|
97
|
-
if
|
136
|
+
if object.type == :constant
|
137
|
+
"constant-#{object.name(false)}"
|
138
|
+
elsif !object.attr_info.nil?
|
98
139
|
"attribute-#{object.scope[0]}-#{object.name(false)}"
|
99
140
|
else
|
100
141
|
"#{object.type}-#{object.scope[0]}-#{object.name(false)}"
|
@@ -103,6 +144,7 @@ end
|
|
103
144
|
|
104
145
|
def constant_listing
|
105
146
|
return @constants if defined?(@constants) && @constants
|
147
|
+
|
106
148
|
@constants = object.constants(included: false, inherited: false)
|
107
149
|
@constants += object.cvars
|
108
150
|
@constants
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yard-markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stanislav (Stas) Katkov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
description: yard
|
27
|
+
description: yard plugin to generates markdown documentation for gems
|
28
28
|
email:
|
29
29
|
- yard-markdown@skatkov.com
|
30
30
|
executables: []
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- example/Bird.md
|
42
42
|
- example/Duck.md
|
43
43
|
- example/Waterfowl.md
|
44
|
+
- example/index.csv
|
44
45
|
- lib/yard-markdown.rb
|
45
46
|
- sig/yard/markdown.rbs
|
46
47
|
- templates/default/fulldoc/markdown/setup.rb
|
@@ -68,5 +69,5 @@ requirements: []
|
|
68
69
|
rubygems_version: 3.4.22
|
69
70
|
signing_key:
|
70
71
|
specification_version: 4
|
71
|
-
summary: yard
|
72
|
+
summary: yard plugin to generate markdown documentation
|
72
73
|
test_files: []
|