bitclust-core 1.2.5 → 1.2.6

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: 0b2eea15e85eb324e528b0528b01f84eae456154be836941cc43375028336fc7
4
- data.tar.gz: 2cda706afc4b6bc09d4ca21e51eb9167068554b00193c23ba07f8e8ab9c31b98
3
+ metadata.gz: 9351ae4c31a9070629d3caca3ea7d7dbc1b323ca1b5840de4aa78d6fd482fe7b
4
+ data.tar.gz: b80b4414d21ee137c425025778ad750122835b5294ab55012ed7debba0d0ea89
5
5
  SHA512:
6
- metadata.gz: ed87e3a8a250751dfe518cd40c76b8dc92ee90312810f79e384a78239b7167bbbc80d5da86ca742114f65b977f0338af40a26b8dd62d0890915201c021d1b7ec
7
- data.tar.gz: 5377b074eb7f16a473998d9869ae04911f703cdd35fc9306a5153092b185d09f57a8e057dfaded3a08e178f869ae4e3c080ac1bf088756f19636ce5e21f09c62
6
+ metadata.gz: def1f2a7b7b27922f0dfd2b3559a273e3289b46407be4e478a6af86a05a579ae7d3e6de8321474589fb29aa2a71359bd4dfb76691e73d27f972922b99edd1df3
7
+ data.tar.gz: 39af952569f246199ec9d258ede5faa937241aeb790368fb8d629aa31531ae0c6277e8c9b80f4e95b608d1131021dfebbd29c321f24519d8d8072d7820a465a2
@@ -1,6 +1,7 @@
1
1
  <%
2
2
  @title = "#{@entry.type} #{@entry.name}"
3
3
  @description = @entry.description
4
+ @edit_url = edit_url(@entry.source_location) if @conf[:edit_base_url] && @entry.source_location
4
5
  %>
5
6
  <% if @conf[:canonical_base_url] %>
6
7
  <script type="application/ld+json">
@@ -46,7 +47,7 @@
46
47
  </ol>
47
48
  </nav>
48
49
  <% headline_init %>
49
- <%= headline("#{@entry.type} #{@entry.name}" + @entry.ancestors[1..@alevel].map{|c| " + #{c.name}" }.join) %>
50
+ <%= headline("#{@entry.type} #{@entry.name}" + @entry.ancestors[1..@alevel].map{|c| " + #{c.name}" }.join, edit_url: @edit_url) %>
50
51
  </header>
51
52
 
52
53
  <main>
@@ -152,9 +153,11 @@ displayed_methods = Set.new(ents.instance_methods.map(&:name))
152
153
  <%= headline(_("Ancestor Methods")) %>
153
154
  <dl>
154
155
  <% ancestors.each do |c|
156
+ undefined_methods = @entry.partitioned_entries.undefined
155
157
  methods = c.partitioned_entries(@alevel).instance_methods
156
158
  .flat_map { |m| m.names.map { |n| [n, m] } }
157
159
  .reject { |name,| displayed_methods.include?(name) }
160
+ .reject { |name,| undefined_methods.any? { |m| m.names.include?(name) } }
158
161
  .sort
159
162
  next if methods.empty? %>
160
163
  <dt><%= _('Ancestor Methods %s', c.name) %></dt>
@@ -1,6 +1,7 @@
1
1
  <%
2
2
  @title = @entry.title
3
3
  @description = @entry.description
4
+ @edit_url = edit_url(@entry.source_location) if @conf[:edit_base_url] && @entry.source_location
4
5
  %>
5
6
  <% if @conf[:canonical_base_url] %>
6
7
  <script type="application/ld+json">
@@ -39,7 +40,7 @@
39
40
  </ol>
40
41
  </nav>
41
42
  <% headline_init %>
42
- <%= headline(@entry.title) %>
43
+ <%= headline(@entry.title, edit_url: @edit_url) %>
43
44
  </header>
44
45
 
45
46
  <main>
@@ -2,6 +2,7 @@
2
2
  entry = @entry
3
3
  @title = "#{entry.type_label} #{entry.label}"
4
4
  @description = @entry.description
5
+ @edit_url = edit_url(@entry.source_location) if @conf[:edit_base_url] && @entry.source_location
5
6
  %>
6
7
  <% if @conf[:canonical_base_url] %>
7
8
  <script type="application/ld+json">
