rdoc-markdown 0.1.8 → 0.1.12

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: d00a1ac32eb71f6eff97e6ee46bb1756c5fad8d97125c269ca0a1a5ba69f8061
4
- data.tar.gz: 34ee2b38e839454a19f197466248db8033076d5113fb4da9895a4ed5a9b00e98
3
+ metadata.gz: e8541f95990a90cf56b56fc4ac7ddc00ee027327023a127063c30cb1b87449b6
4
+ data.tar.gz: b00c270ed9c64a36120900e0bfb8eb794afda0ab1b28cdb4cbc51c016b9c4999
5
5
  SHA512:
6
- metadata.gz: d0a1f0294c47c08f72134820afc998a5d01dc4a20d7588df73f9dcbde9ce1b778282480ac35d9d95fea3b73b738ba9e30166bbf861f493713e18b8b3c4b2a300
7
- data.tar.gz: 3dc3972ce4e1ef10116c2fa1dcb04ad980e9a73068d79a6399e0abbcca3b49f16f28fe5db1855bc353643cedf92c781853c56e7e9a0bf09b4c55783d539537a8
6
+ metadata.gz: 58ba2c78a1f23cea5738a2e65df6468a4c70da00fb8654affd479cb2ed244930fa63c56d91451d83c0475c1c31102319af9970f3d9d7f000ea04bfecd146616a
7
+ data.tar.gz: 5960431dc78731a5b65b57a004b6982e7eac883ed1bc2306e92bf34f3948bd3bf33494e3daac4dab1685a1d19e6b8831993247cfd1d91ee8ae0852c483c79453
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rdoc-markdown (0.1.7)
4
+ rdoc-markdown (0.1.10)
5
5
  erb (~> 2.0)
6
+ extralite-bundle (~> 1.0)
6
7
  rdoc (~> 6.0)
7
8
  reverse_markdown (~> 2.0)
8
9
 
@@ -13,6 +14,7 @@ GEM
13
14
  cgi (0.3.3)
14
15
  erb (2.2.3)
15
16
  cgi
17
+ extralite-bundle (1.16)
16
18
  json (2.6.2)
17
19
  minitest (5.16.3)
18
20
  nokogiri (1.13.8-arm64-darwin)
@@ -5,10 +5,8 @@ gem "rdoc"
5
5
  require "pathname"
6
6
  require "erb"
7
7
  require "reverse_markdown"
8
+ require 'extralite'
8
9
 
9
- # Markdown generator.
10
- # Registers command line options and generates markdown files
11
- # RDoc documentation and options.
12
10
  class RDoc::Generator::Markdown
13
11
  RDoc::RDoc.add_generator self
14
12
 
@@ -33,21 +31,6 @@ class RDoc::Generator::Markdown
33
31
 
34
32
  attr_reader :classes
35
33
 
36
- ##
37
- # Files to be displayed by this generator
38
-
39
- attr_reader :files
40
-
41
- ##
42
- # Methods to be displayed by this generator
43
-
44
- attr_reader :methods
45
-
46
- ##
47
- # Sorted list of classes and modules to be displayed by this generator
48
-
49
- attr_reader :modsort
50
-
51
34
  ##
52
35
  # Directory where generated class HTML files live relative to the output
53
36
  # dir.
@@ -66,9 +49,6 @@ class RDoc::Generator::Markdown
66
49
  @base_dir = Pathname.pwd.expand_path
67
50
 
68
51
  @classes = nil
69
- @files = nil
70
- @methods = nil
71
- @modsort = nil
72
52
  end
73
53
 
74
54
  def generate
@@ -81,6 +61,10 @@ class RDoc::Generator::Markdown
81
61
  debug("Generate documentation in #{@output_dir}")
82
62
 
83
63
  emit_classfiles
64
+
65
+ debug("Generate index db file: #{output_dir}/index.db")
66
+
67
+ emit_sqlite
84
68
  end
85
69
 
86
70
  private
@@ -95,6 +79,29 @@ class RDoc::Generator::Markdown
95
79
  end
96
80
  end
97
81
 
