corral_acl 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -1
  3. data/Gemfile +12 -1
  4. data/LICENSE +1 -1
  5. data/README.md +2 -2
  6. data/Rakefile +34 -0
  7. data/bin/test +9 -0
  8. data/corral.gemspec +12 -12
  9. data/lib/corral/version.rb +1 -1
  10. data/lib/tasks/corral_tasks.rake +4 -0
  11. data/test/corral_test.rb +7 -0
  12. data/test/dummy/Rakefile +6 -0
  13. data/test/dummy/app/assets/config/manifest.js +4 -0
  14. data/test/dummy/app/assets/images/.keep +0 -0
  15. data/test/dummy/app/assets/javascripts/application.js +13 -0
  16. data/test/dummy/app/assets/javascripts/cable.js +13 -0
  17. data/test/dummy/app/assets/javascripts/channels/.keep +0 -0
  18. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  19. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  20. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  21. data/test/dummy/app/controllers/application_controller.rb +3 -0
  22. data/test/dummy/app/controllers/concerns/.keep +0 -0
  23. data/test/dummy/app/helpers/application_helper.rb +2 -0
  24. data/test/dummy/app/jobs/application_job.rb +2 -0
  25. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  26. data/test/dummy/app/models/application_record.rb +3 -0
  27. data/test/dummy/app/models/concerns/.keep +0 -0
  28. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  29. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  30. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  31. data/test/dummy/bin/bundle +3 -0
  32. data/test/dummy/bin/rails +4 -0
  33. data/test/dummy/bin/rake +4 -0
  34. data/test/dummy/bin/setup +34 -0
  35. data/test/dummy/bin/update +29 -0
  36. data/test/dummy/config.ru +5 -0
  37. data/test/dummy/config/application.rb +15 -0
  38. data/test/dummy/config/boot.rb +5 -0
  39. data/test/dummy/config/cable.yml +9 -0
  40. data/test/dummy/config/database.yml +25 -0
  41. data/test/dummy/config/environment.rb +5 -0
  42. data/test/dummy/config/environments/development.rb +54 -0
  43. data/test/dummy/config/environments/production.rb +86 -0
  44. data/test/dummy/config/environments/test.rb +42 -0
  45. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  46. data/test/dummy/config/initializers/assets.rb +11 -0
  47. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  48. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  49. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/test/dummy/config/initializers/inflections.rb +16 -0
  51. data/test/dummy/config/initializers/mime_types.rb +4 -0
  52. data/test/dummy/config/initializers/new_framework_defaults.rb +24 -0
  53. data/test/dummy/config/initializers/session_store.rb +3 -0
  54. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  55. data/test/dummy/config/locales/en.yml +23 -0
  56. data/test/dummy/config/puma.rb +47 -0
  57. data/test/dummy/config/routes.rb +3 -0
  58. data/test/dummy/config/secrets.yml +22 -0
  59. data/test/dummy/config/spring.rb +6 -0
  60. data/test/dummy/lib/assets/.keep +0 -0
  61. data/test/dummy/log/.keep +0 -0
  62. data/test/dummy/public/404.html +67 -0
  63. data/test/dummy/public/422.html +67 -0
  64. data/test/dummy/public/500.html +66 -0
  65. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  66. data/test/dummy/public/apple-touch-icon.png +0 -0
  67. data/test/dummy/public/favicon.ico +0 -0
  68. data/test/test_helper.rb +20 -0
  69. metadata +90 -51
  70. data/.rspec +0 -2
  71. data/doc/Ability.html +0 -257
  72. data/doc/Corral.html +0 -131
  73. data/doc/Corral/Ability.html +0 -802
  74. data/doc/Corral/AccessDenied.html +0 -146
  75. data/doc/Corral/AuthorizationNotPerformed.html +0 -145
  76. data/doc/Corral/ControllerAdditions.html +0 -513
  77. data/doc/Corral/ControllerAdditions/ClassMethods.html +0 -277
  78. data/doc/Corral/Error.html +0 -141
  79. data/doc/Corral/Generators.html +0 -117
  80. data/doc/Corral/Generators/AbilityGenerator.html +0 -195
  81. data/doc/Corral/NullRule.html +0 -226
  82. data/doc/Corral/SubjectRule.html +0 -406
  83. data/doc/_index.html +0 -194
  84. data/doc/class_list.html +0 -51
  85. data/doc/css/common.css +0 -1
  86. data/doc/css/full_list.css +0 -58
  87. data/doc/css/style.css +0 -474
  88. data/doc/doc/_index.html +0 -87
  89. data/doc/doc/class_list.html +0 -51
  90. data/doc/doc/css/common.css +0 -1
  91. data/doc/doc/css/full_list.css +0 -58
  92. data/doc/doc/css/style.css +0 -474
  93. data/doc/doc/file_list.html +0 -51
  94. data/doc/doc/frames.html +0 -17
  95. data/doc/doc/index.html +0 -87
  96. data/doc/doc/js/app.js +0 -243
  97. data/doc/doc/js/full_list.js +0 -216
  98. data/doc/doc/js/jquery.js +0 -4
  99. data/doc/doc/method_list.html +0 -51
  100. data/doc/doc/top-level-namespace.html +0 -102
  101. data/doc/file.README.html +0 -82
  102. data/doc/file_list.html +0 -56
  103. data/doc/frames.html +0 -17
  104. data/doc/index.html +0 -82
  105. data/doc/js/app.js +0 -243
  106. data/doc/js/full_list.js +0 -216
  107. data/doc/js/jquery.js +0 -4
  108. data/doc/method_list.html +0 -211
  109. data/doc/top-level-namespace.html +0 -114
  110. data/spec/corral/ability_spec.rb +0 -26
  111. data/spec/spec_helper.rb +0 -97