@@ -40,7 +41,7 @@
40
41
  </ol>
41
42
  </nav>
42
43
  <% headline_init %>
43
- <%= headline("#{entry.type_label} #{entry.label}") %>
44
+ <%= headline("#{entry.type_label} #{entry.label}", edit_url: @edit_url) %>
44
45
  </header>
45
46
 
46
47
  <main>
@@ -22,7 +22,10 @@
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
- フィードバックは<a href="https://github.com/rurema/doctree/issues/new" id="feedback-link">こちら</a>
25
+ <a href="https://github.com/rurema/doctree/issues/new" id="feedback-link">フィードバックを送る</a>
26
+ <% if defined?(@edit_url) && @edit_url %>
27
+ / <a href="<%= @edit_url %>">このマニュアルを編集する</a>
28
+ <% end %>
26
29
  <script>if (window.URLSearchParams) { document.getElementById("feedback-link").search = new URLSearchParams({'body': document.location}); }</script>
27
30
  </footer>
28
31
  </body>
@@ -1,6 +1,7 @@
1
1
  <%
2
2
  @title = "library #{@entry.name}"
3
3
  @description = @entry.description
4
+ @edit_url = edit_url(@entry.source_location) if @conf[:edit_base_url] && @entry.source_location
4
5
  %>
5
6
  <% if @conf[:canonical_base_url] %>
6
7
  <script type="application/ld+json">
@@ -39,7 +40,7 @@
39
40
  </ol>
40
41
  </nav>
41
42
  <% headline_init %>
42
- <%= headline(@entry.id == '_builtin' ? _('Builtin Library') : "library #{@entry.name}") %>
43
+ <%= headline(@entry.id == '_builtin' ? _('Builtin Library') : "library #{@entry.name}", edit_url: @edit_url) %>
43
44
  </header>
44
45
 
45
46
  <main>
@@ -2,6 +2,7 @@
2
2
  entry = @entries.sort.first
3
3
  @title = entry.label
4
4
  @description = entry.description
5
+ @edit_url = edit_url(entry.source_location) if @conf[:edit_base_url] && entry.source_location
5
6
  %>
6
7
  <% if @conf[:canonical_base_url] %>
7
8
  <script type="application/ld+json">
@@ -88,6 +88,7 @@ module BitClust
88
88
  property :aliases, '[ClassEntry]'
89
89
  property :aliasof, 'ClassEntry'
90
90
  property :source, 'String'
91
+ property :source_location, 'Location'
91
92
  }
92
93
 
93
94
  # FIXME: do not use superclass property aliasing (#6826)
@@ -253,7 +254,7 @@ module BitClust
253
254
  :instance_methods, :private_instance_methods,
254
255
  :module_functions,
255
256
  :constants, :special_variables,
256
- :added)
257
+ :added, :undefined)
257
258
 
258
259
  def partitioned_entries(level = 0)
259
260
  s = []; spv = []
@@ -261,6 +262,7 @@ module BitClust
261
262
  mf = []
262
263
  c = []; v = []
263
264
  added = []
265
+ undefined = []
264
266
  entries(level).sort_by(&:name).each do |m|
265
267
  case m.kind
266
268
  when :defined, :redefined
@@ -280,9 +282,11 @@ module BitClust
280
282
  end
281
283
  when :added
282
284
  added.push m
285
+ when :undefined
286
+ undefined.push m
283
287
  end
284
288
  end
285
- Parts.new(s,spv, i,ipv, mf, c, v, added)
289
+ Parts.new(s,spv, i,ipv, mf, c, v, added, undefined)
286
290
  end
287
291
 
288
292
  def singleton_methods(level = 0)
@@ -26,6 +26,14 @@ unless String.method_defined?(:bytesize)
26
26
  end
27
27
  end
28
28
 
29
+ unless String.method_defined?(:match?)
30
+ class String
31
+ def match?(pattern, pos = 0)
32
+ !match(pattern, pos).nil?
33
+ end
34
+ end
35
+ end
36
+
29
37
  def fopen(*args, &block)
30
38
  option = args[1]
31
39
  if option and !Object.const_defined?(:Encoding)
@@ -57,8 +57,9 @@ module BitClust
57
57
  end
58
58
 
59
59
  persistent_properties {
60
- property :title, 'String'
61
- property :source, 'String'
60
+ property :title, 'String'
61
+ property :source, 'String'
62
+ property :source_location, 'Location'
62
63
  }
