rdoc 5.1.0 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (158) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +4 -4
  3. data/Gemfile +9 -0
  4. data/History.rdoc +4 -4
  5. data/README.rdoc +5 -6
  6. data/Rakefile +35 -67
  7. data/lib/rdoc/alias.rb +1 -1
  8. data/lib/rdoc/anon_class.rb +1 -1
  9. data/lib/rdoc/any_method.rb +59 -15
  10. data/lib/rdoc/attr.rb +1 -1
  11. data/lib/rdoc/class_module.rb +5 -3
  12. data/lib/rdoc/code_object.rb +2 -9
  13. data/lib/rdoc/code_objects.rb +1 -1
  14. data/lib/rdoc/comment.rb +32 -11
  15. data/lib/rdoc/constant.rb +3 -3
  16. data/lib/rdoc/context/section.rb +1 -14
  17. data/lib/rdoc/context.rb +63 -20
  18. data/lib/rdoc/cross_reference.rb +33 -15
  19. data/lib/rdoc/encoding.rb +58 -30
  20. data/lib/rdoc/erb_partial.rb +2 -2
  21. data/lib/rdoc/erbio.rb +8 -4
  22. data/lib/rdoc/extend.rb +1 -1
  23. data/lib/rdoc/generator/darkfish.rb +60 -29
  24. data/lib/rdoc/generator/json_index.rb +6 -3
  25. data/lib/rdoc/generator/markup.rb +3 -13
  26. data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
  27. data/lib/rdoc/generator/pot/po.rb +3 -3
  28. data/lib/rdoc/generator/pot/po_entry.rb +11 -11
  29. data/lib/rdoc/generator/pot.rb +4 -4
  30. data/lib/rdoc/generator/ri.rb +1 -1
  31. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  32. data/lib/rdoc/generator/template/darkfish/_head.rhtml +9 -7
  33. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  34. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  35. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  36. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  44. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  45. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  46. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  47. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +22 -99
  48. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  49. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  50. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  51. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  52. data/lib/rdoc/generator/template/json_index/js/searcher.js +6 -6
  53. data/lib/rdoc/generator.rb +1 -1
  54. data/lib/rdoc/ghost_method.rb +1 -1
  55. data/lib/rdoc/i18n/locale.rb +1 -1
  56. data/lib/rdoc/i18n/text.rb +5 -5
  57. data/lib/rdoc/i18n.rb +3 -3
  58. data/lib/rdoc/include.rb +1 -1
  59. data/lib/rdoc/known_classes.rb +1 -1
  60. data/lib/rdoc/markdown/entities.rb +1 -1
  61. data/lib/rdoc/markdown/literals.kpeg +1 -0
  62. data/lib/rdoc/markdown/literals.rb +19 -7
  63. data/lib/rdoc/markdown.kpeg +92 -44
  64. data/lib/rdoc/markdown.rb +1171 -610
  65. data/lib/rdoc/markup/attr_changer.rb +1 -1
  66. data/lib/rdoc/markup/attr_span.rb +9 -3
  67. data/lib/rdoc/markup/attribute_manager.rb +115 -50
  68. data/lib/rdoc/markup/attributes.rb +7 -7
  69. data/lib/rdoc/markup/blank_line.rb +1 -1
  70. data/lib/rdoc/markup/block_quote.rb +1 -1
  71. data/lib/rdoc/markup/document.rb +1 -1
  72. data/lib/rdoc/markup/formatter.rb +25 -24
  73. data/lib/rdoc/markup/hard_break.rb +1 -1
  74. data/lib/rdoc/markup/heading.rb +4 -4
  75. data/lib/rdoc/markup/include.rb +1 -1
  76. data/lib/rdoc/markup/indented_paragraph.rb +1 -1
  77. data/lib/rdoc/markup/list.rb +1 -1
  78. data/lib/rdoc/markup/list_item.rb +1 -1
  79. data/lib/rdoc/markup/paragraph.rb +1 -1
  80. data/lib/rdoc/markup/parser.rb +79 -47
  81. data/lib/rdoc/markup/pre_process.rb +11 -6
  82. data/lib/rdoc/markup/raw.rb +1 -1
  83. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  84. data/lib/rdoc/markup/rule.rb +1 -1
  85. data/lib/rdoc/markup/to_ansi.rb +1 -1
  86. data/lib/rdoc/markup/to_bs.rb +4 -4
  87. data/lib/rdoc/markup/to_html.rb +68 -26
  88. data/lib/rdoc/markup/to_html_crossref.rb +41 -26
  89. data/lib/rdoc/markup/to_html_snippet.rb +10 -10
  90. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -32
  91. data/lib/rdoc/markup/to_label.rb +10 -10
  92. data/lib/rdoc/markup/to_markdown.rb +9 -9
  93. data/lib/rdoc/markup/to_rdoc.rb +35 -7
  94. data/lib/rdoc/markup/to_table_of_contents.rb +2 -1
  95. data/lib/rdoc/markup/to_test.rb +1 -1
  96. data/lib/rdoc/markup/to_tt_only.rb +3 -3
  97. data/lib/rdoc/markup/verbatim.rb +1 -1
  98. data/lib/rdoc/markup.rb +14 -17
  99. data/lib/rdoc/meta_method.rb +1 -1
  100. data/lib/rdoc/method_attr.rb +2 -2
  101. data/lib/rdoc/mixin.rb +1 -1
  102. data/lib/rdoc/normal_class.rb +3 -3
  103. data/lib/rdoc/normal_module.rb +1 -1
  104. data/lib/rdoc/options.rb +79 -21
  105. data/lib/rdoc/parser/c.rb +147 -194
  106. data/lib/rdoc/parser/changelog.rb +150 -19
  107. data/lib/rdoc/parser/markdown.rb +1 -1
  108. data/lib/rdoc/parser/rd.rb +1 -1
  109. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  110. data/lib/rdoc/parser/ruby.rb +632 -466
  111. data/lib/rdoc/parser/ruby_tools.rb +33 -34
  112. data/lib/rdoc/parser/simple.rb +3 -3
  113. data/lib/rdoc/parser/text.rb +1 -1
  114. data/lib/rdoc/parser.rb +9 -34
  115. data/lib/rdoc/rd/block_parser.rb +47 -46
  116. data/lib/rdoc/rd/block_parser.ry +2 -2
  117. data/lib/rdoc/rd/inline.rb +5 -5
  118. data/lib/rdoc/rd/inline_parser.rb +139 -138
  119. data/lib/rdoc/rd/inline_parser.ry +1 -1
  120. data/lib/rdoc/rd.rb +1 -1
  121. data/lib/rdoc/rdoc.rb +54 -41
  122. data/lib/rdoc/require.rb +1 -1
  123. data/lib/rdoc/ri/driver.rb +132 -42
  124. data/lib/rdoc/ri/formatter.rb +1 -1
  125. data/lib/rdoc/ri/paths.rb +4 -18
  126. data/lib/rdoc/ri/store.rb +1 -1
  127. data/lib/rdoc/ri/task.rb +2 -2
  128. data/lib/rdoc/ri.rb +1 -1
  129. data/lib/rdoc/rubygems_hook.rb +3 -3
  130. data/lib/rdoc/servlet.rb +21 -12
  131. data/lib/rdoc/single_class.rb +1 -1
  132. data/lib/rdoc/stats/normal.rb +24 -18
  133. data/lib/rdoc/stats/quiet.rb +1 -1
  134. data/lib/rdoc/stats/verbose.rb +1 -1
  135. data/lib/rdoc/stats.rb +1 -1
  136. data/lib/rdoc/store.rb +38 -27
  137. data/lib/rdoc/task.rb +2 -2
  138. data/lib/rdoc/text.rb +16 -21
  139. data/lib/rdoc/token_stream.rb +56 -33
  140. data/lib/rdoc/tom_doc.rb +17 -12
  141. data/lib/rdoc/top_level.rb +9 -3
  142. data/lib/rdoc/version.rb +8 -0
  143. data/lib/rdoc.rb +24 -10
  144. data/man/ri.1 +247 -0
  145. data/rdoc.gemspec +206 -15
  146. metadata +15 -64
  147. data/.document +0 -5
  148. data/.gitignore +0 -13
  149. data/.travis.yml +0 -24
  150. data/lib/gauntlet_rdoc.rb +0 -82
  151. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  152. data/lib/rdoc/markup/formatter_test_case.rb +0 -764
  153. data/lib/rdoc/markup/inline.rb +0 -2
  154. data/lib/rdoc/markup/special.rb +0 -41
  155. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
  156. data/lib/rdoc/ruby_lex.rb +0 -1367
  157. data/lib/rdoc/ruby_token.rb +0 -461
  158. data/lib/rdoc/test_case.rb +0 -204