82
+ def emit_sqlite
83
+ db = Extralite::Database.new("#{output_dir}/index.db")
84
+
85
+ db.execute <<-SQL
86
+ create table contentIndex (
87
+ id INTEGER PRIMARY KEY,
88
+ name TEXT,
89
+ type TEXT,
90
+ path TEXT
91
+ );
92
+ SQL
93
+
94
+ @classes.map do |klass|
95
+ {
96
+ name: klass.full_name,
97
+ type: klass.type.capitalize,
98
+ path: turn_to_path(klass.full_name)
99
+ }
100
+ end.each do |rec|
101
+ db.execute "insert into contentIndex (name, type, path) values (:name, :type, :path)", rec
102
+ end
103
+ end
104
+
98
105
  def emit_classfiles
99
106
  @classes.each do |klass|
100
107
  klass_methods = []
@@ -112,7 +119,7 @@ class RDoc::Generator::Markdown
112
119
 
113
120
  template = ERB.new File.read(File.join(TEMPLATE_DIR, "classfile.md.erb"))
114
121
 
115
- out_file = Pathname.new("#{output_dir}/#{turn_to_path klass.full_name}.md")
122
+ out_file = Pathname.new("#{output_dir}/#{turn_to_path klass.full_name}")
116
123
  out_file.dirname.mkpath
117
124
 
118
125
  result = template.result(binding)
@@ -124,22 +131,27 @@ class RDoc::Generator::Markdown
124
131
 
125
132
  private
126
133
 
127
- def replace_extensions_in_links(text)
128
- text.gsub(/\[(.+)\]\((.+).html(.*)\)/) do |_|
134
+ def turn_to_path(class_name)
135
+ "#{class_name.gsub("::", "/")}.md"
136
+ end
137
+
138
+ def markdownify(input)
139
+ md= ReverseMarkdown.convert input, github_flavored: true
140
+
141
+ # Replace .html to .md extension in all markdown links
142
+ md = md.gsub(/\[(.+)\]\((.+).html(.*)\)/) do |_|
129
143
  match = Regexp.last_match
130
144
 
131
145
  "[#{match[1]}](#{match[2]}.md#{match[3]})"
132
146
  end
133
- end
134
147
 
135
- def turn_to_path(class_name)
136
- class_name.gsub("::", "/")
137
- end
148
+ # clean up things, to make it look neat.
138
149
 
139
- def h(string)
140
- replace_extensions_in_links ReverseMarkdown.convert string.strip, github_flavored: true
150
+ md.gsub("[↑](#top)", "").lstrip
141
151
  end
142
152
 
153
+ alias_method :h, :markdownify
154
+
143
155
  def setup
144
156
  return if instance_variable_defined?(:@output_dir)
145
157
 
@@ -148,8 +160,6 @@ class RDoc::Generator::Markdown
148
160
  return unless @store
149
161
 
150
162
  @classes = @store.all_classes_and_modules.sort
151
- @files = @store.all_files.sort
152
- @methods = @classes.map(&:method_list).flatten.sort
153
163
  @modsort = get_sorted_module_list @classes
154
164
  end
155
165
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rdoc
4
4
  module Markdown
5
- VERSION = "0.1.8"
5
+ VERSION = "0.1.12"
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
- # <% if klass.type == 'class' %><%= klass.type.capitalize %>: **<%= klass.full_name %>**<% if klass.superclass %> < <% end %><% unless String === klass.superclass %><%= klass.superclass&.name %> <% else %> <%= klass.superclass %> <% end %> <% else %> <%= klass.type.capitalize %><%= klass&.name %> <% end %>
2
- <% if klass.description && !klass.description.empty? %><%= h klass.description %><% end %>
1
+ # <% if klass.type == 'class' %><%= klass.type.capitalize %>: **<%= klass.full_name %>**<% if klass.superclass %> < <% end %><% unless String === klass.superclass %><%= klass.superclass&.name %> <% else %> <%= klass.superclass %> <% end %> <% else %> <%= klass.type.capitalize %>: <%= klass&.name %> <% end %>
2
+ <% if klass.description && !klass.description.empty? %><%= h klass.description %><% end %>
3
3
  <% unless klass.constants.empty? %>
4
4
  ## Constants
5
5
  ***
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.8
4
+ version: 0.1.12
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-16 00:00:00.000000000 Z
11
+ date: 2022-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: extralite-bundle
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: minitest
57
71
  requirement: !ruby/object:Gem::Requirement