bitclust-core 1.3.0 → 1.6.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/Gemfile +3 -0
- data/README.md +65 -0
- data/Rakefile +32 -0
- data/data/bitclust/catalog/ja_JP.UTF-8 +19 -1
- data/data/bitclust/searchpage/index.html +90 -0
- data/data/bitclust/template/class +69 -8
- data/data/bitclust/template/function +2 -2
- data/data/bitclust/template/layout +11 -3
- data/data/bitclust/template/method +2 -2
- data/data/bitclust/template/search +1 -1
- data/data/bitclust/template.epub/class +22 -1
- data/data/bitclust/template.epub/function +2 -2
- data/data/bitclust/template.epub/layout +1 -3
- data/data/bitclust/template.epub/method +2 -2
- data/data/bitclust/template.lillia/class +26 -5
- data/data/bitclust/template.lillia/layout +1 -3
- data/data/bitclust/template.lillia/method +2 -2
- data/data/bitclust/template.offline/class +48 -4
- data/data/bitclust/template.offline/function +2 -2
- data/data/bitclust/template.offline/layout +27 -3
- data/data/bitclust/template.offline/method +2 -2
- data/lib/bitclust/app.rb +16 -17
- data/lib/bitclust/capi_converter.rb +20 -0
- data/lib/bitclust/classentry.rb +67 -17
- data/lib/bitclust/compat.rb +2 -2
- data/lib/bitclust/completion.rb +58 -27
- data/lib/bitclust/crossrubyutils.rb +8 -5
- data/lib/bitclust/database.rb +28 -8
- data/lib/bitclust/doc_converter.rb +63 -0
- data/lib/bitclust/docentry.rb +1 -1
- data/lib/bitclust/entity_splitter.rb +221 -0
- data/lib/bitclust/entry.rb +47 -7
- data/lib/bitclust/functiondatabase.rb +13 -1
- data/lib/bitclust/functionentry.rb +5 -1
- data/lib/bitclust/functionreferenceparser.rb +4 -4
- data/lib/bitclust/generators/epub.rb +10 -3
- data/lib/bitclust/htmlutils.rb +1 -1
- data/lib/bitclust/include_graph.rb +375 -0
- data/lib/bitclust/include_pruner.rb +144 -0
- data/lib/bitclust/interface.rb +1 -1
- data/lib/bitclust/libraryentry.rb +8 -7
- data/lib/bitclust/lineinput.rb +7 -5
- data/lib/bitclust/link_checker.rb +179 -0
- data/lib/bitclust/markdown_bridge.rb +186 -0
- data/lib/bitclust/markdown_orchestrator.rb +267 -0
- data/lib/bitclust/markdown_to_rrd.rb +824 -0
- data/lib/bitclust/markdown_tree.rb +217 -0
- data/lib/bitclust/mdcompiler.rb +883 -0
- data/lib/bitclust/mdparser.rb +347 -0
- data/lib/bitclust/messagecatalog.rb +3 -3
- data/lib/bitclust/method_since_calculator.rb +117 -0
- data/lib/bitclust/methoddatabase.rb +124 -14
- data/lib/bitclust/methodentry.rb +125 -7
- data/lib/bitclust/methodid.rb +12 -11
- data/lib/bitclust/methodsignature.rb +10 -4
- data/lib/bitclust/nameutils.rb +41 -22
- data/lib/bitclust/preprocessor.rb +66 -29
- data/lib/bitclust/rdcompiler.rb +195 -95
- data/lib/bitclust/refsdatabase.rb +23 -8
- data/lib/bitclust/reloadable_request_handler.rb +72 -0
- data/lib/bitclust/requesthandler.rb +21 -16
- data/lib/bitclust/ridatabase.rb +10 -4
- data/lib/bitclust/rrd_to_markdown.rb +925 -0
- data/lib/bitclust/rrdparser.rb +196 -30
- data/lib/bitclust/runner.rb +17 -2
- data/lib/bitclust/screen.rb +80 -11
- data/lib/bitclust/search_index_generator.rb +288 -0
- data/lib/bitclust/searcher.rb +69 -20
- data/lib/bitclust/simplesearcher.rb +24 -12
- data/lib/bitclust/subcommand.rb +7 -1
- data/lib/bitclust/subcommands/ancestors_command.rb +9 -2
- data/lib/bitclust/subcommands/checklink_command.rb +54 -0
- data/lib/bitclust/subcommands/chm_command.rb +15 -7
- data/lib/bitclust/subcommands/classes_command.rb +5 -0
- data/lib/bitclust/subcommands/extract_command.rb +5 -0
- data/lib/bitclust/subcommands/htmlfile_command.rb +21 -7
- data/lib/bitclust/subcommands/init_command.rb +4 -1
- data/lib/bitclust/subcommands/list_command.rb +12 -4
- data/lib/bitclust/subcommands/lookup_command.rb +28 -9
- data/lib/bitclust/subcommands/methods_command.rb +10 -2
- data/lib/bitclust/subcommands/methodsince_command.rb +80 -0
- data/lib/bitclust/subcommands/preproc_command.rb +5 -0
- data/lib/bitclust/subcommands/property_command.rb +2 -1
- data/lib/bitclust/subcommands/searchpage_command.rb +102 -0
- data/lib/bitclust/subcommands/server_command.rb +10 -8
- data/lib/bitclust/subcommands/setup_command.rb +24 -10
- data/lib/bitclust/subcommands/statichtml_command.rb +129 -6
- data/lib/bitclust/subcommands/update_command.rb +110 -2
- data/lib/bitclust/syntax_highlighter.rb +48 -4
- data/lib/bitclust/textutils.rb +3 -3
- data/lib/bitclust/version.rb +1 -1
- data/lib/bitclust/version_badges.rb +90 -0
- data/lib/bitclust/whole_file_gate.rb +137 -0
- data/test/test_app.rb +269 -0
- data/test/test_bitclust.rb +2 -0
- data/test/test_capi_converter.rb +91 -0
- data/test/test_class_screen.rb +413 -0
- data/test/test_copy_doc_md.rb +53 -0
- data/test/test_doc_converter.rb +78 -0
- data/test/test_entity_splitter.rb +231 -0
- data/test/test_entry.rb +207 -2
- data/test/test_eol_warning.rb +43 -0
- data/test/test_functionreferenceparser.rb +11 -0
- data/test/test_include_graph.rb +640 -0
- data/test/test_include_pruner.rb +133 -0
- data/test/test_link_checker.rb +114 -0
- data/test/test_lookup_command.rb +135 -0
- data/test/test_markdown_bridge.rb +217 -0
- data/test/test_markdown_orchestrator.rb +478 -0
- data/test/test_markdown_to_rrd.rb +757 -0
- data/test/test_markdown_tree.rb +369 -0
- data/test/test_mdcompiler.rb +1276 -0
- data/test/test_mdparser.rb +538 -0
- data/test/test_method_screen.rb +166 -0
- data/test/test_method_since_calculator.rb +290 -0
- data/test/test_methoddatabase.rb +16 -0
- data/test/test_methodentry.rb +328 -0
- data/test/test_methodsignature.rb +3 -1
- data/test/test_methodsince_command.rb +168 -0
- data/test/test_nameutils.rb +22 -0
- data/test/test_preprocessor.rb +215 -0
- data/test/test_rdcompiler.rb +401 -30
- data/test/test_refsdatabase.rb +32 -0
- data/test/test_rrd_to_markdown.rb +968 -0
- data/test/test_rrdparser.rb +295 -2
- data/test/test_run_ruby_wasm.rb +54 -0
- data/test/test_run_worker_prelude.rb +83 -0
- data/test/test_runner.rb +51 -0
- data/test/test_search_index_generator.rb +513 -0
- data/test/test_search_screen.rb +48 -0
- data/test/test_searcher.rb +132 -0
- data/test/test_searchpage_command.rb +167 -0
- data/test/test_simplesearcher.rb +28 -0
- data/test/test_statichtml_command.rb +204 -0
- data/test/test_syntax_highlighter.rb +60 -0
- data/test/test_whole_file_gate.rb +175 -0
- data/theme/default/js/NOTICE +42 -0
- data/theme/default/js/run-worker.js +111 -0
- data/theme/default/js/run.js +350 -0
- data/theme/default/js/search_controller.js +134 -0
- data/theme/default/js/search_init.js +176 -0
- data/theme/default/js/search_navigation.js +110 -0
- data/theme/default/js/search_page.js +202 -0
- data/theme/default/js/search_ranker.js +244 -0
- data/theme/default/script.js +91 -18
- data/theme/default/search.css +149 -0
- data/theme/default/style.css +193 -21
- data/theme/default/syntax-highlight.css +8 -0
- data/theme/lillia/style.css +45 -1
- metadata +161 -20
- data/README +0 -32
|
@@ -59,22 +59,25 @@ module BitClust
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def handle_library(req)
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
library_name = req.library_name
|
|
63
|
+
return library_index() unless library_name
|
|
64
|
+
lib = @db.fetch_library(library_name)
|
|
64
65
|
@screenmanager.library_screen(lib, @conf).response
|
|
65
66
|
end
|
|
66
67
|
|
|
67
68
|
def handle_class(req)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
class_name = req.class_name
|
|
70
|
+
return class_index() unless class_name
|
|
71
|
+
c = @db.fetch_class(class_name)
|
|
72
|
+
h = @conf.dup #: RequestHandler::conf_class
|
|
71
73
|
h[:level] = req.ancestors_level
|
|
72
74
|
@screenmanager.class_screen(c, h).response
|
|
73
75
|
end
|
|
74
76
|
|
|
75
77
|
def handle_method(req)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
method_spec = req.method_spec or raise RequestError, 'method request but method_spec is nil'
|
|
79
|
+
ms = @db.fetch_methods(method_spec)
|
|
80
|
+
raise MethodNotFound.new(method_spec.to_s) if ms.nil? || ms.empty?
|
|
78
81
|
@screenmanager.method_screen(ms, @conf).response
|
|
79
82
|
end
|
|
80
83
|
|
|
@@ -91,13 +94,12 @@ module BitClust
|
|
|
91
94
|
end
|
|
92
95
|
|
|
93
96
|
def handle_search(req)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
q = URI.unescape(q0)
|
|
97
|
+
q0 = req.query['q'].to_s
|
|
98
|
+
q = URI.decode_www_form_component(q0)
|
|
97
99
|
start = Time.now.to_i
|
|
98
100
|
ret = SimpleSearcher.search_pattern(@db, q)
|
|
99
101
|
elapsed_time = Time.now.to_f - start.to_f
|
|
100
|
-
c = @conf.dup
|
|
102
|
+
c = @conf.dup #: RequestHandler::conf_search
|
|
101
103
|
c[:q] = q0
|
|
102
104
|
c[:elapsed_time] = elapsed_time
|
|
103
105
|
@screenmanager.search_screen(ret, c).response
|
|
@@ -107,10 +109,11 @@ module BitClust
|
|
|
107
109
|
d = @db.fetch_doc(req.doc_name || 'index' )
|
|
108
110
|
@screenmanager.doc_screen(d, @conf).response
|
|
109
111
|
end
|
|
110
|
-
|
|
112
|
+
|
|
111
113
|
def handle_function(req)
|
|
112
|
-
|
|
113
|
-
|
|
114
|
+
function_name = req.function_name
|
|
115
|
+
return function_index() unless function_name
|
|
116
|
+
f = @cdb.fetch_function(function_name)
|
|
114
117
|
@screenmanager.function_screen(f, @conf).response
|
|
115
118
|
end
|
|
116
119
|
|
|
@@ -151,7 +154,7 @@ module BitClust
|
|
|
151
154
|
end
|
|
152
155
|
|
|
153
156
|
def doc_name
|
|
154
|
-
name = path_info.sub(%r!\A/!, '')
|
|
157
|
+
name = (path_info || raise).sub(%r!\A/!, '')
|
|
155
158
|
name unless name.empty?
|
|
156
159
|
end
|
|
157
160
|
|
|
@@ -188,6 +191,7 @@ module BitClust
|
|
|
188
191
|
unless typechar?(typechar)
|
|
189
192
|
raise InvalidKey, "invalid method-type ID: #{typechar.inspect}"
|
|
190
193
|
end
|
|
194
|
+
# @type var typechar: NameUtils::typechar
|
|
191
195
|
cname = classid2name(cid)
|
|
192
196
|
tmark = typechar2mark(typechar)
|
|
193
197
|
mname = decodename_url(mencoded)
|
|
@@ -309,7 +313,8 @@ module BitClust
|
|
|
309
313
|
end
|
|
310
314
|
|
|
311
315
|
def update(webrick_res)
|
|
312
|
-
|
|
316
|
+
status = @screen.status
|
|
317
|
+
webrick_res.status = status if status
|
|
313
318
|
webrick_res['Content-Type'] = @screen.content_type
|
|
314
319
|
# webrick_res['Last-Modified'] = @screen.last_modified
|
|
315
320
|
body = @screen.body
|
data/lib/bitclust/ridatabase.rb
CHANGED
|
@@ -169,7 +169,7 @@ module RI
|
|
|
169
169
|
name = full_name()
|
|
170
170
|
unless /\#/ =~ name
|
|
171
171
|
components = name.split('::')
|
|
172
|
-
m = components.pop
|
|
172
|
+
m = components.pop || raise
|
|
173
173
|
components.join('::') + '.' + m
|
|
174
174
|
else
|
|
175
175
|
name
|
|
@@ -237,7 +237,7 @@ class Formatter
|
|
|
237
237
|
line "--- #{m.full_name}#{trim_space(m.params)}"
|
|
238
238
|
else
|
|
239
239
|
m.params.lines.each do |sig|
|
|
240
|
-
line "--- #{trim_sig(sig)}
|
|
240
|
+
line "--- #{trim_sig(sig)}#%todo\n"
|
|
241
241
|
end
|
|
242
242
|
end
|
|
243
243
|
unless m.aliases.empty?
|
|
@@ -259,15 +259,17 @@ class Formatter
|
|
|
259
259
|
s = trim_space(s)
|
|
260
260
|
s.sub!(/\A[a-z]\w+\./, '')
|
|
261
261
|
s.sub!(/=>/, '->')
|
|
262
|
+
# steep:ignore:start
|
|
262
263
|
s.sub!(/(->.*)\bstr(ing)?\b/){ $1 + 'String' }
|
|
263
264
|
s.sub!(/(->.*)\bint(eger)?\b/){ $1 + 'Integer' }
|
|
264
265
|
s.sub!(/(->.*)\b(an_)?obj\b/){ $1 + 'object' }
|
|
265
266
|
s.sub!(/(->.*)\b(a_)?hash\b/){ $1 + 'Hash' }
|
|
266
267
|
s.sub!(/(->.*)\b(an_)?array\b/){ $1 + 'Array' }
|
|
267
|
-
|
|
268
|
+
# steep:ignore:end
|
|
269
|
+
s.sub!(/ or /, ' | ')
|
|
268
270
|
s
|
|
269
271
|
end
|
|
270
|
-
|
|
272
|
+
|
|
271
273
|
def format_elements(elems)
|
|
272
274
|
return "" unless elems
|
|
273
275
|
return "" if elems.empty?
|
|
@@ -275,6 +277,7 @@ class Formatter
|
|
|
275
277
|
end
|
|
276
278
|
|
|
277
279
|
def format_element(e)
|
|
280
|
+
# steep:ignore:start
|
|
278
281
|
case e
|
|
279
282
|
when SM::Flow::P, SM::Flow::LI
|
|
280
283
|
paragraph(e)
|
|
@@ -289,6 +292,7 @@ class Formatter
|
|
|
289
292
|
else
|
|
290
293
|
raise "unkwnown markup: #{e.class}"
|
|
291
294
|
end
|
|
295
|
+
# steep:ignore:end
|
|
292
296
|
end
|
|
293
297
|
|
|
294
298
|
def headline(e)
|
|
@@ -306,6 +310,7 @@ class Formatter
|
|
|
306
310
|
end
|
|
307
311
|
|
|
308
312
|
def list(e)
|
|
313
|
+
# steep:ignore:start
|
|
309
314
|
case e.type
|
|
310
315
|
when SM::ListBase::BULLET
|
|
311
316
|
e.contents.map {|item| "* #{format_element(e)}" }.join("\n")
|
|
@@ -329,6 +334,7 @@ class Formatter
|
|
|
329
334
|
else
|
|
330
335
|
raise "unknown list type: #{e.type.inspect}"
|
|
331
336
|
end
|
|
337
|
+
# steep:ignore:end
|
|
332
338
|
end
|
|
333
339
|
|
|
334
340
|
def remove_inline(str)
|