rdoc-markdown 0.1.13 → 0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a38c23f0593e099cf817af08dbf8c2f73573462135c99eafae1c8d060bffbc26
4
- data.tar.gz: c209b03ef83bc8d936d5638a775c15b8c1ff0626ec94bbdd138abc2596e73999
3
+ metadata.gz: 761747d3a9b32015fca088a58b871d0dbd1ab62b6239d2a4e6f6b3065a0e655e
4
+ data.tar.gz: e8948dfc980ee3a316699579d254fcb43c8f43549c07fd67ea7d4232bf16ae58
5
5
  SHA512:
6
- metadata.gz: a16a238ac2090d2d60a3c998bff28a9787a5d123fe5215e813b01f410433f8ac5264be02cb5677248c239e5d72bc26613c5a9d6b837eae90fe3d232b4eb25bda
7
- data.tar.gz: ed04a374783a90b072f757d39439e0749d52bac3e6ee6d13af0b90408746f96c2d3257e50a72452ad749689bcd3dbe767ac509bf6bc1b597c7ad7771810c4554
6
+ metadata.gz: 4b7cce412555f74e6bb4798cdc1fe03d304f694144608ba20c71e8ea77e4b1caa2d791001ee3b58824d740bc55fe5634f8174a4b54be33a64d12f971ce55da7f
7
+ data.tar.gz: efea582acb0a4012734c1cdd974987c52df2cac297ca4c773cf268e84f6af325ae95e9391a10c0f89bd31e25a990cd64f1c990ba02c35c5d2dc23573c12ed7e9
data/Gemfile.lock CHANGED
@@ -1,25 +1,35 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rdoc-markdown (0.1.10)
4
+ rdoc-markdown (0.1.14)
5
+ activesupport (~> 7.0)
5
6
  erb (~> 2.0)
6
7
  extralite-bundle (~> 1.0)
7
8
  rdoc (~> 6.0)
8
9
  reverse_markdown (~> 2.0)
10
+ unindent (~> 1.0)
9
11
 
10
12
  GEM
11
13
  remote: https://rubygems.org/
12
14
  specs:
15
+ activesupport (7.0.4)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
13
20
  ast (2.4.2)
14
21
  cgi (0.3.3)
22
+ concurrent-ruby (1.1.10)
15
23
  erb (2.2.3)
16
24
  cgi
17
25
  extralite-bundle (1.16)
26
+ i18n (1.12.0)
27
+ concurrent-ruby (~> 1.0)
18
28
  json (2.6.2)
19
29
  minitest (5.16.3)
20
- nokogiri (1.13.8-arm64-darwin)
30
+ nokogiri (1.13.9-arm64-darwin)
21
31
  racc (~> 1.4)
22
- nokogiri (1.13.8-x86_64-linux)
32
+ nokogiri (1.13.9-x86_64-linux)
23
33
  racc (~> 1.4)
24
34
  parallel (1.22.1)
25
35
  parser (3.1.2.1)
@@ -46,7 +56,7 @@ GEM
46
56
  rubocop-ast (>= 1.20.1, < 2.0)
47
57
  ruby-progressbar (~> 1.7)
48
58
  unicode-display_width (>= 1.4.0, < 3.0)
49
- rubocop-ast (1.21.0)
59
+ rubocop-ast (1.22.0)
50
60
  parser (>= 3.1.1.0)
51
61
  rubocop-performance (1.14.3)
52
62
  rubocop (>= 1.7.0, < 2.0)
@@ -56,7 +66,10 @@ GEM
56
66
  rubocop (= 1.35.1)
57
67
  rubocop-performance (= 1.14.3)
58
68
  stringio (3.0.2)
69
+ tzinfo (2.0.5)
70
+ concurrent-ruby (~> 1.0)
59
71
  unicode-display_width (2.3.0)
72
+ unindent (1.0)
60
73
 
61
74
  PLATFORMS
62
75
  arm64-darwin-21
@@ -6,10 +6,15 @@ require "pathname"
6
6
  require "erb"
7
7
  require "reverse_markdown"
8
8
  require 'extralite'
9
+ require 'active_support/core_ext/string/inflections'
10
+ require 'unindent'
9
11
 
10
12
  class RDoc::Generator::Markdown
11
13
  RDoc::RDoc.add_generator self
12
14
 
15
+ ##
16
+ # Defines a constant for directory where templates could be found
17
+
13
18
  TEMPLATE_DIR = File.expand_path(
14
19
  File.join(File.dirname(__FILE__), "..", "..", "templates")
15
20
  )
@@ -42,6 +47,9 @@ class RDoc::Generator::Markdown
42
47
  # this alias is required for rdoc to work
43
48
  alias_method :file_dir, :class_dir
44
49
 
50
+ ##
51
+ # Initializer method for Rdoc::Generator::Markdown
52
+
45
53
  def initialize(store, options)
46
54
  @store = store
47
55
  @options = options
@@ -51,6 +59,9 @@ class RDoc::Generator::Markdown
51
59
  @classes = nil
52
60
  end
53
61
 
62
+ ##
63
+ # Generates markdown files and search index file
64
+
54
65
  def generate
55
66
  setup
56
67
 
@@ -72,6 +83,9 @@ class RDoc::Generator::Markdown
72
83
  attr_reader :options
73
84
  attr_reader :output_dir
74
85
 
86
+ ##
87
+ # This method is used to output debugging information in case rdoc is run with --debug parameter
88
+
75
89
  def debug(str = nil)
76
90
  if $DEBUG_RDOC
