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
         |