63
64
 
64
65
  def inspect
@@ -98,6 +98,7 @@ module BitClust
98
98
  when '[LibraryEntry]' then "[]"
99
99
  when '[ClassEntry]' then "[]"
100
100
  when '[MethodEntry]' then "[]"
101
+ when 'Location' then "nil"
101
102
  else
102
103
  raise "must not happen: @type=#{@type.inspect}"
103
104
  end
@@ -115,6 +116,7 @@ module BitClust
115
116
  when '[LibraryEntry]' then "restore_libraries(h['#{@name}'])"
116
117
  when '[ClassEntry]' then "restore_classes(h['#{@name}'])"
117
118
  when '[MethodEntry]' then "restore_methods(h['#{@name}'])"
119
+ when 'Location' then "h['#{@name}']&.tap { |loc| break if loc.empty?; break Location.new(*loc.split(?:)) }"
118
120
  else
119
121
  raise "must not happen: @type=#{@type.inspect}"
120
122
  end
@@ -132,6 +134,7 @@ module BitClust
132
134
  when '[LibraryEntry]' then "serialize_entries(@#{@name})"
133
135
  when '[ClassEntry]' then "serialize_entries(@#{@name})"
134
136
  when '[MethodEntry]' then "serialize_entries(@#{@name})"
137
+ when 'Location' then "@#@name.to_s"
135
138
  else
136
139
  raise "must not happen: @type=#{@type.inspect}"
137
140
  end
@@ -37,13 +37,14 @@ module BitClust
37
37
  end
38
38
 
39
39
  persistent_properties {
40
- property :filename, 'String'
41
- property :macro, 'bool'
42
- property :private, 'bool'
43
- property :type, 'String'
44
- property :name, 'String'
45
- property :params, 'String'
46
- property :source, 'String'
40
+ property :filename, 'String'
41
+ property :macro, 'bool'
42
+ property :private, 'bool'
43
+ property :type, 'String'
44
+ property :name, 'String'
45
+ property :params, 'String'
46
+ property :source, 'String'
47
+ property :source_location, 'Location'
47
48
  }
48
49
 
49
50
  attr_reader :id
@@ -34,6 +34,7 @@ module BitClust
34
34
 
35
35
  def parse(f, filename, params = {})
36
36
  @filename = filename
37
+ @path = f.path
37
38
  s = Preprocessor.read(f, params)
38
39
  file_entries LineInput.for_string(s)
39
40
  @db.functions
@@ -59,6 +60,7 @@ module BitClust
59
60
  f.name = h.name
60
61
  f.params = h.params
61
62
  f.source = body.join('')
63
+ f.source_location = body[0]&.location&.tap {|loc| break Location.new(@path, loc.line - 1) }
62
64
  }
63
65
  end
64
66
 
@@ -73,6 +73,7 @@ module BitClust
73
73
  property :sublibraries, '[LibraryEntry]'
74
74
  property :is_sublibrary, 'bool'
75
75
  property :category, 'String'
76
+ property :source_location, 'Location'
76
77
  }
77
78
 
78
79
  def inspect
@@ -9,6 +9,7 @@
9
9
  #
10
10
 
11
11
  require 'stringio'
12
+ require 'bitclust/parseutils'
12
13
 
13
14
  # Utility class for line-wise file parsing
14
15
  class LineInput
@@ -34,7 +35,7 @@ class LineInput
34
35
  end
35
36
 
36
37
  def path
37
- @input.path
38
+ @input.path if @input.respond_to?(:path)
38
39
  end
39
40
 
40
41
  def name
@@ -52,12 +53,15 @@ class LineInput
52
53
  def gets
53
54
  unless @buf.empty?
54
55
  @lineno += 1
55
- return @buf.pop
56
+ line = @buf.pop
57
+ line&.location ||= BitClust::Location.new(path, @lineno)
58
+ return line
56
59
  end
57
60
  return nil if @eof_p # to avoid ARGF blocking.
58
61
  line = @input.gets
59
62
  @eof_p = true unless line
60
63
  @lineno += 1
64
+ line&.location ||= BitClust::Location.new(path, @lineno)
61
65
  line
62
66
  end
63
67
 
@@ -175,14 +175,17 @@ module BitClust
175
175
  end
176
176
 
177
177
  def copy_doc
