bitclust-core 1.2.4 → 1.2.5
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/data/bitclust/template.offline/class +20 -13
- data/data/bitclust/template.offline/class-index +4 -4
- data/data/bitclust/template.offline/doc +4 -2
- data/data/bitclust/template.offline/function +4 -2
- data/data/bitclust/template.offline/function-index +4 -4
- data/data/bitclust/template.offline/layout +16 -15
- data/data/bitclust/template.offline/library +11 -8
- data/data/bitclust/template.offline/library-index +4 -4
- data/data/bitclust/template.offline/method +4 -2
- data/lib/bitclust/classentry.rb +6 -0
- data/lib/bitclust/nameutils.rb +2 -2
- data/lib/bitclust/preprocessor.rb +6 -6
- data/lib/bitclust/rrdparser.rb +4 -7
- data/lib/bitclust/syntax_highlighter.rb +1 -0
- data/lib/bitclust/version.rb +1 -1
- data/test/test_syntax_highlighter.rb +12 -0
- data/theme/default/script.js +1 -2
- data/theme/default/style.css +18 -2
- metadata +20 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b2eea15e85eb324e528b0528b01f84eae456154be836941cc43375028336fc7
|
4
|
+
data.tar.gz: 2cda706afc4b6bc09d4ca21e51eb9167068554b00193c23ba07f8e8ab9c31b98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed87e3a8a250751dfe518cd40c76b8dc92ee90312810f79e384a78239b7167bbbc80d5da86ca742114f65b977f0338af40a26b8dd62d0890915201c021d1b7ec
|
7
|
+
data.tar.gz: 5377b074eb7f16a473998d9869ae04911f703cdd35fc9306a5153092b185d09f57a8e057dfaded3a08e178f869ae4e3c080ac1bf088756f19636ce5e21f09c62
|
@@ -45,12 +45,11 @@
|
|
45
45
|
</li>
|
46
46
|
</ol>
|
47
47
|
</nav>
|
48
|
+
<% headline_init %>
|
49
|
+
<%= headline("#{@entry.type} #{@entry.name}" + @entry.ancestors[1..@alevel].map{|c| " + #{c.name}" }.join) %>
|
48
50
|
</header>
|
49
51
|
|
50
|
-
|
51
|
-
headline_init
|
52
|
-
%>
|
53
|
-
<%= headline("#{@entry.type} #{@entry.name}" + @entry.ancestors[1..@alevel].map{|c| " + #{c.name}" }.join) %>
|
52
|
+
<main>
|
54
53
|
<%
|
55
54
|
myself, *supers = @entry.ancestors
|
56
55
|
n = 0
|
@@ -67,7 +66,7 @@
|
|
67
66
|
<% n += 1 %>
|
68
67
|
<% end %>
|
69
68
|
<li>
|
70
|
-
<%= escape_html(myself.name) %>
|
69
|
+
<%= @entry.object? ? class_link(myself.name) : escape_html(myself.name) %>
|
71
70
|
</li>
|
72
71
|
</ol>
|
73
72
|
</nav>
|
@@ -128,15 +127,18 @@
|
|
128
127
|
<% items.each do |label, entries, prefix| next if entries.empty? %>
|
129
128
|
<dt><%= label %></dt>
|
130
129
|
<dd>
|
130
|
+
<ul class="class-toc">
|
131
131
|
<%
|
132
|
-
entries.
|
133
|
-
|
132
|
+
entries.inject([]){ |ary, m| ary.concat(m.names.map{ |mname| [m.index_id, mname] }) }
|
133
|
+
.uniq
|
134
|
+
.sort_by{ |_, mname| mname.gsub(/(?=[^\da-zA-Z])/, "\t") }
|
135
|
+
.each do |index_id, mname|
|
134
136
|
%>
|
135
|
-
<a href="#<%=
|
137
|
+
<li><a href="#<%= index_id %>"><%= escape_html "#{prefix}#{mname}" %></a></li>
|
136
138
|
<%
|
137
|
-
end
|
138
139
|
end
|
139
140
|
%>
|
141
|
+
</ul>
|
140
142
|
</dd>
|
141
143
|
<% end %>
|
142
144
|
</dl>
|
@@ -151,14 +153,18 @@ displayed_methods = Set.new(ents.instance_methods.map(&:name))
|
|
151
153
|
<dl>
|
152
154
|
<% ancestors.each do |c|
|
153
155
|
methods = c.partitioned_entries(@alevel).instance_methods
|
154
|
-
.
|
156
|
+
.flat_map { |m| m.names.map { |n| [n, m] } }
|
157
|
+
.reject { |name,| displayed_methods.include?(name) }
|
158
|
+
.sort
|
155
159
|
next if methods.empty? %>
|
156
160
|
<dt><%= _('Ancestor Methods %s', c.name) %></dt>
|
157
161
|
<dd>
|
158
|
-
|
159
|
-
|
160
|
-
|
162
|
+
<ul class="class-toc">
|
163
|
+
<% methods.each do |name, m| %>
|
164
|
+
<li><%= method_link(m.spec_string, name) %></li>
|
165
|
+
<% displayed_methods << name %>
|
161
166
|
<% end %>
|
167
|
+
</ul>
|
162
168
|
</dd>
|
163
169
|
<%
|
164
170
|
end
|
@@ -185,3 +191,4 @@ end %>
|
|
185
191
|
end
|
186
192
|
headline_pop
|
187
193
|
%>
|
194
|
+
</main>
|
@@ -31,12 +31,11 @@
|
|
31
31
|
</li>
|
32
32
|
</ol>
|
33
33
|
</nav>
|
34
|
+
<% headline_init %>
|
35
|
+
<%= headline(_("Class Index")) %>
|
34
36
|
</header>
|
35
37
|
|
36
|
-
|
37
|
-
headline_init
|
38
|
-
%>
|
39
|
-
<%= headline(_("Class Index")) %>
|
38
|
+
<main>
|
40
39
|
<p>
|
41
40
|
<%= @entries.size %> classes/modules in database
|
42
41
|
</p>
|
@@ -56,3 +55,4 @@
|
|
56
55
|
headline_pop
|
57
56
|
%>
|
58
57
|
</ul>
|
58
|
+
</main>
|
@@ -39,10 +39,11 @@
|
|
39
39
|
</li>
|
40
40
|
</ol>
|
41
41
|
</nav>
|
42
|
-
</header>
|
43
|
-
|
44
42
|
<% headline_init %>
|
45
43
|
<%= headline("#{entry.type_label} #{entry.label}") %>
|
44
|
+
</header>
|
45
|
+
|
46
|
+
<main>
|
46
47
|
<dl class="functionlist">
|
47
48
|
<dt>
|
48
49
|
<code><%= entry.header %></code>
|
@@ -51,3 +52,4 @@
|
|
51
52
|
<%= compile_function(entry) %>
|
52
53
|
</dd>
|
53
54
|
</dl>
|
55
|
+
</main>
|
@@ -31,12 +31,11 @@
|
|
31
31
|
</li>
|
32
32
|
</ol>
|
33
33
|
</nav>
|
34
|
+
<% headline_init %>
|
35
|
+
<%= headline(_("Function Index")) %>
|
34
36
|
</header>
|
35
37
|
|
36
|
-
|
37
|
-
headline_init
|
38
|
-
%>
|
39
|
-
<%= headline(_("Function Index")) %>
|
38
|
+
<main>
|
40
39
|
<table class="entries functions">
|
41
40
|
<%
|
42
41
|
headline_push
|
@@ -51,3 +50,4 @@
|
|
51
50
|
headline_pop
|
52
51
|
%>
|
53
52
|
</table>
|
53
|
+
</main>
|
@@ -1,28 +1,29 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html lang="ja-JP">
|
3
3
|
<head>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
4
|
+
<%= google_tag_manager %>
|
5
|
+
<%= meta_robots %>
|
6
|
+
<meta charset="<%=h charset() %>">
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
8
|
+
<link rel="stylesheet" href="<%=h css_url() %>">
|
9
|
+
<link rel="stylesheet" href="<%=h custom_css_url("syntax-highlight.css") %>">
|
10
|
+
<link rel="icon" type="image/png" href="<%=h favicon_url() %>">
|
11
|
+
<% if @conf[:canonical_base_url] %>
|
12
|
+
<link rel="canonical" href="<%= canonical_url() %>">
|
13
|
+
<% end %>
|
14
|
+
<title><%=h @title %> (Ruby <%=h ruby_version %> リファレンスマニュアル)</title>
|
15
|
+
<meta name="description" content="<%=h @description %>">
|
16
|
+
<script src="<%=h custom_js_url('script.js') %>"></script>
|
17
17
|
</head>
|
18
18
|
<body>
|
19
19
|
<%= yield %>
|
20
|
-
<
|
20
|
+
<footer id="footer">
|
21
21
|
<a rel="license" href="https://creativecommons.org/licenses/by/3.0/">
|
22
22
|
<img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/3.0/88x31.png" />
|
23
23
|
</a>
|
24
24
|
|
25
25
|
フィードバックは<a href="https://github.com/rurema/doctree/issues/new" id="feedback-link">こちら</a>
|
26
|
-
<script>if (window.URLSearchParams) { document.getElementById("feedback-link").search = new URLSearchParams({'body': document.location}); }</script
|
26
|
+
<script>if (window.URLSearchParams) { document.getElementById("feedback-link").search = new URLSearchParams({'body': document.location}); }</script>
|
27
|
+
</footer>
|
27
28
|
</body>
|
28
29
|
</html>
|
@@ -38,13 +38,11 @@
|
|
38
38
|
</li>
|
39
39
|
</ol>
|
40
40
|
</nav>
|
41
|
-
|
42
|
-
|
43
|
-
<%
|
44
|
-
headline_init
|
45
|
-
%>
|
41
|
+
<% headline_init %>
|
46
42
|
<%= headline(@entry.id == '_builtin' ? _('Builtin Library') : "library #{@entry.name}") %>
|
43
|
+
</header>
|
47
44
|
|
45
|
+
<main>
|
48
46
|
<%
|
49
47
|
headline_push
|
50
48
|
all_classes = @entry.all_classes
|
@@ -99,12 +97,17 @@
|
|
99
97
|
end
|
100
98
|
%>
|
101
99
|
<%
|
102
|
-
ents = @entry.methods.
|
100
|
+
ents = @entry.methods.flat_map do |m|
|
101
|
+
c, t, n, = methodid2specparts(m.id)
|
102
|
+
prefix = (t == '$' ? '' : c) + t
|
103
|
+
m.names.map { |name| [prefix + name, c + t + n] }
|
104
|
+
end.sort
|
103
105
|
unless ents.empty? %>
|
104
106
|
<%= headline(_("Added/Redefined Methods")) %>
|
105
107
|
<p><code>
|
106
|
-
<% ents.each do |
|
107
|
-
<%=
|
108
|
+
<% ents.each do |label, spec| %>
|
109
|
+
<%= method_link(spec, label) %>
|
108
110
|
<% end %>
|
109
111
|
</code></p>
|
110
112
|
<% end %>
|
113
|
+
</main>
|
@@ -31,12 +31,11 @@
|
|
31
31
|
</li>
|
32
32
|
</ol>
|
33
33
|
</nav>
|
34
|
+
<% headline_init %>
|
35
|
+
<%= headline(_("Library Index")) %>
|
34
36
|
</header>
|
35
37
|
|
36
|
-
|
37
|
-
headline_init
|
38
|
-
%>
|
39
|
-
<%= headline(_("Library Index")) %>
|
38
|
+
<main>
|
40
39
|
<%
|
41
40
|
headline_push
|
42
41
|
weight = {"Builtin" => "", "" => "\x7f\x7f"}
|
@@ -75,3 +74,4 @@
|
|
75
74
|
end
|
76
75
|
headline_pop
|
77
76
|
%>
|
77
|
+
</main>
|
@@ -53,10 +53,11 @@
|
|
53
53
|
</li>
|
54
54
|
</ol>
|
55
55
|
</nav>
|
56
|
-
</header>
|
57
|
-
|
58
56
|
<% headline_init %>
|
59
57
|
<%= headline("#{entry.type_label} #{entry.label}") %>
|
58
|
+
</header>
|
59
|
+
|
60
|
+
<main>
|
60
61
|
<dl class="methodlist">
|
61
62
|
<%
|
62
63
|
headline_push
|
@@ -68,3 +69,4 @@
|
|
68
69
|
headline_pop
|
69
70
|
%>
|
70
71
|
</dl>
|
72
|
+
</main>
|
data/lib/bitclust/classentry.rb
CHANGED
@@ -210,8 +210,14 @@ module BitClust
|
|
210
210
|
|
211
211
|
def ancestors
|
212
212
|
@ancestors ||=
|
213
|
+
if self.object? && superclass()
|
214
|
+
myself, *ancestors = superclass().ancestors
|
215
|
+
[ myself, included().map {|m| m.ancestors },
|
216
|
+
ancestors ].flatten
|
217
|
+
else
|
213
218
|
[ self, included().map {|m| m.ancestors },
|
214
219
|
superclass() ? superclass().ancestors : [] ].flatten
|
220
|
+
end
|
215
221
|
end
|
216
222
|
|
217
223
|
def included_modules
|
data/lib/bitclust/nameutils.rb
CHANGED
@@ -19,8 +19,8 @@ module BitClust
|
|
19
19
|
LIBNAME_RE = %r<[\w\-]+(/[\w\-]+)*>
|
20
20
|
CONST_RE = /[A-Z]\w*/
|
21
21
|
CONST_PATH_RE = /#{CONST_RE}(?:::#{CONST_RE})*/
|
22
|
-
CLASS_NAME_RE = /(?:#{CONST_RE}(?:::compatible)?|fatal|ARGF
|
23
|
-
CLASS_PATH_RE = /(?:#{CONST_PATH_RE}(?:::compatible)?|fatal|ARGF
|
22
|
+
CLASS_NAME_RE = /(?:#{CONST_RE}(?:::compatible)?|fatal|ARGF\.class|main)/
|
23
|
+
CLASS_PATH_RE = /(?:#{CONST_PATH_RE}(?:::compatible)?|fatal|ARGF\.class|main)/
|
24
24
|
METHOD_NAME_RE = /\w+[?!=]?|===|==|=~|<=>|<=|>=|!=|!~|!@|!|\[\]=|\[\]|\*\*|>>|<<|\+@|\-@|[~+\-*\/%&|^<>`]/
|
25
25
|
TYPEMARK_RE = /(?:\.|\#|\.\#|::|\$)/
|
26
26
|
METHOD_SPEC_RE = /#{CLASS_PATH_RE}#{TYPEMARK_RE}#{METHOD_NAME_RE}/
|
@@ -76,6 +76,11 @@ module BitClust
|
|
76
76
|
def next_line(f)
|
77
77
|
while line = f.gets
|
78
78
|
case line
|
79
|
+
when /\A(?!\#@)/
|
80
|
+
if current_cond.processing?
|
81
|
+
@buf.push line
|
82
|
+
break
|
83
|
+
end
|
79
84
|
when /\A\#@\#/ # preprocessor comment
|
80
85
|
;
|
81
86
|
when /\A\#@todo/i
|
@@ -107,13 +112,8 @@ module BitClust
|
|
107
112
|
parse_error "no matching \#@if", line if cond_toplevel?
|
108
113
|
cond_pop
|
109
114
|
end
|
110
|
-
when /\A\#@/
|
111
|
-
parse_error "unknown preprocessor directive", line
|
112
115
|
else
|
113
|
-
|
114
|
-
@buf.push line
|
115
|
-
break
|
116
|
-
end
|
116
|
+
parse_error "unknown preprocessor directive", line
|
117
117
|
end
|
118
118
|
end
|
119
119
|
if @buf.empty?
|
data/lib/bitclust/rrdparser.rb
CHANGED
@@ -120,11 +120,7 @@ module BitClust
|
|
120
120
|
@context.define_module name
|
121
121
|
read_class_body f
|
122
122
|
when 'object'
|
123
|
-
|
124
|
-
# FIXME
|
125
|
-
tty_warn "#{line.location}: singleton object class not implemented yet"
|
126
|
-
end
|
127
|
-
@context.define_object name
|
123
|
+
@context.define_object name, superclass
|
128
124
|
read_object_body f
|
129
125
|
when 'reopen'
|
130
126
|
@context.reopen_class name
|
@@ -366,8 +362,9 @@ module BitClust
|
|
366
362
|
register_class :module, name, nil
|
367
363
|
end
|
368
364
|
|
369
|
-
def define_object(name)
|
370
|
-
|
365
|
+
def define_object(name, singleton_object_class)
|
366
|
+
singleton_object_class = @db.get_class(singleton_object_class) if singleton_object_class
|
367
|
+
register_class :object, name, singleton_object_class
|
371
368
|
end
|
372
369
|
|
373
370
|
def register_class(type, name, superclass)
|
data/lib/bitclust/version.rb
CHANGED
@@ -70,4 +70,16 @@ class TestSyntaxHighlighter < Test::Unit::TestCase
|
|
70
70
|
expected = '<span class="nb">puts</span> <span class="sr">/<a>/</span>'
|
71
71
|
assert_equal(expected, highlight(source))
|
72
72
|
end
|
73
|
+
|
74
|
+
test 'symbol method' do
|
75
|
+
source = <<~END
|
76
|
+
p 1.!
|
77
|
+
p 2
|
78
|
+
END
|
79
|
+
expected = <<~END
|
80
|
+
<span class="nb">p</span> <span class="mi">1</span><span class="p">.</span><span class="o">!</span>
|
81
|
+
<span class="nb">p</span> <span class="mi">2</span>
|
82
|
+
END
|
83
|
+
assert_equal(expected, highlight(source))
|
84
|
+
end
|
73
85
|
end
|
data/theme/default/script.js
CHANGED
@@ -18,9 +18,8 @@
|
|
18
18
|
elem.appendChild(copyText)
|
19
19
|
|
20
20
|
// COPY button
|
21
|
-
const btn = document.createElement('
|
21
|
+
const btn = document.createElement('span')
|
22
22
|
btn.setAttribute('class', 'highlight__copy-button')
|
23
|
-
// btn.textContent = "COPY"
|
24
23
|
elem.insertBefore(btn, elem.firstChild)
|
25
24
|
|
26
25
|
btn.onclick = function(){
|
data/theme/default/style.css
CHANGED
@@ -114,8 +114,8 @@ span.compileerror {
|
|
114
114
|
}
|
115
115
|
|
116
116
|
code, pre, tt {
|
117
|
-
|
118
|
-
|
117
|
+
font-size: 90%;
|
118
|
+
font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
|
119
119
|
}
|
120
120
|
|
121
121
|
pre {
|
@@ -350,6 +350,22 @@ hr {
|
|
350
350
|
padding-right: 0.3rem;
|
351
351
|
}
|
352
352
|
|
353
|
+
.class-toc {
|
354
|
+
list-style: none;
|
355
|
+
margin: 0.5em 0;
|
356
|
+
padding: 0;
|
357
|
+
column-gap: 1em;
|
358
|
+
column-width: 10em;
|
359
|
+
column-rule: 1px dotted #BBB;
|
360
|
+
}
|
361
|
+
|
362
|
+
.class-toc > li {
|
363
|
+
padding-left: 1em;
|
364
|
+
text-indent: -1em;
|
365
|
+
word-break: break-all;
|
366
|
+
break-inside: avoid;
|
367
|
+
}
|
368
|
+
|
353
369
|
@media print {
|
354
370
|
body {
|
355
371
|
font-family: osaka,'MS Mincho',serif;
|
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: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/rurema
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|
@@ -232,7 +232,12 @@ files:
|
|
232
232
|
- theme/lillia/test.css
|
233
233
|
homepage: https://docs.ruby-lang.org/ja/
|
234
234
|
licenses: []
|
235
|
-
metadata:
|
235
|
+
metadata:
|
236
|
+
bug_tracker_uri: https://github.com/rurema/bitclust/issues
|
237
|
+
documentation_uri: https://github.com/rurema/doctree/wiki
|
238
|
+
homepage_uri: https://docs.ruby-lang.org/ja/
|
239
|
+
source_code_uri: https://github.com/rurema/bitclust
|
240
|
+
wiki_uri: https://github.com/rurema/doctree/wiki
|
236
241
|
post_install_message:
|
237
242
|
rdoc_options: []
|
238
243
|
require_paths:
|
@@ -248,24 +253,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
253
|
- !ruby/object:Gem::Version
|
249
254
|
version: '0'
|
250
255
|
requirements: []
|
251
|
-
rubygems_version: 3.
|
256
|
+
rubygems_version: 3.1.2
|
252
257
|
signing_key:
|
253
258
|
specification_version: 4
|
254
259
|
summary: BitClust is a rurema document processor.
|
255
260
|
test_files:
|
256
|
-
- test/run_test.rb
|
257
|
-
- test/test_nameutils.rb
|
258
|
-
- test/test_functiondatabase.rb
|
259
|
-
- test/test_bitclust.rb
|
260
|
-
- test/test_simplesearcher.rb
|
261
261
|
- test/test_functionreferenceparser.rb
|
262
|
-
- test/test_runner.rb
|
263
262
|
- test/test_refsdatabase.rb
|
264
|
-
- test/test_methodsignature.rb
|
265
|
-
- test/test_libraryentry.rb
|
266
263
|
- test/test_rrdparser.rb
|
267
|
-
- test/
|
268
|
-
- test/test_entry.rb
|
264
|
+
- test/test_syntax_highlighter.rb
|
269
265
|
- test/test_methoddatabase.rb
|
266
|
+
- test/test_simplesearcher.rb
|
267
|
+
- test/test_nameutils.rb
|
268
|
+
- test/run_test.rb
|
269
|
+
- test/test_methodsignature.rb
|
270
270
|
- test/test_rdcompiler.rb
|
271
|
-
- test/
|
271
|
+
- test/test_functiondatabase.rb
|
272
|
+
- test/test_runner.rb
|
273
|
+
- test/test_bitclust.rb
|
274
|
+
- test/test_entry.rb
|
275
|
+
- test/test_preprocessor.rb
|
276
|
+
- test/test_libraryentry.rb
|