77
91
  puts "[rdoc-markdown] #{str}" if str
@@ -79,8 +93,12 @@ class RDoc::Generator::Markdown
79
93
  end
80
94
  end
81
95
 
82
- def emit_sqlite
83
- db = Extralite::Database.new("#{output_dir}/index.db")
96
+ ##
97
+ # This class emits a search index for generated documentation as sqlite database
98
+ #
99
+
100
+ def emit_sqlite(name="index.db")
101
+ db = Extralite::Database.new("#{output_dir}/#{name}")
84
102
 
85
103
  db.execute <<-SQL
86
104
  create table contentIndex (
@@ -106,7 +124,7 @@ class RDoc::Generator::Markdown
106
124
  result << {
107
125
  name: "#{klass.full_name}.#{method.name}",
108
126
  type: "Method",
109
- path: turn_to_path(klass.full_name)
127
+ path: "#{turn_to_path(klass.full_name)}#meth-#{ActiveSupport::Inflector.parameterize method.name}"
110
128
  }
111
129
  end
112
130
 
@@ -114,7 +132,7 @@ class RDoc::Generator::Markdown
114
132
  result << {
115
133
  name: "#{klass.full_name}.#{const.name}",
116
134
  type: "Constant",
117
- path: turn_to_path(klass.full_name)
135
+ path: "#{turn_to_path(klass.full_name)}#const-#{ActiveSupport::Inflector.parameterize const.name}"
118
136
  }
119
137
  end
120
138
 
@@ -122,7 +140,7 @@ class RDoc::Generator::Markdown
122
140
  result << {
123
141
  name: "#{klass.full_name}.#{attr.name}",
124
142
  type: "Attribute",
125
- path: turn_to_path(klass.full_name)
143
+ path: "#{turn_to_path(klass.full_name)}#attr-#{ActiveSupport::Inflector.parameterize attr.name}"
126
144
  }
127
145
  end
128
146
  end
@@ -158,16 +176,22 @@ class RDoc::Generator::Markdown
158
176
  end
159
177
  end
160
178
 
161
-
162
- private
179
+ ##
180
+ # Takes a class name and converts it into a Pathname
163
181
 
164
182
  def turn_to_path(class_name)
165
183
  "#{class_name.gsub("::", "/")}.md"
166
184
  end
167
185
 
186
+ ##
187
+ # Converts HTML string into a Markdown string with some cleaning and improvements.
188
+
168
189
  def markdownify(input)
169
190
  md= ReverseMarkdown.convert input, github_flavored: true
170
191
 
192
+ # unintent multiline strings
193
+ md.unindent!
194
+
171
195
  # Replace .html to .md extension in all markdown links
172
196
  md = md.gsub(/\[(.+)\]\((.+).html(.*)\)/) do |_|
173
197
  match = Regexp.last_match
@@ -180,8 +204,13 @@ class RDoc::Generator::Markdown
180
204
  md.gsub("[↑](#top)", "").lstrip
181
205
  end
182
206
 
207
+ # Aliasing a shorter method name for use in templates
183
208
  alias_method :h, :markdownify
184
209
 
210
+ ##
211
+ # Prepares for document generation, by creating required folders and initializing variables.
212
+ # Could be called multiple times.
213
+
185
214
  def setup
186
215
  return if instance_variable_defined?(:@output_dir)
187
216
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rdoc
4
4
  module Markdown
5
- VERSION = "0.1.13"
5
+ VERSION = "0.2"
6
6
  end
7
7
  end
@@ -3,22 +3,22 @@
3
3
  <% unless klass.constants.empty? %>
4
4
  ## Constants
5
5
  ***
6
- <% klass.constants.sort_by { |x| x.name }.each do |const| %> **<%= const.name %>**
6
+ <% klass.constants.sort_by { |x| x.name }.each do |const| %> **<%= const.name %>** [[⚓]](#const-<%= ActiveSupport::Inflector.parameterize const.name%>)
7
7
  <%= h const.description %>
8
8
  <% end %><% end %>
9
9
  <% unless klass.attributes.empty? %>
10
10
  ## Attributes
11
11
  <% klass.attributes.sort_by { |x| x.name }.each do |attr| %>
12
- **[<%= attr.rw %>]** <%= attr.name %>
12
+ **[<%= attr.rw %>]** <%= attr.name %> [[⚓]](#attr-<%= ActiveSupport::Inflector.parameterize attr.name %>)
13
13
  <% end %><% end %>
14
14
  <% unless klass_methods.empty? %>
15
15
  ## Public Class Methods
16
16
  ***
17
- <% klass_methods.each do |method| %>### <%= method.name %><%= method.params %>
17
+ <% klass_methods.each do |method| %>### <%= method.name %><%= method.params %> [[⚓]](#meth-<%= ActiveSupport::Inflector.parameterize method.name %>)
18
18
 
19
19
  <%= h method.description %><% end %><% end %>
20
20
  <% unless instance_methods.empty? %>
21
21
  ## Public Instance Methods
22
- <% instance_methods.each do |method| %>### <%= method.name %><%= method.params %>
22
+ <% instance_methods.each do |method| %>### <%= method.name %><%= method.params %> [[⚓]](#meth-<%= ActiveSupport::Inflector.parameterize method.name %>)
23
23
 
24
24
  <%= h method.description %><% end %><% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdoc-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: '0.2'
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: 2022-10-20 00:00:00.000000000 Z
11
+ date: 2022-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '7.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '7.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: unindent
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: minitest
71
99
  requirement: !ruby/object:Gem::Requirement