doing 2.0.9.pre → 2.0.10
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/.yardoc/checksums +20 -0
- data/.yardoc/complete +0 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +1 -1
- data/Gemfile.lock +30 -10
- data/README.md +1 -1
- data/Rakefile +8 -1
- data/bin/doing +76 -30
- data/doc/Array.html +135 -0
- data/doc/Doing/Color.html +506 -0
- data/doc/Doing/Configuration.html +680 -0
- data/doc/Doing/Errors/DoingNoTraceError.html +186 -0
- data/doc/Doing/Errors/DoingRuntimeError.html +186 -0
- data/doc/Doing/Errors/DoingStandardError.html +186 -0
- data/doc/Doing/Errors/EmptyInput.html +186 -0
- data/doc/Doing/Errors/NoResults.html +186 -0
- data/doc/Doing/Errors/PluginException.html +248 -0
- data/doc/Doing/Errors/UserCancelled.html +186 -0
- data/doc/Doing/Errors/WrongCommand.html +186 -0
- data/doc/Doing/Errors.html +191 -0
- data/doc/Doing/Hooks.html +364 -0
- data/doc/Doing/Item.html +1385 -0
- data/doc/Doing/Items.html +393 -0
- data/doc/Doing/LogAdapter.html +1650 -0
- data/doc/Doing/Note.html +535 -0
- data/doc/Doing/Pager.html +268 -0
- data/doc/Doing/Plugins.html +849 -0
- data/doc/Doing/Util.html +870 -0
- data/doc/Doing/WWID.html +4827 -0
- data/doc/Doing.html +145 -0
- data/doc/GLI/Commands/MarkdownDocumentListener.html +763 -0
- data/doc/GLI/Commands.html +115 -0
- data/doc/GLI.html +115 -0
- data/doc/Hash.html +332 -0
- data/doc/Status.html +292 -0
- data/doc/String.html +1714 -0
- data/doc/Symbol.html +250 -0
- data/doc/Time.html +182 -0
- data/doc/_index.html +411 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +497 -0
- data/doc/file.README.html +123 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +123 -0
- data/doc/js/app.js +314 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1867 -0
- data/doc/top-level-namespace.html +112 -0
- data/doing.gemspec +5 -1
- data/doing.rdoc +86 -16
- data/example_plugin.rb +6 -6
- data/lib/doing/array.rb +1 -1
- data/lib/doing/configuration.rb +14 -12
- data/lib/doing/hash.rb +1 -1
- data/lib/doing/item.rb +101 -17
- data/lib/doing/log_adapter.rb +123 -113
- data/lib/doing/note.rb +1 -1
- data/lib/doing/plugin_manager.rb +5 -5
- data/lib/doing/plugins/export/csv_export.rb +1 -1
- data/lib/doing/plugins/export/template_export.rb +5 -7
- data/lib/doing/plugins/import/calendar_import.rb +1 -1
- data/lib/doing/plugins/import/doing_import.rb +4 -4
- data/lib/doing/plugins/import/timing_import.rb +5 -3
- data/lib/doing/string.rb +75 -22
- data/lib/doing/symbol.rb +9 -5
- data/lib/doing/time.rb +1 -1
- data/lib/doing/util.rb +18 -11
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +419 -326
- data/lib/doing/wwidfile.rb +5 -5
- data/lib/doing.rb +2 -1
- data/lib/examples/plugins/say_export.rb +6 -6
- data/rdocfixer.rb +1 -1
- data/yard_templates/default/method_details/setup.rb +3 -0
- metadata +117 -4
data/doc/frames.html
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Documentation by YARD 0.9.26</title>
|
6
|
+
</head>
|
7
|
+
<script type="text/javascript">
|
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/index.html
ADDED
@@ -0,0 +1,123 @@
|
|
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
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.26
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "README";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index</a> »
|
40
|
+
<span class="title">File: README</span>
|
41
|
+
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div id="search">
|
45
|
+
|
46
|
+
<a class="full_list_link" id="class_list_link"
|
47
|
+
href="class_list.html">
|
48
|
+
|
49
|
+
<svg width="24" height="24">
|
50
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
51
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
52
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
</svg>
|
54
|
+
</a>
|
55
|
+
|
56
|
+
</div>
|
57
|
+
<div class="clear"></div>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div id="content"><div id='filecontents'><h1 id="doing">doing</h1>
|
61
|
+
|
62
|
+
<p><strong>A command line tool for remembering what you were doing and tracking what you've done.</strong></p>
|
63
|
+
|
64
|
+
<p><em>If you're one of the rare people like me who find this useful, feel free to <a href="http://brettterpstra.com/donate/">buy me some coffee</a>.</em></p>
|
65
|
+
|
66
|
+
<!--README-->
|
67
|
+
|
68
|
+
<p>The current version of <code>doing</code> is <!--VER-->2.0.8<!--END VER-->.</p>
|
69
|
+
|
70
|
+
<p>Find all of the documentation in the <a href="https://github.com/ttscoff/doing/wiki">doing wiki</a>.</p>
|
71
|
+
|
72
|
+
<h2 id="what-and-why">What and why</h2>
|
73
|
+
|
74
|
+
<p><code>doing</code> is a basic CLI for adding and listing "what was I doing" reminders in a <a href="https://www.taskpaper.com">TaskPaper-formatted</a> text file. It allows for multiple sections/categories and flexible output formatting.</p>
|
75
|
+
|
76
|
+
<p>While I'm working, I have hourly reminders to record what I'm working on, and I try to remember to punch in quick notes if I'm unexpectedly called away from a project. I can do this just by typing <code>doing now tracking down the CG bug</code>. </p>
|
77
|
+
|
78
|
+
<p>If there's something I want to look at later but doesn't need to be added to a task list or tracker, I can type <code>doing later check out the pinboard bookmarks from macdrifter</code>. When I get back to my computer --- or just need a refresher after a distraction --- I can type <code>doing last</code> to see what the last thing on my plate was. I can also type <code>doing recent</code> (or just <code>doing</code>) to get a list of the last few entries. <code>doing today</code> gives me everything since midnight for the current day, making it easy to see what I've accomplished over a sleepless night. </p>
|
79
|
+
|
80
|
+
<p>Doing has over 30 commands for tracking your status, recording your time, and analyzing the results.</p>
|
81
|
+
|
82
|
+
<p>See <a href="https://github.com/ttscoff/doing/wiki">the wiki</a> for installation and usage instructions.</p>
|
83
|
+
|
84
|
+
<h2 id="launchbar-alfred">Launchbar/Alfred</h2>
|
85
|
+
|
86
|
+
<p>The LaunchBar action requires that <code>doing</code> be available in <code>/usr/local/bin/doing</code>. If it's not (because you're using RVM or similar), you'll need to symlink it there. Running the action with Return will show the latest 9 items from Currently, along with any time intervals recorded, and includes a submenu of Timers for each tag.</p>
|
87
|
+
|
88
|
+
<p>Pressing Spacebar and typing allows you to add a new entry to currently. You an also trigger a custom show command by typing "show [section/tag]" and hitting return. Include any command line flags at the end of the string, and if you add text in parenthesis, it will be processed as a note on the entry.</p>
|
89
|
+
|
90
|
+
<p>Point of interest, the LaunchBar Action makes use of the <code>-o json</code> flag for outputting JSON to the action's script for parsing.</p>
|
91
|
+
|
92
|
+
<!--GITHUB-->
|
93
|
+
|
94
|
+
<p>See the <a href="https://brettterpstra.com/projects/doing/">doing project on BrettTerpstra.com</a> for the download.</p>
|
95
|
+
|
96
|
+
<!--END GITHUB-->
|
97
|
+
|
98
|
+
<!--JEKYLL
|
99
|
+
download 117 %
|
100
|
+
-->
|
101
|
+
|
102
|
+
<p>Evan Lovely has <a href="http://www.evanlovely.com/blog/technology/alfred-for-terpstras-doing/">created an Alfred workflow as well</a>.</p>
|
103
|
+
|
104
|
+
<!--END README-->
|
105
|
+
|
106
|
+
<hr>
|
107
|
+
|
108
|
+
<p>PayPal link: <a href="https://paypal.me/ttscoff">paypal.me/ttscoff</a></p>
|
109
|
+
|
110
|
+
<h2 id="changelog">Changelog</h2>
|
111
|
+
|
112
|
+
<p>See <a href="https://github.com/ttscoff/doing/blob/master/CHANGELOG.md">CHANGELOG.md</a></p>
|
113
|
+
</div></div>
|
114
|
+
|
115
|
+
<div id="footer">
|
116
|
+
Generated on Thu Nov 18 16:39:11 2021 by
|
117
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
118
|
+
0.9.26 (ruby-3.0.1).
|
119
|
+
</div>
|
120
|
+
|
121
|
+
</div>
|
122
|
+
</body>
|
123
|
+
</html>
|
data/doc/js/app.js
ADDED
@@ -0,0 +1,314 @@
|
|
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
|
+
$('#nav').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
|
+
$('#nav').removeAttr('style');
|
67
|
+
$('#search a').removeClass('active inactive');
|
68
|
+
$(window).focus();
|
69
|
+
}
|
70
|
+
});
|
71
|
+
}
|
72
|
+
|
73
|
+
function toggleSearchFrame(id, link) {
|
74
|
+
var frame = $('#nav');
|
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 constantSummaryToggle() {
|
124
|
+
$('.constants_summary_toggle').click(function(e) {
|
125
|
+
e.preventDefault();
|
126
|
+
localStorage.summaryCollapsed = $(this).text();
|
127
|
+
$('.constants_summary_toggle').each(function() {
|
128
|
+
$(this).text($(this).text() == "collapse" ? "expand" : "collapse");
|
129
|
+
var next = $(this).parent().parent().nextAll('dl.constants').first();
|
130
|
+
if (next.hasClass('compact')) {
|
131
|
+
next.toggle();
|
132
|
+
next.nextAll('dl.constants').first().toggle();
|
133
|
+
}
|
134
|
+
else if (next.hasClass('constants')) {
|
135
|
+
var list = $('<dl class="constants compact" />');
|
136
|
+
list.html(next.html());
|
137
|
+
list.find('dt').each(function() {
|
138
|
+
$(this).addClass('summary_signature');
|
139
|
+
$(this).text( $(this).text().split('=')[0]);
|
140
|
+
if ($(this).has(".deprecated").length) {
|
141
|
+
$(this).addClass('deprecated');
|
142
|
+
};
|
143
|
+
});
|
144
|
+
// Add the value of the constant as "Tooltip" to the summary object
|
145
|
+
list.find('pre.code').each(function() {
|
146
|
+
console.log($(this).parent());
|
147
|
+
var dt_element = $(this).parent().prev();
|
148
|
+
var tooltip = $(this).text();
|
149
|
+
if (dt_element.hasClass("deprecated")) {
|
150
|
+
tooltip = 'Deprecated. ' + tooltip;
|
151
|
+
};
|
152
|
+
dt_element.attr('title', tooltip);
|
153
|
+
});
|
154
|
+
list.find('.docstring, .tags, dd').remove();
|
155
|
+
next.before(list);
|
156
|
+
next.toggle();
|
157
|
+
}
|
158
|
+
});
|
159
|
+
return false;
|
160
|
+
});
|
161
|
+
if (localStorage.summaryCollapsed == "collapse") {
|
162
|
+
$('.constants_summary_toggle').first().click();
|
163
|
+
} else { localStorage.summaryCollapsed = "expand"; }
|
164
|
+
}
|
165
|
+
|
166
|
+
function generateTOC() {
|
167
|
+
if ($('#filecontents').length === 0) return;
|
168
|
+
var _toc = $('<ol class="top"></ol>');
|
169
|
+
var show = false;
|
170
|
+
var toc = _toc;
|
171
|
+
var counter = 0;
|
172
|
+
var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
173
|
+
var i;
|
174
|
+
var curli;
|
175
|
+
if ($('#filecontents h1').length > 1) tags.unshift('h1');
|
176
|
+
for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
|
177
|
+
var lastTag = parseInt(tags[0][1], 10);
|
178
|
+
$(tags.join(', ')).each(function() {
|
179
|
+
if ($(this).parents('.method_details .docstring').length != 0) return;
|
180
|
+
if (this.id == "filecontents") return;
|
181
|
+
show = true;
|
182
|
+
var thisTag = parseInt(this.tagName[1], 10);
|
183
|
+
if (this.id.length === 0) {
|
184
|
+
var proposedId = $(this).attr('toc-id');
|
185
|
+
if (typeof(proposedId) != "undefined") this.id = proposedId;
|
186
|
+
else {
|
187
|
+
var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
|
188
|
+
if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
|
189
|
+
this.id = proposedId;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
if (thisTag > lastTag) {
|
193
|
+
for (i = 0; i < thisTag - lastTag; i++) {
|
194
|
+
if ( typeof(curli) == "undefined" ) {
|
195
|
+
curli = $('<li/>');
|
196
|
+
toc.append(curli);
|
197
|
+
}
|
198
|
+
toc = $('<ol/>');
|
199
|
+
curli.append(toc);
|
200
|
+
curli = undefined;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
if (thisTag < lastTag) {
|
204
|
+
for (i = 0; i < lastTag - thisTag; i++) {
|
205
|
+
toc = toc.parent();
|
206
|
+
toc = toc.parent();
|
207
|
+
}
|
208
|
+
}
|
209
|
+
var title = $(this).attr('toc-title');
|
210
|
+
if (typeof(title) == "undefined") title = $(this).text();
|
211
|
+
curli =$('<li><a href="#' + this.id + '">' + title + '</a></li>');
|
212
|
+
toc.append(curli);
|
213
|
+
lastTag = thisTag;
|
214
|
+
});
|
215
|
+
if (!show) return;
|
216
|
+
html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>';
|
217
|
+
$('#content').prepend(html);
|
218
|
+
$('#toc').append(_toc);
|
219
|
+
$('#toc .hide_toc').toggle(function() {
|
220
|
+
$('#toc .top').slideUp('fast');
|
221
|
+
$('#toc').toggleClass('hidden');
|
222
|
+
$('#toc .title small').toggle();
|
223
|
+
}, function() {
|
224
|
+
$('#toc .top').slideDown('fast');
|
225
|
+
$('#toc').toggleClass('hidden');
|
226
|
+
$('#toc .title small').toggle();
|
227
|
+
});
|
228
|
+
}
|
229
|
+
|
230
|
+
function navResizeFn(e) {
|
231
|
+
if (e.which !== 1) {
|
232
|
+
navResizeFnStop();
|
233
|
+
return;
|
234
|
+
}
|
235
|
+
|
236
|
+
sessionStorage.navWidth = e.pageX.toString();
|
237
|
+
$('.nav_wrap').css('width', e.pageX);
|
238
|
+
$('.nav_wrap').css('-ms-flex', 'inherit');
|
239
|
+
}
|
240
|
+
|
241
|
+
function navResizeFnStop() {
|
242
|
+
$(window).unbind('mousemove', navResizeFn);
|
243
|
+
window.removeEventListener('message', navMessageFn, false);
|
244
|
+
}
|
245
|
+
|
246
|
+
function navMessageFn(e) {
|
247
|
+
if (e.data.action === 'mousemove') navResizeFn(e.data.event);
|
248
|
+
if (e.data.action === 'mouseup') navResizeFnStop();
|
249
|
+
}
|
250
|
+
|
251
|
+
function navResizer() {
|
252
|
+
$('#resizer').mousedown(function(e) {
|
253
|
+
e.preventDefault();
|
254
|
+
$(window).mousemove(navResizeFn);
|
255
|
+
window.addEventListener('message', navMessageFn, false);
|
256
|
+
});
|
257
|
+
$(window).mouseup(navResizeFnStop);
|
258
|
+
|
259
|
+
if (sessionStorage.navWidth) {
|
260
|
+
navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
|
261
|
+
}
|
262
|
+
}
|
263
|
+
|
264
|
+
function navExpander() {
|
265
|
+
var done = false, timer = setTimeout(postMessage, 500);
|
266
|
+
function postMessage() {
|
267
|
+
if (done) return;
|
268
|
+
clearTimeout(timer);
|
269
|
+
var opts = { action: 'expand', path: pathId };
|
270
|
+
document.getElementById('nav').contentWindow.postMessage(opts, '*');
|
271
|
+
done = true;
|
272
|
+
}
|
273
|
+
|
274
|
+
window.addEventListener('message', function(event) {
|
275
|
+
if (event.data === 'navReady') postMessage();
|
276
|
+
return false;
|
277
|
+
}, false);
|
278
|
+
}
|
279
|
+
|
280
|
+
function mainFocus() {
|
281
|
+
var hash = window.location.hash;
|
282
|
+
if (hash !== '' && $(hash)[0]) {
|
283
|
+
$(hash)[0].scrollIntoView();
|
284
|
+
}
|
285
|
+
|
286
|
+
setTimeout(function() { $('#main').focus(); }, 10);
|
287
|
+
}
|
288
|
+
|
289
|
+
function navigationChange() {
|
290
|
+
// This works around the broken anchor navigation with the YARD template.
|
291
|
+
window.onpopstate = function() {
|
292
|
+
var hash = window.location.hash;
|
293
|
+
if (hash !== '' && $(hash)[0]) {
|
294
|
+
$(hash)[0].scrollIntoView();
|
295
|
+
}
|
296
|
+
};
|
297
|
+
}
|
298
|
+
|
299
|
+
$(document).ready(function() {
|
300
|
+
navResizer();
|
301
|
+
navExpander();
|
302
|
+
createSourceLinks();
|
303
|
+
createDefineLinks();
|
304
|
+
createFullTreeLinks();
|
305
|
+
searchFrameButtons();
|
306
|
+
linkSummaries();
|
307
|
+
summaryToggle();
|
308
|
+
constantSummaryToggle();
|
309
|
+
generateTOC();
|
310
|
+
mainFocus();
|
311
|
+
navigationChange();
|
312
|
+
});
|
313
|
+
|
314
|
+
})();
|
data/doc/js/full_list.js
ADDED
@@ -0,0 +1,216 @@
|
|
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
|
+
})();
|