178
+ root_path = Pathname.new(@root).expand_path
178
179
  Dir.glob("#{@root}/../../doc/**/*.rd").each do |f|
179
180
  if %r!\A#{Regexp.escape(@root)}/\.\./\.\./doc/([-\./\w]+)\.rd\z! =~ f
180
181
  id = libname2id($1)
181
182
  se = DocEntry.new(self, id)
182
183
  s = Preprocessor.read(f, properties)
183
184
  title, source = RRDParser.split_doc(s)
185
+ relative_path = Pathname.new(f).expand_path(@root).relative_path_from(root_path)
184
186
  se.title = title
185
187
  se.source = source
188
+ se.source_location = Location.new(relative_path, 1)
186
189
  se.save
187
190
  end
188
191
  end
@@ -95,10 +95,11 @@ module BitClust
95
95
  attr_writer :klass
96
96
 
97
97
  persistent_properties {
98
- property :names, '[String]'
99
- property :visibility, 'Symbol' # :public | :private | :protected
100
- property :kind, 'Symbol' # :defined | :added | :redefined
101
- property :source, 'String'
98
+ property :names, '[String]'
99
+ property :visibility, 'Symbol' # :public | :private | :protected
100
+ property :kind, 'Symbol' # :defined | :added | :redefined
101
+ property :source, 'String'
102
+ property :source_location, 'Location'
102
103
  }
103
104
 
104
105
  def inspect
@@ -71,6 +71,10 @@ module BitClust
71
71
  cond_init
72
72
  end
73
73
 
74
+ def path
75
+ @f.path if @f.respond_to?(:path)
76
+ end
77
+
74
78
  private
75
79
 
76
80
  def next_line(f)
@@ -393,6 +393,10 @@ module BitClust
393
393
  string a_href(@urlmapper.method_url(methodid2specstring(@method.id)), "permalink")
394
394
  string ']['
395
395
  string rdoc_link(@method.id, @option[:database].properties["version"])
396
+ if @option[:edit_base_url] && @method.source_location
397
+ string ']['
398
+ string a_href(@urlmapper.edit_url(@method.source_location), 'edit')
399
+ end
396
400
  string ']</span>'
397
401
  end
398
402
  if @method and not @method.defined?
@@ -10,6 +10,7 @@
10
10
  require 'bitclust/compat'
11
11
  require 'bitclust/preprocessor'
12
12
  require 'bitclust/methodid'
13
+ require 'bitclust/methoddatabase'
13
14
  require 'bitclust/lineinput'
14
15
  require 'bitclust/parseutils'
15
16
  require 'bitclust/nameutils'
@@ -69,7 +70,7 @@ module BitClust
69
70
 
70
71
  def parse_file(path, libname, params = {})
71
72
  fopen(path, 'r:UTF-8') {|f|
72
- return parse(f, libname, params)
73
+ return parse(f, libname, params).tap { |lib| lib.source_location = Location.new(path, 1) }
73
74
  }
74
75
  end
75
76
 
@@ -113,14 +114,14 @@ module BitClust
113
114
  type, name, superclass = *parse_level1_header(line)
114
115
  case type
115
116
  when 'class'
116
- @context.define_class name, (superclass || 'Object')
117
+ @context.define_class name, (superclass || 'Object'), location: line.location
117
118
  read_class_body f
118
119
  when 'module'
119
120
  parse_error "superclass given for module", line if superclass
120
- @context.define_module name
121
+ @context.define_module name, location: line.location
121
122
  read_class_body f
122
123
  when 'object'
123
- @context.define_object name, superclass
124
+ @context.define_object name, superclass, location: line.location
124
125
  read_object_body f
125
126
  when 'reopen'
126
127
  @context.reopen_class name
@@ -348,30 +349,31 @@ module BitClust
348
349
  @library.sublibrary @db.get_library(libname)
349
350
  end
350
351
 
351
- def define_class(name, supername)
352
+ def define_class(name, supername, location: nil)
352
353
  if @db.properties['version'] >= "1.9.0"
353
354
  top = 'BasicObject'
354
355
  else
355
356
  top = 'Object'
356
357
  end
357
358
  superclass = (name == top ? nil : @db.get_class(supername))
358
- register_class :class, name, superclass
359
+ register_class :class, name, superclass, location: location
359
360
  end
360
361
 