@@ -9,6 +9,8 @@
9
9
  /* vim: ft=css et sw=2 ts=2 sts=2 */
10
10
  /* Base Green is: #6C8C22 */
11
11
 
12
+ .hide { display: none !important; }
13
+
12
14
  * { padding: 0; margin: 0; }
13
15
 
14
16
  body {
@@ -48,6 +50,16 @@ h6:hover span {
48
50
  display: inline;
49
51
  }
50
52
 
53
+ h1:target,
54
+ h2:target,
55
+ h3:target,
56
+ h4:target,
57
+ h5:target,
58
+ h6:target {
59
+ margin-left: -10px;
60
+ border-left: 10px solid #f1edba;
61
+ }
62
+
51
63
  :link,
52
64
  :visited {
53
65
  color: #6C8C22;
@@ -62,6 +74,28 @@ h6:hover span {
62
74
  code,
63
75
  pre {
64
76
  font-family: "Source Code Pro", Monaco, monospace;
77
+ background-color: rgba(27,31,35,0.05);
78
+ padding: 0em 0.2em;
79
+ border-radius: 0.2em;
80
+ }
81
+
82
+ table {
83
+ margin: 0;
84
+ border-spacing: 0;
85
+ border-collapse: collapse;
86
+ }
87
+
88
+ table tr th, table tr td {
89
+ padding: 0.2em 0.4em;
90
+ border: 1px solid #ccc;
91
+ }
92
+
93
+ table tr th {
94
+ background-color: #eceaed;
95
+ }
96
+
97
+ table tr:nth-child(even) td {
98
+ background-color: #f5f4f6;
65
99
  }
66
100
 
67
101
  /* @group Generic Classes */
@@ -91,7 +125,7 @@ pre {
91
125
 
92
126
  .missing-docs {
93
127
  font-size: 120%;
94
- background: white url(images/wrench_orange.png) no-repeat 4px center;
128
+ background: white url(../images/wrench_orange.png) no-repeat 4px center;
95
129
  color: #ccc;
96
130
  line-height: 2em;
97
131
  border: 1px solid #d00;
@@ -135,11 +169,11 @@ pre {
135
169
  .table-of-contents li .toc-toggle {
136
170
  width: 16px;
137
171
  height: 16px;
138
- background: url(images/add.png) no-repeat;
172
+ background: url(../images/add.png) no-repeat;
139
173
  }
140
174
 
141
175
  .table-of-contents li .toc-toggle.open {
142
- background: url(images/delete.png) no-repeat;
176
+ background: url(../images/delete.png) no-repeat;
143
177
  }
144
178
 
145
179
  /* @end */
@@ -151,6 +185,7 @@ nav {
151
185
  width: 260px;
152
186
  font-family: Helvetica, sans-serif;
153
187
  font-size: 14px;
188
+ border-right: 1px solid #ccc;
154
189
  }
155
190
 
156
191
  main {
@@ -261,8 +296,13 @@ ul.link-list .type {
261
296
  -webkit-border-radius: 5px;
262
297
  }
263
298
 
299
+ dl.note-list dt {
300
+ float: left;
301
+ margin-right: 1em;
302
+ }
303
+
264
304
  .calls-super {
265
- background: url(images/arrow_up.png) no-repeat right center;
305
+ background: url(../images/arrow_up.png) no-repeat right center;
266
306
  }
267
307
 
268
308
  /* @end */
@@ -441,7 +481,16 @@ main header h3 {
441
481
  /* @group Method Details */
442
482
 
443
483
  main .method-source-code {
444
- display: none;
484
+ max-height: 0;
485
+ overflow: hidden;
486
+ transition-duration: 200ms;
487
+ transition-delay: 0ms;
488
+ transition-property: all;
489
+ transition-timing-function: ease-in-out;
490
+ }
491
+
492
+ main .method-source-code.active-menu {
493
+ max-height: 100vh;
445
494
  }
446
495
 
447
496
  main .method-description .method-calls-super {
@@ -479,7 +528,7 @@ main .method-click-advice {
479
528
  visibility: hidden;
480
529
  padding-right: 20px;
481
530
  line-height: 20px;
482
- background: url(images/zoom.png) no-repeat right top;
531
+ background: url(../images/zoom.png) no-repeat right top;
483
532
  }
484
533
  main .method-heading:hover .method-click-advice {
485
534
  visibility: visible;
@@ -13,11 +13,10 @@
13
13
  </nav>
14
14
 
15
15
  <main role="main">
16
- <% if @options.main_page and
16
+ <%- if @options.main_page and
17
17
  main_page = @files.find { |f| f.full_name == @options.main_page } then %>
18
18
  <%= main_page.description %>
19
- <% else %>
19
+ <%- else -%>
20
20
  <p>This is the API documentation for <%= @title %>.
21
- <% end %>
21
+ <%- end -%>
22
22
  </main>
23
-
@@ -8,6 +8,7 @@
8
8
  */
9
9
 
10
10
  /* Provide console simulation for firebug-less environments */
11
+ /*
11
12
  if (!("console" in window) || !("firebug" in console)) {
12
13
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
13
14
  "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
@@ -16,41 +17,35 @@ if (!("console" in window) || !("firebug" in console)) {
16
17
  for (var i = 0; i < names.length; ++i)
17
18
  window.console[names[i]] = function() {};
18
19
  };
19
-
20
-
21
- /**
22
- * Unwrap the first element that matches the given @expr@ from the targets and return them.
23
- */
24
- $.fn.unwrap = function( expr ) {
25
- return this.each( function() {
26
- $(this).parents( expr ).eq( 0 ).after( this ).remove();
27
- });
28
- };
20
+ */
29
21
 
30
22
 
31
23
  function showSource( e ) {
32
24
  var target = e.target;
33
- var codeSections = $(target).
34
- parents('.method-detail').
35
- find('.method-source-code');
36
-
37
- $(target).
38
- parents('.method-detail').
39
- find('.method-source-code').
40
- slideToggle();
25
+ while (!target.classList.contains('method-detail')) {
26
+ target = target.parentNode;
27
+ }
28
+ if (typeof target !== "undefined" && target !== null) {
29
+ target = target.querySelector('.method-source-code');
30
+ }
31
+ if (typeof target !== "undefined" && target !== null) {
32
+ target.classList.toggle('active-menu')
33
+ }
41
34
  };
42
35
 
43
36
  function hookSourceViews() {
44
- $('.method-heading').click( showSource );
37
+ document.querySelectorAll('.method-heading').forEach(function (codeObject) {
38
+ codeObject.addEventListener('click', showSource);
39
+ });
45
40
  };
46
41
 
47
42
  function hookSearch() {
48
- var input = $('#search-field').eq(0);
49
- var result = $('#search-results').eq(0);
50
- $(result).show();
43
+ var input = document.querySelector('#search-field');
44
+ var result = document.querySelector('#search-results');
45
+ result.classList.remove("initially-hidden");
51
46
 
52
- var search_section = $('#search-section').get(0);
53
- $(search_section).show();
47
+ var search_section = document.querySelector('#search-section');
48
+ search_section.classList.remove("initially-hidden");
54
49
 
55
50
  var search = new Search(search_data, input, result);
56
51
 
@@ -77,85 +72,13 @@ function hookSearch() {
77
72
  }
78
73
 
79
74
  search.select = function(result) {
80
- var result_element = result.get(0);
81
- window.location.href = result_element.firstChild.firstChild.href;
75
+ window.location.href = result.firstChild.firstChild.href;
82
76
  }
83
77
 
84
78
  search.scrollIntoView = search.scrollInWindow;
85
79
  };
86
80
 
87
- function highlightTarget( anchor ) {
88
- console.debug( "Highlighting target '%s'.", anchor );
89
-
90
- $("a[name]").each( function() {
91
- if ( $(this).attr("name") == anchor ) {
92
- if ( !$(this).parent().parent().hasClass('target-section') ) {
93
- console.debug( "Wrapping the target-section" );
94
- $('div.method-detail').unwrap( 'div.target-section' );
95
- $(this).parent().wrap( '<div class="target-section"></div>' );
96
- } else {
97
- console.debug( "Already wrapped." );
98
- }
99
- }
100
- });
101
- };
102
-
103
- function highlightLocationTarget() {
104
- console.debug( "Location hash: %s", window.location.hash );
105
- if ( ! window.location.hash || window.location.hash.length == 0 ) return;
106
-
107
- var anchor = window.location.hash.substring(1);
108
- console.debug( "Found anchor: %s; matching %s", anchor, "a[name=" + anchor + "]" );
109
-
110
- highlightTarget( anchor );
111
- };
112
-
113
- function highlightClickTarget( event ) {
114
- console.debug( "Highlighting click target for event %o", event.target );
115
- try {
116
- var anchor = $(event.target).attr( 'href' ).substring(1);
117
- console.debug( "Found target anchor: %s", anchor );
118
- highlightTarget( anchor );
119
- } catch ( err ) {
120
- console.error( "Exception while highlighting: %o", err );
121
- };
122
- };
123
-
124
- function loadAsync(path, success, prefix) {
125
- $.ajax({
126
- url: prefix + path,
127
- dataType: 'script',
128
- success: success,
129
- cache: true
130
- });
131
- };
132
-
133
- $(document).ready( function() {
81
+ document.addEventListener('DOMContentLoaded', function() {
134
82
  hookSourceViews();
135
- highlightLocationTarget();
136
- $('ul.link-list a').bind( "click", highlightClickTarget );
137
-
138
- var search_scripts_loaded = {
139
- navigation_loaded: false,
140
- search_loaded: false,
141
- search_index_loaded: false,
142
- searcher_loaded: false,
143
- }
144
-
145
- var search_success_function = function(variable) {
146
- return (function (data, status, xhr) {
147
- search_scripts_loaded[variable] = true;
148
-
149
- if (search_scripts_loaded['navigation_loaded'] == true &&
150
- search_scripts_loaded['search_loaded'] == true &&
151
- search_scripts_loaded['search_index_loaded'] == true &&
152
- search_scripts_loaded['searcher_loaded'] == true)
153
- hookSearch();
154
- });
155
- }
156
-
157
- loadAsync('js/navigation.js', search_success_function('navigation_loaded'), rdoc_rel_prefix);
158
- loadAsync('js/search.js', search_success_function('search_loaded'), rdoc_rel_prefix);
159
- loadAsync('js/search_index.js', search_success_function('search_index_loaded'), index_rel_prefix);
160
- loadAsync('js/searcher.js', search_success_function('searcher_loaded'), rdoc_rel_prefix);
83
+ hookSearch();
161
84
  });
@@ -1,29 +1,29 @@
1
1
  Search = function(data, input, result) {
2
2
  this.data = data;
3
- this.$input = $(input);
4
- this.$result = $(result);
3
+ this.input = input;
4
+ this.result = result;
5
5
 
6
- this.$current = null;
7
- this.$view = this.$result.parent();
6
+ this.current = null;
7
+ this.view = this.result.parentNode;
8
8
  this.searcher = new Searcher(data.index);
9
9
  this.init();
10
10
  }
11
11
 
12
- Search.prototype = $.extend({}, Navigation, new function() {
12
+ Search.prototype = Object.assign({}, Navigation, new function() {
13
13
  var suid = 1;
14
14
 
15
15
  this.init = function() {
16
16
  var _this = this;
17
17
  var observer = function(e) {
18
- switch(e.originalEvent.keyCode) {
18
+ switch(e.keyCode) {
19
19
  case 38: // Event.KEY_UP
20
20
  case 40: // Event.KEY_DOWN
21
21
  return;
22
22
  }
23
- _this.search(_this.$input[0].value);
23
+ _this.search(_this.input.value);
24
24
  };
25
- this.$input.keyup(observer);
26
- this.$input.click(observer); // mac's clear field
25
+ this.input.addEventListener('keyup', observer);
26
+ this.input.addEventListener('click', observer); // mac's clear field
27
27
 
28
28
  this.searcher.ready(function(results, isLast) {
29
29
  _this.addResults(results, isLast);
@@ -34,7 +34,7 @@ Search.prototype = $.extend({}, Navigation, new function() {
34
34
  }
35
35
 
36
36
  this.search = function(value, selectFirstMatch) {
37
- value = jQuery.trim(value).toLowerCase();
37
+ value = value.trim().toLowerCase();
38
38
  if (value) {
39
39
  this.setNavigationActive(true);
40
40
  } else {
@@ -43,23 +43,23 @@ Search.prototype = $.extend({}, Navigation, new function() {
43
43
 
44
44
  if (value == '') {
45
45
  this.lastQuery = value;
46
- this.$result.empty();
47
- this.$result.attr('aria-expanded', 'false');
46
+ this.result.innerHTML = '';
47
+ this.result.setAttribute('aria-expanded', 'false');
48
48
  this.setNavigationActive(false);
49
49
  } else if (value != this.lastQuery) {
50
50
  this.lastQuery = value;
51
- this.$result.attr('aria-busy', 'true');
52
- this.$result.attr('aria-expanded', 'true');
51
+ this.result.setAttribute('aria-busy', 'true');
52
+ this.result.setAttribute('aria-expanded', 'true');
53
53
  this.firstRun = true;
54
54
  this.searcher.find(value);
55
55
  }
56
56
  }
57
57
 
58
58
  this.addResults = function(results, isLast) {
59
- var target = this.$result.get(0);
59
+ var target = this.result;
60
60
  if (this.firstRun && (results.length > 0 || isLast)) {
61
- this.$current = null;
62
- this.$result.empty();
61
+ this.current = null;
62
+ this.result.innerHTML = '';
63
63
  }
64
64
 
65
65
  for (var i=0, l = results.length; i < l; i++) {
@@ -70,25 +70,26 @@ Search.prototype = $.extend({}, Navigation, new function() {
70
70
 
71
71
  if (this.firstRun && results.length > 0) {
72
72
  this.firstRun = false;
73
- this.$current = $(target.firstChild);
74
- this.$current.addClass('search-selected');
73
+ this.current = target.firstChild;
74
+ this.current.classList.add('search-selected');
75
75
  }
76
- if (jQuery.browser.msie) this.$element[0].className += '';
76
+ //TODO: ECMAScript
77
+ //if (jQuery.browser.msie) this.$element[0].className += '';
77
78
 
78
- if (isLast) this.$result.attr('aria-busy', 'false');
79
+ if (isLast) this.result.setAttribute('aria-busy', 'false');
79
80
  }
80
81
 
81
82
  this.move = function(isDown) {
82
- if (!this.$current) return;
83
- var $next = this.$current[isDown ? 'next' : 'prev']();
84
- if ($next.length) {
85
- this.$current.removeClass('search-selected');
86
- $next.addClass('search-selected');
87
- this.$input.attr('aria-activedescendant', $next.attr('id'));
88
- this.scrollIntoView($next[0], this.$view[0]);
89
- this.$current = $next;
90
- this.$input.val($next[0].firstChild.firstChild.text);
91
- this.$input.select();
83
+ if (!this.current) return;
84
+ var next = isDown ? this.current.nextElementSibling : this.current.previousElementSibling;
85
+ if (next) {
86
+ this.current.classList.remove('search-selected');
87
+ next.classList.add('search-selected');
88
+ this.input.setAttribute('aria-activedescendant', next.getAttribute('id'));
89
+ this.scrollIntoView(next, this.view);
90
+ this.current = next;
91
+ this.input.value = next.firstChild.firstChild.text;
92
+ this.input.select();
92
93
  }
93
94
  return true;
94
95
  }
@@ -19,28 +19,28 @@
19
19
  <p>Here you can browse local documentation from the ruby standard library and
20
20
  your installed gems.
21
21
 
22
- <% extra_dirs = installed.select { |_, _, _, type,| type == :extra } %>
23
- <% unless extra_dirs.empty? %>
22
+ <%- extra_dirs = installed.select { |_, _, _, type,| type == :extra } -%>
23
+ <%- unless extra_dirs.empty? -%>
24
24
  <h2>Extra Documentation Directories</h2>
25
25
 
26
26
  <p>The following additional documentation directories are available:</p>
27
27
 
28
28
  <ol>
29
- <% extra_dirs.each do |name, href, exists, _, path| %>
29
+ <%- extra_dirs.each do |name, href, exists, _, path| -%>
30
30
  <li>
31
- <% if exists %>
31
+ <%- if exists -%>
32
32
  <a href="<%= href %>"><%= h name %></a> (<%= h path %>)
33
- <% else %>
33
+ <%- else -%>
34
34
  <%= h name %> (<%= h path %>; <i>not available</i>)
35
- <% end %>
35
+ <%- end -%>
36
36
  </li>
37
- <% end %>
37
+ <%- end -%>
38
38
  </ol>
39
- <% end %>
39
+ <%- end -%>
40
40
 
41
- <% gems = installed.select { |_, _, _, type,| type == :gem } %>
42
- <% missing = gems.reject { |_, _, exists,| exists } %>
43
- <% unless missing.empty? then %>
41
+ <%- gems = installed.select { |_, _, _, type,| type == :gem } -%>
42
+ <%- missing = gems.reject { |_, _, exists,| exists } -%>
43
+ <%- unless missing.empty? then -%>
44
44
  <h2>Missing Gem Documentation</h2>
45
45
 
46
46
  <p>You are missing documentation for some of your installed gems.
@@ -53,11 +53,10 @@
53
53
  the following commands.
54
54
 
55
55
  <ul>
56
- <% names = missing.map { |name,| name.sub(/-([^-]*)$/, '') }.uniq %>
57
- <% names.each do |name| %>
56
+ <%- names = missing.map { |name,| name.sub(/-([^-]*)$/, '') }.uniq -%>
57
+ <%- names.each do |name| -%>
58
58
  <li><kbd>gem rdoc <%=h name %></kbd>
59
- <% end %>
59
+ <%- end -%>
60
60
  </ul>
61
- <% end %>
61
+ <%- end -%>
62
62
  </main>
63
-
@@ -2,11 +2,11 @@
2
2
  <main role="main">
3
3
  <h1 class="class"><%= h @title %></h1>
4
4
 
5
- <% simple_files = @files.select { |f| f.text? } %>
6
- <% unless simple_files.empty? then %>
5
+ <%- simple_files = @files.select { |f| f.text? } -%>
6
+ <%- unless simple_files.empty? then -%>
7
7
  <h2 id="pages">Pages</h2>
8
8
  <ul>
9
- <% simple_files.sort.each do |file| %>
9
+ <%- simple_files.sort.each do |file| -%>
10
10
  <li class="file">
11
11
  <a href="<%= file.path %>"><%= h file.page_name %></a>
12
12
  <%
@@ -14,45 +14,45 @@
14
14
  table = file.parse(file.comment).table_of_contents
15
15
  unless table.empty? then %>
16
16
  <ul>
17
- <% table.each do |heading| %>
17
+ <%- table.each do |heading| -%>
18
18
  <li><a href="<%= file.path %>#<%= heading.aref %>"><%= heading.plain_html %></a>
19
- <% end %>
19
+ <%- end -%>
20
20
  </ul>
21
- <% end %>
21
+ <%- end -%>
22
22
  </li>
23
- <% end %>
23
+ <%- end -%>
24
24
  </ul>
25
- <% end %>
25
+ <%- end -%>
26
26
 
27
27
  <h2 id="classes">Classes and Modules</h2>
28
28
  <ul>
29
- <% @modsort.each do |klass| %>
29
+ <%- @modsort.each do |klass| -%>
30
30
  <li class="<%= klass.type %>">
31
31
  <a href="<%= klass.path %>"><%= klass.full_name %></a>
32
- <% table = []
32
+ <%- table = []
33
33
  table.concat klass.parse(klass.comment_location).table_of_contents
34
34
  table.concat klass.section_contents
35
35
 
36
36
  unless table.empty? then %>
37
37
  <ul>
38
- <% table.each do |item| %>
38
+ <%- table.each do |item| -%>
39
39
  <li><a href="<%= klass.path %>#<%= item.aref %>"><%= item.plain_html %></a>
40
- <% end %>
40
+ <%- end -%>
41
41
  </ul>
42
- <% end %>
42
+ <%- end -%>
43
43
  </li>
44
- <% end %>
44
+ <%- end -%>
45
45
  </ul>
46
46
 
47
47
  <h2 id="methods">Methods</h2>
48
48
  <ul>
49
- <% @store.all_classes_and_modules.map do |mod|
49
+ <%- @store.all_classes_and_modules.map do |mod|
50
50
  mod.method_list
51
51
  end.flatten.sort.each do |method| %>
52
52
  <li class="method">
53
53
  <a href="<%= method.path %>"><%= h method.pretty_name %></a>
54
54
  &mdash;
55
55
  <span class="container"><%= method.parent.full_name %></span>
56
- <% end %>
56
+ <%- end -%>
57
57
  </ul>
58
58
  </main>
@@ -10,10 +10,8 @@ Navigation = new function() {
10
10
  this.initNavigation = function() {
11
11
  var _this = this;
12
12
 
13
- $(document).keydown(function(e) {
13
+ document.addEventListener('keydown', function(e) {
14
14
  _this.onkeydown(e);
15
- }).keyup(function(e) {
16
- _this.onkeyup(e);
17
15
  });
18
16
 
19
17
  this.navigationActive = true;
@@ -21,20 +19,6 @@ Navigation = new function() {
21
19
 
22
20
  this.setNavigationActive = function(state) {
23
21
  this.navigationActive = state;
24
- this.clearMoveTimeout();
25
- }
26
-
27
- this.onkeyup = function(e) {
28
- if (!this.navigationActive) return;
29
-
30
- switch(e.keyCode) {
31
- case 37: //Event.KEY_LEFT:
32
- case 38: //Event.KEY_UP:
33
- case 39: //Event.KEY_RIGHT:
34
- case 40: //Event.KEY_DOWN:
35
- this.clearMoveTimeout();
36
- break;
37
- }
38
22
  }
39
23
 
40
24
  this.onkeydown = function(e) {
@@ -46,7 +30,6 @@ Navigation = new function() {
46
30
  case 38: //Event.KEY_UP:
47
31
  if (e.keyCode == 38 || e.ctrlKey) {
48
32
  if (this.moveUp()) e.preventDefault();
49
- this.startMoveTimeout(false);
50
33
  }
51
34
  break;
52
35
  case 39: //Event.KEY_RIGHT:
@@ -55,34 +38,14 @@ Navigation = new function() {
55
38
  case 40: //Event.KEY_DOWN:
56
39
  if (e.keyCode == 40 || e.ctrlKey) {
57
40
  if (this.moveDown()) e.preventDefault();
58
- this.startMoveTimeout(true);
59
41
  }
60
42
  break;
61
43
  case 13: //Event.KEY_RETURN:
62
- if (this.$current)
63
- e.preventDefault();
64
- this.select(this.$current);
44
+ if (this.current) e.preventDefault();
45
+ this.select(this.current);
65
46
  break;
66
47
  }
67
- if (e.ctrlKey && e.shiftKey) this.select(this.$current);
68
- }
69
-
70
- this.clearMoveTimeout = function() {
71
- clearTimeout(this.moveTimeout);
72
- this.moveTimeout = null;
73
- }
74
-
75
- this.startMoveTimeout = function(isDown) {
76
- if (!$.browser.mozilla && !$.browser.opera) return;
77
- if (this.moveTimeout) this.clearMoveTimeout();
78
- var _this = this;
79
-
80
- var go = function() {
81
- if (!_this.moveTimeout) return;
82
- _this[isDown ? 'moveDown' : 'moveUp']();
83
- _this.moveTimout = setTimeout(go, 100);
84
- }
85
- this.moveTimeout = setTimeout(go, 200);
48
+ if (e.ctrlKey && e.shiftKey) this.select(this.current);
86
49
  }
87
50
 
88
51
  this.moveRight = function() {
@@ -51,20 +51,20 @@ Searcher.prototype = new function() {
51
51
 
52
52
  /* ----- Utilities ------ */
53
53
  function splitQuery(query) {
54
- return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
54
+ return query.split(/(\s+|::?|\(\)?)/).filter(function(string) {
55
55
  return string.match(/\S/);
56
56
  });
57
57
  }
58
58
 
59
59
  function buildRegexps(queries) {
60
- return jQuery.map(queries, function(query) {
60
+ return queries.map(function(query) {
61
61
  return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i');
62
62
  });
63
63
  }
64
64
 
65
65
  function buildHilighters(queries) {
66
- return jQuery.map(queries, function(query) {
67
- return jQuery.map(query.split(''), function(l, i) {
66
+ return queries.map(function(query) {
67
+ return query.split('').map(function(l, i) {
68
68
  return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
69
69
  }).join('');
70
70
  });
@@ -221,9 +221,9 @@ Searcher.prototype = new function() {
221
221
  }
222
222
 
223
223
  function triggerResults(results, isLast) {
224
- jQuery.each(this.handlers, function(i, fn) {
224
+ this.handlers.forEach(function(fn) {
225
225
  fn.call(this, results, isLast)
226
- })
226
+ });
227
227
  }
228
228
  }
229
229
 
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ # frozen_string_literal: true
2
2
  ##
3
3
  # RDoc uses generators to turn parsed source code in the form of an
4
4
  # RDoc::CodeObject tree into some form of output. RDoc comes with the HTML
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ # frozen_string_literal: true
2
2
  ##
3
3
  # GhostMethod represents a method referenced only by a comment
4
4