bitclust-core 0.9.1 → 0.9.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 +4 -4
- data/README +1 -1
- data/bitclust.gemspec +3 -4
- data/data/bitclust/template.offline/layout +3 -0
- data/lib/bitclust/classentry.rb +11 -11
- data/lib/bitclust/rdcompiler.rb +9 -1
- data/lib/bitclust/screen.rb +46 -0
- data/lib/bitclust/subcommands/setup_command.rb +6 -1
- data/lib/bitclust/subcommands/statichtml_command.rb +10 -1
- data/lib/bitclust/version.rb +1 -1
- data/test/test_rdcompiler.rb +26 -2
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 225e62375e6846b326301d1189046131860d338a
|
4
|
+
data.tar.gz: 3971f2a4f69e7e961b4bd9383ca3dd1314206a78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac99e00ae2d24e250c754408433cdcdc1265993c8cedb90054db22acb8af9a245a5cc57a22ef215b6fe561a2928d3285fca6b44eb533c08b602e6835dea1c0aa
|
7
|
+
data.tar.gz: cfb571a4a3c54fdc54864fbc089048cf69cd9102b8bd0c45f93fc73f13459b73b49a872e1993e3cf7aa955a779a84503e4d4513d9ffb77d2c0c15ecadc142680
|
data/README
CHANGED
data/bitclust.gemspec
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require 'rake'
|
4
3
|
require "bitclust/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
@@ -17,9 +16,9 @@ EOD
|
|
17
16
|
|
18
17
|
s.rubyforge_project = ""
|
19
18
|
|
20
|
-
s.files =
|
21
|
-
|
22
|
-
s.test_files =
|
19
|
+
s.files = Dir["ChangeLog", "Gemfile", "README", "Rakefile", "bitclust.gemspec",
|
20
|
+
"data/**/*", "lib/**/*.rb", "theme/**/*"].reject {|f| f =~ /.*~/ }
|
21
|
+
s.test_files = Dir["test/**/*.rb"].reject {|f| f =~ /.*~/ }
|
23
22
|
s.executables = ["bitclust"]
|
24
23
|
s.require_paths = ["lib"]
|
25
24
|
|
@@ -5,6 +5,9 @@
|
|
5
5
|
<meta http-equiv="Content-Language" content="ja-JP">
|
6
6
|
<link rel="stylesheet" type="text/css" href="<%=h css_url() %>">
|
7
7
|
<link rel="icon" type="image/png" href="<%=h favicon_url() %>">
|
8
|
+
<% if @conf[:canonical_base_url] %>
|
9
|
+
<link rel="canonical" href="<%= canonical_url() %>">
|
10
|
+
<% end %>
|
8
11
|
<title><%=h @title %> (Ruby <%=h ruby_version %>)</title>
|
9
12
|
</head>
|
10
13
|
<body>
|
data/lib/bitclust/classentry.rb
CHANGED
@@ -214,13 +214,13 @@ module BitClust
|
|
214
214
|
end
|
215
215
|
|
216
216
|
def included_modules
|
217
|
-
list = ancestors().select
|
217
|
+
list = ancestors().select(&:module?)
|
218
218
|
list.delete self
|
219
219
|
list
|
220
220
|
end
|
221
221
|
|
222
222
|
def extended_modules
|
223
|
-
ancestors().select
|
223
|
+
ancestors().select(&:class?).map(&:extended).flatten
|
224
224
|
end
|
225
225
|
|
226
226
|
def entries(level = 0)
|
@@ -254,7 +254,7 @@ module BitClust
|
|
254
254
|
mf = []
|
255
255
|
c = []; v = []
|
256
256
|
added = []
|
257
|
-
entries(level).sort_by
|
257
|
+
entries(level).sort_by(&:name).each do |m|
|
258
258
|
case m.kind
|
259
259
|
when :defined, :redefined
|
260
260
|
case m.type
|
@@ -280,42 +280,42 @@ module BitClust
|
|
280
280
|
|
281
281
|
def singleton_methods(level = 0)
|
282
282
|
# FIXME: inheritance
|
283
|
-
entries(level).select
|
283
|
+
entries(level).select(&:singleton_method?).sort_by(&:sort_key)
|
284
284
|
end
|
285
285
|
|
286
286
|
def public_singleton_methods(level = 0)
|
287
287
|
# FIXME: inheritance
|
288
|
-
entries(level).select
|
288
|
+
entries(level).select(&:public_singleton_method?).sort_by(&:sort_key)
|
289
289
|
end
|
290
290
|
|
291
291
|
def instance_methods(level = 0)
|
292
292
|
# FIXME: inheritance
|
293
|
-
entries(level).select
|
293
|
+
entries(level).select(&:instance_method?).sort_by(&:sort_key)
|
294
294
|
end
|
295
295
|
|
296
296
|
def private_singleton_methods(level = 0)
|
297
297
|
# FIXME: inheritance
|
298
|
-
entries(level).select
|
298
|
+
entries(level).select(&:private_singleton_method?).sort_by(&:sort_key)
|
299
299
|
end
|
300
300
|
|
301
301
|
def public_instance_methods(level = 0)
|
302
302
|
# FIXME: inheritance
|
303
|
-
entries(level).select
|
303
|
+
entries(level).select(&:public_instance_method?).sort_by(&:sort_key)
|
304
304
|
end
|
305
305
|
|
306
306
|
def private_instance_methods(level = 0)
|
307
307
|
# FIXME: inheritance
|
308
|
-
entries(level).select
|
308
|
+
entries(level).select(&:private_instance_method?).sort_by(&:sort_key)
|
309
309
|
end
|
310
310
|
|
311
311
|
alias private_methods private_instance_methods
|
312
312
|
|
313
313
|
def constants(level = 0)
|
314
|
-
entries(level).select
|
314
|
+
entries(level).select(&:constant?).sort_by(&:sort_key)
|
315
315
|
end
|
316
316
|
|
317
317
|
def special_variables
|
318
|
-
entries().select
|
318
|
+
entries().select(&:special_variable?).sort_by(&:sort_key)
|
319
319
|
end
|
320
320
|
|
321
321
|
def singleton_method?(name, inherit = true)
|
data/lib/bitclust/rdcompiler.rb
CHANGED
@@ -170,7 +170,6 @@ module BitClust
|
|
170
170
|
def item_list(level = 0, indent = true)
|
171
171
|
open_tag = nil
|
172
172
|
close_tag = nil
|
173
|
-
pattern = nil
|
174
173
|
case @f.peek
|
175
174
|
when /\A(\s+)\*\s/
|
176
175
|
open_tag = "<ul>"
|
@@ -428,6 +427,8 @@ module BitClust
|
|
428
427
|
rfc_link(arg)
|
429
428
|
when 'ruby-list', 'ruby-dev', 'ruby-ext', 'ruby-talk', 'ruby-core'
|
430
429
|
blade_link(type, arg)
|
430
|
+
when 'feature', 'bug'
|
431
|
+
bugs_link(type, arg)
|
431
432
|
else
|
432
433
|
"[[#{escape_html(link)}]]"
|
433
434
|
end
|
@@ -517,6 +518,13 @@ module BitClust
|
|
517
518
|
%Q(<a class="external" href="#{escape_html(url)}">#{escape_html("#{m[1]}(#{m[2]})")}</a>)
|
518
519
|
end
|
519
520
|
|
521
|
+
BUGS_URL = "https://bugs.ruby-lang.org/issues/%s"
|
522
|
+
|
523
|
+
def bugs_link(type, id)
|
524
|
+
url = sprintf(BUGS_URL, id)
|
525
|
+
%Q(<a class="external" href="#{escape_html(url)}">[#{type}##{id}]</a>)
|
526
|
+
end
|
527
|
+
|
520
528
|
def rdoc_url(method_id, version)
|
521
529
|
cname, tmark, mname, libname = methodid2specparts(method_id)
|
522
530
|
tchar = typemark2char(tmark) == 'i' ? 'i' : 'c'
|
data/lib/bitclust/screen.rb
CHANGED
@@ -166,6 +166,10 @@ module BitClust
|
|
166
166
|
raise unless %r!\A[-\w/]+\z! =~ name
|
167
167
|
"#{@cgi_url}/#{name}"
|
168
168
|
end
|
169
|
+
|
170
|
+
def canonical_url(current_url)
|
171
|
+
current_url
|
172
|
+
end
|
169
173
|
end
|
170
174
|
|
171
175
|
|
@@ -327,6 +331,14 @@ module BitClust
|
|
327
331
|
@urlmapper.favicon_url
|
328
332
|
end
|
329
333
|
|
334
|
+
def current_url
|
335
|
+
raise NotImplementedError, "Must implement this method in subclass"
|
336
|
+
end
|
337
|
+
|
338
|
+
def canonical_url
|
339
|
+
@urlmapper.canonical_url(current_url)
|
340
|
+
end
|
341
|
+
|
330
342
|
def opensearchdescription_url
|
331
343
|
@urlmapper.opensearchdescription_url
|
332
344
|
end
|
@@ -452,6 +464,10 @@ module BitClust
|
|
452
464
|
def body
|
453
465
|
run_template('library-index')
|
454
466
|
end
|
467
|
+
|
468
|
+
def current_url
|
469
|
+
@urlmapper.library_index_url
|
470
|
+
end
|
455
471
|
end
|
456
472
|
|
457
473
|
class LibraryScreen < EntryBoundScreen
|
@@ -473,6 +489,10 @@ module BitClust
|
|
473
489
|
draw_treed_entries(roots, tree, &block)
|
474
490
|
end
|
475
491
|
|
492
|
+
def current_url
|
493
|
+
@urlmapper.library_url(@entry.name)
|
494
|
+
end
|
495
|
+
|
476
496
|
private
|
477
497
|
|
478
498
|
def draw_treed_entries(entries, tree, indent = 0, &block)
|
@@ -487,6 +507,10 @@ module BitClust
|
|
487
507
|
def body
|
488
508
|
run_template('class-index')
|
489
509
|
end
|
510
|
+
|
511
|
+
def current_url
|
512
|
+
@urlmapper.class_url(@entries.first.name)
|
513
|
+
end
|
490
514
|
end
|
491
515
|
|
492
516
|
class OpenSearchDescriptionScreen < TemplateScreen
|
@@ -529,6 +553,10 @@ module BitClust
|
|
529
553
|
def body
|
530
554
|
run_template('class')
|
531
555
|
end
|
556
|
+
|
557
|
+
def current_url
|
558
|
+
@urlmapper.class_url(@entry.name)
|
559
|
+
end
|
532
560
|
end
|
533
561
|
|
534
562
|
class MethodScreen < TemplateScreen
|
@@ -549,18 +577,32 @@ module BitClust
|
|
549
577
|
def body
|
550
578
|
run_template('method')
|
551
579
|
end
|
580
|
+
|
581
|
+
def current_url
|
582
|
+
ent = @entries.first
|
583
|
+
spec = ent ? ent.spec_string : ""
|
584
|
+
@urlmapper.method_url(spec)
|
585
|
+
end
|
552
586
|
end
|
553
587
|
|
554
588
|
class FunctionScreen < EntryBoundScreen
|
555
589
|
def body
|
556
590
|
run_template('function')
|
557
591
|
end
|
592
|
+
|
593
|
+
def current_url
|
594
|
+
@urlmapper.function_url(@entry.name)
|
595
|
+
end
|
558
596
|
end
|
559
597
|
|
560
598
|
class FunctionIndexScreen < IndexScreen
|
561
599
|
def body
|
562
600
|
run_template('function-index')
|
563
601
|
end
|
602
|
+
|
603
|
+
def current_url
|
604
|
+
@urlmapper.function_index_url
|
605
|
+
end
|
564
606
|
end
|
565
607
|
|
566
608
|
class DocScreen < EntryBoundScreen
|
@@ -581,5 +623,9 @@ module BitClust
|
|
581
623
|
h = {:force => true, :catalog => message_catalog() }.merge(@conf)
|
582
624
|
RDCompiler.new(@urlmapper, @hlevel, h)
|
583
625
|
end
|
626
|
+
|
627
|
+
def current_url
|
628
|
+
@urlmapper.document_url(@entry.name)
|
629
|
+
end
|
584
630
|
end
|
585
631
|
end
|
@@ -19,7 +19,8 @@ module BitClust
|
|
19
19
|
@prepare = nil
|
20
20
|
@cleanup = nil
|
21
21
|
@purge = nil
|
22
|
-
@versions = ["2.
|
22
|
+
@versions = ["2.1.0", "2.2.0", "2.3.0"]
|
23
|
+
@update = true
|
23
24
|
@parser.banner = "Usage: #{File.basename($0, '.*')} setup [options]"
|
24
25
|
@parser.on('--prepare', 'Prepare config file and checkout repository. Do not create database.') {
|
25
26
|
@prepare = true
|
@@ -33,6 +34,9 @@ module BitClust
|
|
33
34
|
@parser.on('--versions=V1,V2,...', "Specify versions. [#{@versions.join(',')}]") {|versions|
|
34
35
|
@versions = versions.split(",")
|
35
36
|
}
|
37
|
+
@parser.on('--no-update', 'Do not update document repository') {
|
38
|
+
@update = false
|
39
|
+
}
|
36
40
|
end
|
37
41
|
|
38
42
|
def exec(argv, options)
|
@@ -112,6 +116,7 @@ module BitClust
|
|
112
116
|
|
113
117
|
succeeded = false
|
114
118
|
if (rubydoc_dir + ".git").exist?
|
119
|
+
return unless @update
|
115
120
|
Dir.chdir(rubydoc_dir) do
|
116
121
|
succeeded = system("git", "pull", "--rebase")
|
117
122
|
end
|
@@ -27,6 +27,7 @@ module BitClust
|
|
27
27
|
@bitclust_html_base = ""
|
28
28
|
@suffix = h[:suffix]
|
29
29
|
@fs_casesensitive = h[:fs_casesensitive]
|
30
|
+
@canonical_base_url = h[:canonical_base_url]
|
30
31
|
end
|
31
32
|
|
32
33
|
def library_url(name)
|
@@ -74,6 +75,10 @@ module BitClust
|
|
74
75
|
@bitclust_html_base + "/function/#{html_filename("index", @suffix)}"
|
75
76
|
end
|
76
77
|
|
78
|
+
def canonical_url(current_url)
|
79
|
+
(@canonical_base_url + "/#{current_url}").sub(@bitclust_html_base, "").sub(/([^:])\/\/+/, "\\1/")
|
80
|
+
end
|
81
|
+
|
77
82
|
def encodename_package(str)
|
78
83
|
if @fs_casesensitive
|
79
84
|
encodename_url(str)
|
@@ -117,6 +122,9 @@ module BitClust
|
|
117
122
|
@parser.on('--fs-casesensitive', 'Filesystem is case-sensitive') do
|
118
123
|
@fs_casesensitive = true
|
119
124
|
end
|
125
|
+
@parser.on('--canonical-base-url=URL', 'Canonical base URL') do |url|
|
126
|
+
@canonical_base_url = url
|
127
|
+
end
|
120
128
|
@parser.on('--[no-]quiet', 'Be quiet') do |quiet|
|
121
129
|
@verbose = !quiet
|
122
130
|
end
|
@@ -187,7 +195,8 @@ module BitClust
|
|
187
195
|
:favicon_url => 'rurema.png',
|
188
196
|
:cgi_url => '',
|
189
197
|
:tochm_mode => true,
|
190
|
-
:fs_casesensitive => @fs_casesensitive
|
198
|
+
:fs_casesensitive => @fs_casesensitive,
|
199
|
+
:canonical_base_url => @canonical_base_url
|
191
200
|
}
|
192
201
|
@manager_config[:urlmapper] = URLMapperEx.new(@manager_config)
|
193
202
|
@urlmapper = @manager_config[:urlmapper]
|
data/lib/bitclust/version.rb
CHANGED
data/test/test_rdcompiler.rb
CHANGED
@@ -526,6 +526,28 @@ HERE
|
|
526
526
|
</li>
|
527
527
|
</ol>
|
528
528
|
|
529
|
+
HERE
|
530
|
+
assert_compiled_source(expected, src)
|
531
|
+
end
|
532
|
+
|
533
|
+
def test_olist_ulist
|
534
|
+
src = <<HERE
|
535
|
+
(1) aaa
|
536
|
+
(1) bbb
|
537
|
+
(1) ccc
|
538
|
+
* xxx
|
539
|
+
* yyy
|
540
|
+
HERE
|
541
|
+
expected = <<HERE
|
542
|
+
<ol>
|
543
|
+
<li>aaa</li>
|
544
|
+
<li>bbb</li>
|
545
|
+
<li>ccc<ul>
|
546
|
+
<li>xxx</li>
|
547
|
+
<li>yyy</li>
|
548
|
+
</ul>
|
549
|
+
</li>
|
550
|
+
</ol>
|
529
551
|
HERE
|
530
552
|
assert_compiled_source(expected, src)
|
531
553
|
end
|
@@ -564,7 +586,9 @@ HERE
|
|
564
586
|
"continuity" => ['[[c:String]][[c:String]]', '<a href="dummy/class/String">String</a><a href="dummy/class/String">String</a>'],
|
565
587
|
"constant" => ['[[m:File::SEPARATOR]]', '<a href="dummy/method/File/c/SEPARATOR">File::SEPARATOR</a>'],
|
566
588
|
"url" => ['[[url:http://i.loveruby.net]]', '<a class="external" href="http://i.loveruby.net">http://i.loveruby.net</a>'],
|
567
|
-
"ruby-list" => ['[[ruby-list:12345]]', '<a class="external" href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/12345">[ruby-list:12345]</a>'],
|
589
|
+
"ruby-list" => ['[[ruby-list:12345]]', '<a class="external" href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/12345">[ruby-list:12345]</a>'],
|
590
|
+
"bugs.r-l.o feature" => ['[[feature:12345]]', '<a class="external" href="https://bugs.ruby-lang.org/issues/12345">[feature#12345]</a>'],
|
591
|
+
"bugs.r-l.o bug" => ['[[bug:12345]]', '<a class="external" href="https://bugs.ruby-lang.org/issues/12345">[bug#12345]</a>'],)
|
568
592
|
def test_bracket_link(data)
|
569
593
|
target, expected = data
|
570
594
|
assert_equal(expected, @c.send(:compile_text, target), target)
|
@@ -575,7 +599,7 @@ HERE
|
|
575
599
|
"ref class" => ['[[ref:c:Hoge#frag]]', '<a href="dummy/class/Hoge#frag">.*</a>'],
|
576
600
|
"ref special var" => ['[[ref:m:$~#frag]]', '<a href="dummy/method/Kernel/v/=7e#frag">.*</a>'],
|
577
601
|
"ref library" => ['[[ref:lib:jcode#frag]]', '<a href="dummy/library/jcode#frag">.*</a>'],
|
578
|
-
"ref class"
|
602
|
+
"ref class error" => ['[[ref:c:Hoge]]', 'compileerror'],
|
579
603
|
"ref ref" => ['[[ref:ref:hoge/bar#frag]]', 'compileerror'],)
|
580
604
|
def test_bracket_link_doc(data)
|
581
605
|
target, expected = data
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitclust-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- http://bugs.ruby-lang.org/projects/rurema
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|
@@ -239,23 +239,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
239
|
version: '0'
|
240
240
|
requirements: []
|
241
241
|
rubyforge_project: ''
|
242
|
-
rubygems_version: 2.
|
242
|
+
rubygems_version: 2.6.4
|
243
243
|
signing_key:
|
244
244
|
specification_version: 4
|
245
245
|
summary: BitClust is a rurema document processor.
|
246
246
|
test_files:
|
247
|
+
- test/test_preprocessor.rb
|
247
248
|
- test/run_test.rb
|
248
|
-
- test/test_bitclust.rb
|
249
249
|
- test/test_entry.rb
|
250
|
+
- test/test_methoddatabase.rb
|
250
251
|
- test/test_functiondatabase.rb
|
252
|
+
- test/test_refsdatabase.rb
|
253
|
+
- test/test_bitclust.rb
|
251
254
|
- test/test_functionreferenceparser.rb
|
252
|
-
- test/test_libraryentry.rb
|
253
|
-
- test/test_methoddatabase.rb
|
254
255
|
- test/test_methodsignature.rb
|
256
|
+
- test/test_rrdparser.rb
|
257
|
+
- test/test_simplesearcher.rb
|
255
258
|
- test/test_nameutils.rb
|
256
|
-
- test/test_preprocessor.rb
|
257
259
|
- test/test_rdcompiler.rb
|
258
|
-
- test/test_refsdatabase.rb
|
259
|
-
- test/test_rrdparser.rb
|
260
260
|
- test/test_runner.rb
|
261
|
-
- test/
|
261
|
+
- test/test_libraryentry.rb
|