361
- def define_module(name)
362
- register_class :module, name, nil
362
+ def define_module(name, location: nil)
363
+ register_class :module, name, nil, location: location
363
364
  end
364
365
 
365
- def define_object(name, singleton_object_class)
366
+ def define_object(name, singleton_object_class, location: nil)
366
367
  singleton_object_class = @db.get_class(singleton_object_class) if singleton_object_class
367
- register_class :object, name, singleton_object_class
368
+ register_class :object, name, singleton_object_class, location: location
368
369
  end
369
370
 
370
- def register_class(type, name, superclass)
371
+ def register_class(type, name, superclass, location: nil)
371
372
  @klass = @db.open_class(name) {|c|
372
373
  c.type = type
373
374
  c.superclass = superclass
374
375
  c.library = @library
376
+ c.source_location = location
375
377
  @library.add_class c
376
378
  }
377
379
  @kind = :defined
@@ -448,10 +450,11 @@ module BitClust
448
450
  def define_method(chunk)
449
451
  id = method_id(chunk)
450
452
  @db.open_method(id) {|m|
451
- m.names = chunk.names.sort
452
- m.kind = @kind
453
- m.visibility = @visibility || :public
454
- m.source = chunk.source
453
+ m.names = chunk.names.sort
454
+ m.kind = chunk.source.match?(/^@undef$/) ? :undefined : @kind
455
+ m.visibility = @visibility || :public
456
+ m.source = chunk.source
457
+ m.source_location = chunk.source.location
455
458
  case @kind
456
459
  when :added, :redefined
457
460
  @library.add_method m
@@ -368,6 +368,10 @@ module BitClust
368
368
  @urlmapper.canonical_url(current_url)
369
369
  end
370
370
 
371
+ def edit_url(location)
372
+ @urlmapper.edit_url(location)
373
+ end
374
+
371
375
  def opensearchdescription_url
372
376
  @urlmapper.opensearchdescription_url
373
377
  end
@@ -396,8 +400,11 @@ module BitClust
396
400
  @hlevel -= 1
397
401
  end
398
402
 
399
- def headline(str)
400
- "<h#{@hlevel}>#{escape_html(str)}</h#{@hlevel}>"
403
+ def headline(str, edit_url: nil)
404
+ edit_link = edit_url ? <<~HTML : ''
405
+ <span class="permalink">[<a href="#{edit_url}">edit</a>]</span>
406
+ HTML
407
+ "<h#{@hlevel}>#{escape_html(str)}</h#{@hlevel}>" + edit_link
401
408
  end
402
409
 
403
410
  def headline_noescape(str)
@@ -28,6 +28,7 @@ module BitClust
28
28
  @suffix = h[:suffix]
29
29
  @fs_casesensitive = h[:fs_casesensitive]
30
30
  @canonical_base_url = h[:canonical_base_url]
31
+ @edit_base_url = h[:edit_base_url]
31
32
  end
32
33
 
33
34
  def library_url(name)
@@ -87,6 +88,10 @@ module BitClust
87
88
  (@canonical_base_url + "/#{current_url}").sub(@bitclust_html_base, "").sub(/([^:])\/\/+/, "\\1/")
88
89
  end
89
90
 
91
+ def edit_url(location)
92
+ "#{@edit_base_url}/#{location.file}#L#{location.line}".sub(/([^:])\/\/+/, "\\1/")
93
+ end
94
+
90
95
  def encodename_package(str)
91
96
  if @fs_casesensitive
92
97
  encodename_url(str)
@@ -141,6 +146,9 @@ module BitClust
141
146
  @parser.on('--canonical-base-url=URL', 'Canonical base URL') do |url|
142
147
  @canonical_base_url = url
143
148
  end
149
+ @parser.on('--edit-base-url=URL', 'Edit base URL') do |url|
150
+ @edit_base_url = url
151
+ end
144
152
  @parser.on('--tracking-id=ID', 'Google Tag Manager Tracking ID') do |id|
145
153
  @gtm_tracking_id = id
146
154
  end
@@ -225,6 +233,7 @@ module BitClust
225
233
  :tochm_mode => true,
226
234
  :fs_casesensitive => @fs_casesensitive,
227
235
  :canonical_base_url => @canonical_base_url,
236
+ :edit_base_url => @edit_base_url,
228
237
  :gtm_tracking_id => @gtm_tracking_id,
229
238
  :meta_robots_content => @meta_robots_content,
230
239
  :stop_on_syntax_error => @stop_on_syntax_error,
@@ -1,3 +1,3 @@
1
1
  module BitClust
2
- VERSION = "1.2.5"
2
+ VERSION = "1.2.6"
3
3
  end
@@ -9,6 +9,14 @@ alias HogeHoge
9
9
  alias HogeHogeHoge
10
10
  == Class Methods
11
11
  --- hoge
12
+ hoge
13
+ --- fuga
14
+ @undef
15
+ fuga
16
+ == Instance Methods
17
+ --- fugafuga
18
+ @undef
19
+ fugafuga
12
20
  = class Bar < Hoge
13
21
  == Class Methods
14
22
  --- bar
@@ -19,7 +27,7 @@ HERE
19
27
  end
20
28
 
21
29
  def test_entries
22
- assert_equal(['bar', 'hoge'],
30
+ assert_equal(['bar', 'fuga', 'fugafuga', 'hoge'],
23
31
  @lib.fetch_class("Bar").entries(1).map{|e| e.name}.sort)
24
32
  end
25
33
 
@@ -45,6 +53,11 @@ HERE
45
53
  assert(@lib.fetch_class("ErrErr").error_class?)
46
54
  end
47
55
 
56
+ def test_partitioned_entries
57
+ parts = @lib.fetch_class('Hoge').partitioned_entries
58
+ assert_equal(['fuga', 'fugafuga'], parts.undefined.map(&:name))
59
+ end
60
+
48
61
  def test_superclass
49
62
  assert('Exception', @lib.fetch_class("Err").superclass.name)
50
63
  assert('Exception', @lib.fetch_class("ErrErr").superclass.name)
@@ -23,4 +23,20 @@ a
23
23
  HERE
24
24
  assert_equal(["", "==[a:hoge]hoge\na\n"], result)
25
25
  end
26
+
27
+ def test_undef
28
+ result = BitClust::RRDParser.parse(<<HERE, 'dummy')
29
+ = module Dummy
30
+ == Instance Methods
31
+ --- test_undef
32
+
33
+ @undef
34
+
35
+ このメソッドは利用できない
36
+
37
+ HERE
38
+ _library, methoddatabase = result
39
+ test_undef_spec = BitClust::MethodSpec.parse('Dummy#test_undef')
40
+ assert_equal(:undefined, methoddatabase.get_method(test_undef_spec).kind)
41
+ end
26
42
  end
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.5
4
+ version: 1.2.6
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-05-19 00:00:00.000000000 Z
11
+ date: 2020-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
@@ -237,6 +237,7 @@ metadata:
237
237
  documentation_uri: https://github.com/rurema/doctree/wiki
238
238
  homepage_uri: https://docs.ruby-lang.org/ja/
239
239
  source_code_uri: https://github.com/rurema/bitclust
240
+ github_repo: https://github.com/rurema/bitclust
240
241
  wiki_uri: https://github.com/rurema/doctree/wiki
241
242
  post_install_message:
242
243
  rdoc_options: []
@@ -258,19 +259,19 @@ signing_key:
258
259
  specification_version: 4
259
260
  summary: BitClust is a rurema document processor.
260
261
  test_files:
261
- - test/test_functionreferenceparser.rb
262
- - test/test_refsdatabase.rb
263
- - test/test_rrdparser.rb
264
262
  - test/test_syntax_highlighter.rb
265
- - test/test_methoddatabase.rb
266
- - test/test_simplesearcher.rb
267
- - test/test_nameutils.rb
268
- - test/run_test.rb
269
263
  - test/test_methodsignature.rb
270
- - test/test_rdcompiler.rb
271
264
  - test/test_functiondatabase.rb
272
- - test/test_runner.rb
273
- - test/test_bitclust.rb
274
- - test/test_entry.rb
275
265
  - test/test_preprocessor.rb
266
+ - test/test_refsdatabase.rb
267
+ - test/test_nameutils.rb
268
+ - test/test_bitclust.rb
269
+ - test/test_simplesearcher.rb
270
+ - test/test_rdcompiler.rb
276
271
  - test/test_libraryentry.rb
272
+ - test/test_runner.rb
273
+ - test/test_rrdparser.rb
274
+ - test/test_methoddatabase.rb
275
+ - test/test_functionreferenceparser.rb
276
+ - test/run_test.rb
277
+ - test/test_entry.rb