@@ -1,51 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
- <meta charset="utf-8" />
6
-
7
- <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
8
-
9
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
10
-
11
-
12
-
13
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
-
15
- <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
-
17
-
18
- <title>File List</title>
19
- <base id="base_target" target="_parent" />
20
- </head>
21
- <body>
22
- <div id="content">
23
- <div class="fixed_header">
24
- <h1 id="full_list_header">File List</h1>
25
- <div id="full_list_nav">
26
-
27
- <span><a target="_self" href="class_list.html">
28
- Classes
29
- </a></span>
30
-
31
- <span><a target="_self" href="method_list.html">
32
- Methods
33
- </a></span>
34
-
35
- <span><a target="_self" href="file_list.html">
36
- Files
37
- </a></span>
38
-
39
- </div>
40
-
41
- <div id="search">Search: <input type="text" /></div>
42
- </div>
43
-
44
- <ul id="full_list" class="file">
45
-
46
-
47
-
48
- </ul>
49
- </div>
50
- </body>
51
- </html>
data/doc/doc/frames.html DELETED
@@ -1,17 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>Documentation by YARD 0.9.0</title>
6
- </head>
7
- <script type="text/javascript" charset="utf-8">
8
- var match = unescape(window.location.hash).match(/^#!(.+)/);
9
- var name = match ? match[1] : 'index.html';
10
- name = name.replace(/^(\w+):\/\//, '').replace(/^\/\//, '');
11
- window.top.location = name;
12
- </script>
13
- <noscript>
14
- <h1>Oops!</h1>
15
- <h2>YARD requires JavaScript!</h2>
16
- </noscript>
17
- </html>
data/doc/doc/index.html DELETED
@@ -1,87 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Documentation by YARD 0.9.0
8
-
9
- </title>
10
-
11
- <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
12
-
13
- <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
14
-
15
- <script type="text/javascript" charset="utf-8">
16
- pathId = null;
17
- relpath = '';
18
- </script>
19
-
20
-
21
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
22
-
23
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
24
-
25
-
26
- </head>
27
- <body>
28
- <div class="nav_wrap">
29
- <iframe id="nav" src="class_list.html"></iframe>
30
- <div id="resizer"></div>
31
- </div>
32
-
33
- <div id="main" tabindex="-1">
34
- <div id="header">
35
- <div id="menu">
36
-
37
- </div>
38
-
39
- <div id="search">
40
-
41
- <a class="full_list_link" id="class_list_link"
42
- href="class_list.html">
43
-
44
- <svg width="24" height="24">
45
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
46
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
47
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
48
- </svg>
49
- </a>
50
-
51
- </div>
52
- <div class="clear"></div>
53
- </div>
54
-
55
- <iframe id="search_frame" src="class_list.html"></iframe>
56
-
57
- <div id="content"><h1 class="noborder title">Documentation by YARD 0.9.0</h1>
58
- <div id="listing">
59
- <h1 class="alphaindex">Alphabetic Index</h1>
60
-
61
- <div class="clear"></div>
62
- <h2>Namespace Listing A-Z</h2>
63
-
64
-
65
-
66
-
67
- <table>
68
- <tr>
69
- <td valign='top' width="33%">
70
-
71
- </td>
72
- </tr>
73
- </table>
74
-
75
- </div>
76
-
77
- </div>
78
-
79
- <div id="footer">
80
- Generated on Wed Jul 6 11:16:35 2016 by
81
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
82
- 0.9.0 (ruby-2.3.1).
83
- </div>
84
-
85
- </div>
86
- </body>
87
- </html>
data/doc/doc/js/app.js DELETED
@@ -1,243 +0,0 @@
1
- (function() {
2
-
3
- var localStorage = {}, sessionStorage = {};
4
- try { localStorage = window.localStorage; } catch (e) { }
5
- try { sessionStorage = window.sessionStorage; } catch (e) { }
6
-
7
- function createSourceLinks() {
8
- $('.method_details_list .source_code').
9
- before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
10
- $('.toggleSource').toggle(function() {
11
- $(this).parent().nextAll('.source_code').slideDown(100);
12
- $(this).text("Hide source");
13
- },
14
- function() {
15
- $(this).parent().nextAll('.source_code').slideUp(100);
16
- $(this).text("View source");
17
- });
18
- }
19
-
20
- function createDefineLinks() {
21
- var tHeight = 0;
22
- $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
23
- $('.toggleDefines').toggle(function() {
24
- tHeight = $(this).parent().prev().height();
25
- $(this).prev().css('display', 'inline');
26
- $(this).parent().prev().height($(this).parent().height());
27
- $(this).text("(less)");
28
- },
29
- function() {
30
- $(this).prev().hide();
31
- $(this).parent().prev().height(tHeight);
32
- $(this).text("more...");
33
- });
34
- }
35
-
36
- function createFullTreeLinks() {
37
- var tHeight = 0;
38
- $('.inheritanceTree').toggle(function() {
39
- tHeight = $(this).parent().prev().height();
40
- $(this).parent().toggleClass('showAll');
41
- $(this).text("(hide)");
42
- $(this).parent().prev().height($(this).parent().height());
43
- },
44
- function() {
45
- $(this).parent().toggleClass('showAll');
46
- $(this).parent().prev().height(tHeight);
47
- $(this).text("show all");
48
- });
49
- }
50
-
51
- function searchFrameButtons() {
52
- $('.full_list_link').click(function() {
53
- toggleSearchFrame(this, $(this).attr('href'));
54
- return false;
55
- });
56
- window.addEventListener('message', function(e) {
57
- if (e.data === 'navEscape') {
58
- $('#search_frame').slideUp(100);
59
- $('#search a').removeClass('active inactive');
60
- $(window).focus();
61
- }
62
- });
63
-
64
- $(window).resize(function() {
65
- if ($('#search:visible').length === 0) {
66
- $('#search_frame').slideUp(100);
67
- $('#search a').removeClass('active inactive');
68
- $(window).focus();
69
- }
70
- });
71
- }
72
-
73
- function toggleSearchFrame(id, link) {
74
- var frame = $('#search_frame');
75
- $('#search a').removeClass('active').addClass('inactive');
76
- if (frame.attr('src') === link && frame.css('display') !== "none") {
77
- frame.slideUp(100);
78
- $('#search a').removeClass('active inactive');
79
- }
80
- else {
81
- $(id).addClass('active').removeClass('inactive');
82
- if (frame.attr('src') !== link) frame.attr('src', link);
83
- frame.slideDown(100);
84
- }
85
- }
86
-
87
- function linkSummaries() {
88
- $('.summary_signature').click(function() {
89
- document.location = $(this).find('a').attr('href');
90
- });
91
- }
92
-
93
- function summaryToggle() {
94
- $('.summary_toggle').click(function(e) {
95
- e.preventDefault();
96
- localStorage.summaryCollapsed = $(this).text();
97
- $('.summary_toggle').each(function() {
98
- $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
99
- var next = $(this).parent().parent().nextAll('ul.summary').first();
100
- if (next.hasClass('compact')) {
101
- next.toggle();
102
- next.nextAll('ul.summary').first().toggle();
103
- }
104
- else if (next.hasClass('summary')) {
105
- var list = $('<ul class="summary compact" />');
106
- list.html(next.html());
107
- list.find('.summary_desc, .note').remove();
108
- list.find('a').each(function() {
109
- $(this).html($(this).find('strong').html());
110
- $(this).parent().html($(this)[0].outerHTML);
111
- });
112
- next.before(list);
113
- next.toggle();
114
- }
115
- });
116
- return false;
117
- });
118
- if (localStorage.summaryCollapsed == "collapse") {
119
- $('.summary_toggle').first().click();
120
- } else { localStorage.summaryCollapsed = "expand"; }
121
- }
122
-
123
- function generateTOC() {
124
- if ($('#filecontents').length === 0) return;
125
- var _toc = $('<ol class="top"></ol>');
126
- var show = false;
127
- var toc = _toc;
128
- var counter = 0;
129
- var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
130
- var i;
131
- if ($('#filecontents h1').length > 1) tags.unshift('h1');
132
- for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
133
- var lastTag = parseInt(tags[0][1], 10);
134
- $(tags.join(', ')).each(function() {
135
- if ($(this).parents('.method_details .docstring').length != 0) return;
136
- if (this.id == "filecontents") return;
137
- show = true;
138
- var thisTag = parseInt(this.tagName[1], 10);
139
- if (this.id.length === 0) {
140
- var proposedId = $(this).attr('toc-id');
141
- if (typeof(proposedId) != "undefined") this.id = proposedId;
142
- else {
143
- var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
144
- if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
145
- this.id = proposedId;
146
- }
147
- }
148
- if (thisTag > lastTag) {
149
- for (i = 0; i < thisTag - lastTag; i++) {
150
- var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
151
- }
152
- }
153
- if (thisTag < lastTag) {
154
- for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
155
- }
156
- var title = $(this).attr('toc-title');
157
- if (typeof(title) == "undefined") title = $(this).text();
158
- toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
159
- lastTag = thisTag;
160
- });
161
- if (!show) return;
162
- html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>';
163
- $('#content').prepend(html);
164
- $('#toc').append(_toc);
165
- $('#toc .hide_toc').toggle(function() {
166
- $('#toc .top').slideUp('fast');
167
- $('#toc').toggleClass('hidden');
168
- $('#toc .title small').toggle();
169
- }, function() {
170
- $('#toc .top').slideDown('fast');
171
- $('#toc').toggleClass('hidden');
172
- $('#toc .title small').toggle();
173
- });
174
- }
175
-
176
- function navResizeFn(e) {
177
- if (e.which !== 1) {
178
- navResizeFnStop();
179
- return;
180
- }
181
-
182
- sessionStorage.navWidth = e.pageX.toString();
183
- $('.nav_wrap').css('width', e.pageX);
184
- $('.nav_wrap').css('-ms-flex', 'inherit');
185
- }
186
-
187
- function navResizeFnStop() {
188
- $(window).unbind('mousemove', navResizeFn);
189
- window.removeEventListener('message', navMessageFn, false);
190
- }
191
-
192
- function navMessageFn(e) {
193
- if (e.data.action === 'mousemove') navResizeFn(e.data.event);
194
- if (e.data.action === 'mouseup') navResizeFnStop();
195
- }
196
-
197
- function navResizer() {
198
- $('#resizer').mousedown(function(e) {
199
- e.preventDefault();
200
- $(window).mousemove(navResizeFn);
201
- window.addEventListener('message', navMessageFn, false);
202
- });
203
- $(window).mouseup(navResizeFnStop);
204
-
205
- if (sessionStorage.navWidth) {
206
- navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
207
- }
208
- }
209
-
210
- function navExpander() {
211
- var done = false, timer = setTimeout(postMessage, 500);
212
- function postMessage() {
213
- if (done) return;
214
- clearTimeout(timer);
215
- var opts = { action: 'expand', path: pathId };
216
- document.getElementById('nav').contentWindow.postMessage(opts, '*');
217
- done = true;
218
- }
219
-
220
- window.addEventListener('message', function(event) {
221
- if (event.data === 'navReady') postMessage();
222
- return false;
223
- }, false);
224
- }
225
-
226
- function mainFocus() {
227
- $('#main')[0].focus();
228
- }
229
-
230
- $(document).ready(function() {
231
- navResizer();
232
- navExpander();
233
- createSourceLinks();
234
- createDefineLinks();
235
- createFullTreeLinks();
236
- searchFrameButtons();
237
- linkSummaries();
238
- summaryToggle();
239
- generateTOC();
240
- mainFocus();
241
- });
242
-
243
- })();
@@ -1,216 +0,0 @@
1
- (function() {
2
-
3
- var $clicked = $(null);
4
- var searchTimeout = null;
5
- var searchCache = [];
6
- var caseSensitiveMatch = false;
7
- var ignoreKeyCodeMin = 8;
8
- var ignoreKeyCodeMax = 46;
9
- var commandKey = 91;
10
-
11
- RegExp.escape = function(text) {
12
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
13
- }
14
-
15
- function escapeShortcut() {
16
- $(document).keydown(function(evt) {
17
- if (evt.which == 27) {
18
- window.parent.postMessage('navEscape', '*');
19
- }
20
- });
21
- }
22
-
23
- function navResizer() {
24
- $(window).mousemove(function(e) {
25
- window.parent.postMessage({
26
- action: 'mousemove', event: {pageX: e.pageX, which: e.which}
27
- }, '*');
28
- }).mouseup(function(e) {
29
- window.parent.postMessage({action: 'mouseup'}, '*');
30
- });
31
- window.parent.postMessage("navReady", "*");
32
- }
33
-
34
- function clearSearchTimeout() {
35
- clearTimeout(searchTimeout);
36
- searchTimeout = null;
37
- }
38
-
39
- function enableLinks() {
40
- // load the target page in the parent window
41
- $('#full_list li').on('click', function(evt) {
42
- $('#full_list li').removeClass('clicked');
43
- $clicked = $(this);
44
- $clicked.addClass('clicked');
45
- evt.stopPropagation();
46
-
47
- if (evt.target.tagName === 'A') return true;
48
-
49
- var elem = $clicked.find('> .item .object_link a')[0];
50
- var e = evt.originalEvent;
51
- var newEvent = new MouseEvent(evt.originalEvent.type);
52
- newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
53
- elem.dispatchEvent(newEvent);
54
- evt.preventDefault();
55
- return false;
56
- });
57
- }
58
-
59
- function enableToggles() {
60
- // show/hide nested classes on toggle click
61
- $('#full_list a.toggle').on('click', function(evt) {
62
- evt.stopPropagation();
63
- evt.preventDefault();
64
- $(this).parent().parent().toggleClass('collapsed');
65
- highlight();
66
- });
67
- }
68
-
69
- function populateSearchCache() {
70
- $('#full_list li .item').each(function() {
71
- var $node = $(this);
72
- var $link = $node.find('.object_link a');
73
- if ($link.length > 0) {
74
- searchCache.push({
75
- node: $node,
76
- link: $link,
77
- name: $link.text(),
78
- fullName: $link.attr('title').split(' ')[0]
79
- });
80
- }
81
- });
82
- }
83
-
84
- function enableSearch() {
85
- $('#search input').keyup(function(event) {
86
- if (ignoredKeyPress(event)) return;
87
- if (this.value === "") {
88
- clearSearch();
89
- } else {
90
- performSearch(this.value);
91
- }
92
- });
93
-
94
- $('#full_list').after("<div id='noresults' style='display:none'></div>");
95
- }
96
-
97
- function ignoredKeyPress(event) {
98
- if (
99
- (event.keyCode > ignoreKeyCodeMin && event.keyCode < ignoreKeyCodeMax) ||
100
- (event.keyCode == commandKey)
101
- ) {
102
- return true;
103
- } else {
104
- return false;
105
- }
106
- }
107
-
108
- function clearSearch() {
109
- clearSearchTimeout();
110
- $('#full_list .found').removeClass('found').each(function() {
111
- var $link = $(this).find('.object_link a');
112
- $link.text($link.text());
113
- });
114
- $('#full_list, #content').removeClass('insearch');
115
- $clicked.parents().removeClass('collapsed');
116
- highlight();
117
- }
118
-
119
- function performSearch(searchString) {
120
- clearSearchTimeout();
121
- $('#full_list, #content').addClass('insearch');
122
- $('#noresults').text('').hide();
123
- partialSearch(searchString, 0);
124
- }
125
-
126
- function partialSearch(searchString, offset) {
127
- var lastRowClass = '';
128
- var i = null;
129
- for (i = offset; i < Math.min(offset + 50, searchCache.length); i++) {
130
- var item = searchCache[i];
131
- var searchName = (searchString.indexOf('::') != -1 ? item.fullName : item.name);
132
- var matchString = buildMatchString(searchString);
133
- var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
134
- if (searchName.match(matchRegexp) == null) {
135
- item.node.removeClass('found');
136
- item.link.text(item.link.text());
137
- }
138
- else {
139
- item.node.addClass('found');
140
- item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
141
- lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
142
- item.link.html(item.name.replace(matchRegexp, "<strong>$&</strong>"));
143
- }
144
- }
145
- if(i == searchCache.length) {
146
- searchDone();
147
- } else {
148
- searchTimeout = setTimeout(function() {
149
- partialSearch(searchString, i);
150
- }, 0);
151
- }
152
- }
153
-
154
- function searchDone() {
155
- searchTimeout = null;
156
- highlight();
157
- if ($('#full_list li:visible').size() === 0) {
158
- $('#noresults').text('No results were found.').hide().fadeIn();
159
- } else {
160
- $('#noresults').text('').hide();
161
- }
162
- $('#content').removeClass('insearch');
163
- }
164
-
165
- function buildMatchString(searchString, event) {
166
- caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
167
- var regexSearchString = RegExp.escape(searchString);
168
- if (caseSensitiveMatch) {
169
- regexSearchString += "|" +
170
- $.map(searchString.split(''), function(e) { return RegExp.escape(e); }).
171
- join('.+?');
172
- }
173
- return regexSearchString;
174
- }
175
-
176
- function highlight() {
177
- $('#full_list li:visible').each(function(n) {
178
- $(this).removeClass('even odd').addClass(n % 2 == 0 ? 'odd' : 'even');
179
- });
180
- }
181
-
182
- /**
183
- * Expands the tree to the target element and its immediate
184
- * children.
185
- */
186
- function expandTo(path) {
187
- var $target = $(document.getElementById('object_' + path));
188
- $target.addClass('clicked');
189
- $target.removeClass('collapsed');
190
- $target.parentsUntil('#full_list', 'li').removeClass('collapsed');
191
- if($target[0]) {
192
- window.scrollTo(window.scrollX, $target.offset().top - 250);
193
- highlight();
194
- }
195
- }
196
-
197
- function windowEvents(event) {
198
- var msg = event.data;
199
- if (msg.action === "expand") {
200
- expandTo(msg.path);
201
- }
202
- return false;
203
- }
204
-
205
- window.addEventListener("message", windowEvents, false);
206
-
207
- $(document).ready(function() {
208
- escapeShortcut();
209
- navResizer();
210
- enableLinks();
211
- enableToggles();
212
- populateSearchCache();
213
- enableSearch();
214
- });
215
-
216
- })();