yard-markdown 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8bc0dd303b8e3b40e53d55a7b53c339e8d0c8c8f8a44427c12bc6cca9f303f4
4
- data.tar.gz: 13159d5918456cbfa5e909679ba2596a52dfecb24ec14bdccac20f51d5552146
3
+ metadata.gz: 9c561fb4adb1a813dee7cc4f1793ecee708627115f85aab396933822e4886cb0
4
+ data.tar.gz: 17e36c633008becd1b8ead5af645e58182d5be5959736cfb34280f4c7a077848
5
5
  SHA512:
6
- metadata.gz: e2aa7fac3e51b28d2bece0f852da3436d9f9bdb83242af7f78bb25aefde514206f01fe6f9d70f2765b6342cf11b1b40a484454b782565161ec50a72705c41aec
7
- data.tar.gz: 37c63aa190abaa091d27c279268a23756f120393a519286983510933e5fd22f9076cc6c8f8b694ba25e27d4b638b5d44587f5528c9a97c61f4db3e2b861cca70
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` parameter.
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
@@ -8,7 +8,7 @@
8
8
  The base class for all birds.
9
9
 
10
10
  # Constants
11
- ## DEFAULT_DUCK_VELOCITY =
11
+ ## DEFAULT_DUCK_VELOCITY = [](#constant-DEFAULT_DUCK_VELOCITY)
12
12
  (70) Default velocity for a flying duck.
13
13
 
14
14
 
data/example/Duck.md CHANGED
@@ -21,7 +21,7 @@ Features:
21
21
  * swim
22
22
 
23
23
  # Constants
24
- ## DEFAULT_DUCK_VELOCITY =
24
+ ## DEFAULT_DUCK_VELOCITY = [](#constant-DEFAULT_DUCK_VELOCITY)
25
25
  (70) Default velocity for a flying duck.
26
26
 
27
27
 
data/example/Waterfowl.md CHANGED
@@ -7,7 +7,7 @@
7
7
  A mixin for waterfowl creatures.
8
8
 
9
9
  # Constants
10
- ## DEFAULT_DUCK_VELOCITY =
10
+ ## DEFAULT_DUCK_VELOCITY = [](#constant-DEFAULT_DUCK_VELOCITY)
11
11
  (70) Default velocity for a flying duck.
12
12
 
13
13
 
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(/^ /, ""), trim_mode: "%<>")
130
+ '.gsub(/^ /, ''), trim_mode: '%<>')
92
131
 
93
132
  template.result(binding)
94
133
  end
95
134
 
96
135
  def aref(object)
97
- if !object.attr_info.nil?
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.1.2
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-28 00:00:00.000000000 Z
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 theme plugin that generates markdown documentation for gems
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 theme plugin that generates markdown documentation for gems
72
+ summary: yard plugin to generate markdown documentation
72
73
  test_files: []