zabby 0.0.4 → 0.0.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.
@@ -1,99 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=fr_fr" />
6
- <title>
7
- File: TODO
8
-
9
- &mdash; Documentation by YARD 0.7.4
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- relpath = '';
19
- if (relpath != '') relpath += '/';
20
- </script>
21
-
22
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
-
26
-
27
- </head>
28
- <body>
29
- <script type="text/javascript" charset="utf-8">
30
- if (window.top.frames.main) document.body.className = 'frames';
31
- </script>
32
-
33
- <div id="header">
34
- <div id="menu">
35
-
36
- <a href="_index.html" title="Index">Index</a> &raquo;
37
- <span class="title">File: TODO</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a id="class_list_link" href="#">Class List</a>
46
-
47
- <a id="method_list_link" href="#">Method List</a>
48
-
49
- <a id="file_list_link" href="#">File List</a>
50
-
51
- </div>
52
- <div class="clear"></div>
53
- </div>
54
-
55
- <iframe id="search_frame"></iframe>
56
-
57
- <div id="content"><div id='filecontents'><h1>TODO list for Zabby</h1>
58
- <p>
59
- Zabby is still a young projet! There are many features missing and possible
60
- improvements:
61
- </p>
62
- <ul>
63
- <li>Document the code with <b>Yard</b>
64
-
65
- </li>
66
- <li>Write tests:
67
-
68
- <ul>
69
- <li>Use RSpec
70
-
71
- </li>
72
- <li>Use a <em>webmock</em> to simulate a Zabix Server, maybe <b>VCR</b>
73
-
74
- </li>
75
- </ul>
76
- </li>
77
- <li>Validate API verbs
78
-
79
- </li>
80
- <li>Betting Exceptions and error handling
81
-
82
- </li>
83
- <li>Add online help to the shell
84
-
85
- </li>
86
- <li>Improve or merge <tt>zabbysh</tt> and <tt>zabbyrb</tt>
87
-
88
- </li>
89
- </ul>
90
- </div></div>
91
-
92
- <div id="footer">
93
- Generated on Wed Dec 21 12:25:11 2011 by
94
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
95
- 0.7.4 (ruby-1.8.7).
96
- </div>
97
-
98
- </body>
99
- </html>
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html>
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=fr_fr" />
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
- <base id="base_target" target="_parent" />
19
- </head>
20
- <body>
21
- <script type="text/javascript" charset="utf-8">
22
- if (window.top.frames.main) {
23
- document.getElementById('base_target').target = 'main';
24
- document.body.className = 'frames';
25
- }
26
- </script>
27
- <div id="content">
28
- <h1 id="full_list_header">File List</h1>
29
- <div id="nav">
30
-
31
- <a target="_self" href="class_list.html">Classes</a>
32
-
33
- <a target="_self" href="method_list.html">Methods</a>
34
-
35
- <a target="_self" href="file_list.html">Files</a>
36
-
37
- </div>
38
- <div id="search">Search: <input type="text" /></div>
39
-
40
- <ul id="full_list" class="files">
41
-
42
-
43
- <li class="r1"><a href="index.html" title="README">README</a></li>
44
-
45
-
46
- <li class="r2"><a href="file.LICENSE.html" title="LICENSE">LICENSE</a></li>
47
-
48
-
49
- <li class="r1"><a href="file.TODO.html" title="TODO">TODO</a></li>
50
-
51
-
52
- <li class="r2"><a href="file.ChangeLog.html" title="ChangeLog">ChangeLog</a></li>
53
-
54
-
55
- </ul>
56
- </div>
57
- </body>
58
- </html>
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=fr_fr"/>
7
- <title>Documentation by YARD 0.7.4</title>
8
- </head>
9
- <frameset cols="20%,*">
10
- <frame name="list" src="class_list.html" />
11
- <frame name="main" src="index.html" />
12
- </frameset>
13
- </html>
@@ -1,271 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=fr_fr" />
6
- <title>
7
- File: README
8
-
9
- &mdash; Documentation by YARD 0.7.4
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- relpath = '';
19
- if (relpath != '') relpath += '/';
20
- </script>
21
-
22
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
-
26
-
27
- </head>
28
- <body>
29
- <script type="text/javascript" charset="utf-8">
30
- if (window.top.frames.main) document.body.className = 'frames';
31
- </script>
32
-
33
- <div id="header">
34
- <div id="menu">
35
-
36
- <a href="_index.html" title="Index">Index</a> &raquo;
37
- <span class="title">File: README</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a id="class_list_link" href="#">Class List</a>
46
-
47
- <a id="method_list_link" href="#">Method List</a>
48
-
49
- <a id="file_list_link" href="#">File List</a>
50
-
51
- </div>
52
- <div class="clear"></div>
53
- </div>
54
-
55
- <iframe id="search_frame"></iframe>
56
-
57
- <div id="content"><div id='filecontents'><h1>Zabby</h1>
58
- <p>
59
- Zabby[http://zabby.org] is a Ruby library and client for
60
- Zabbix[http://www.zabbix.com/]. It provides a simple and clean interface to
61
- the Web Services[http://www.zabbix.com/documentation/1.8/api].
62
- </p>
63
- <h2>Goals</h2>
64
- <p>
65
- There already are Ruby Zabbix libraries but some of them are unfinished
66
- (and apparently abandonned) and some other&#8217;s code is too complicated
67
- or poorly designed. This is why I decided to write another tool for which
68
- my primary goal is to keep the code design, the user interaction and
69
- application interface clean and simple.
70
- </p>
71
- <p>
72
- Zabby has the following caracteristics:
73
- </p>
74
- <ul>
75
- <li>Works both as a Ruby API and a command line tool.
76
-
77
- </li>
78
- <li>Uses an internal Ruby DSL (Domain Specific Langage) that give access to the
79
- full power of Ruby scripting in your configurarion files. No need for a
80
- specific configuration language.
81
-
82
- </li>
83
- <li>Simple design: avoids spaghetti code, WTF and facepalm, unlike some other
84
- Ruby Zabbix libraries.
85
-
86
- </li>
87
- </ul>
88
- <h2>Features</h2>
89
- <ul>
90
- <li>Low level Ruby API that maps every Zabbix API (JSON RPC) to Ruby hashes.
91
-
92
- </li>
93
- <li>Higher level Ruby DSL, both available in pure Ruby and for writing
94
- configuration files.
95
-
96
- </li>
97
- <li>Supports SSL and authenticated HTTP proxies.
98
-
99
- </li>
100
- <li>Full featured IRB like shell included with Readline support. You can mix
101
- Zabbix instructions with Ruby calls transparently.
102
-
103
- </li>
104
- </ul>
105
- <h2>Examples</h2>
106
- <h3>API use</h3>
107
- <p>
108
- The barebone API can be used in Ruby like this:
109
- </p>
110
- <pre class="code">
111
- <span class='rubyid_require identifier id'>require</span> <span class='string val'>&quot;rubygems&quot;</span>
112
- <span class='rubyid_require identifier id'>require</span> <span class='string val'>&quot;zabby&quot;</span>
113
- <span class='rubyid_require identifier id'>require</span> <span class='string val'>&quot;pp&quot;</span>
114
-
115
- <span class='rubyid_z identifier id'>z</span> <span class='assign token'>=</span> <span class='rubyid_Zabby constant id'>Zabby</span><span class='dot token'>.</span><span class='rubyid_init identifier id'>init</span> <span class='rubyid_do do kw'>do</span>
116
- <span class='rubyid_server identifier id'>server</span> <span class='string val'>&quot;https://monitoring.example.com&quot;</span>
117
- <span class='rubyid_user identifier id'>user</span> <span class='string val'>&quot;api_user&quot;</span>
118
- <span class='rubyid_password identifier id'>password</span> <span class='string val'>&quot;s3cr3t&quot;</span>
119
- <span class='rubyid_proxy_host identifier id'>proxy_host</span> <span class='string val'>&quot;http://10.10.10.10&quot;</span>
120
- <span class='rubyid_proxy_user identifier id'>proxy_user</span> <span class='string val'>&quot;john&quot;</span>
121
- <span class='rubyid_proxy_password identifier id'>proxy_password</span> <span class='string val'>&quot;D0e&quot;</span>
122
- <span class='rubyid_end end kw'>end</span>
123
- <span class='rubyid_z identifier id'>z</span><span class='dot token'>.</span><span class='rubyid_login identifier id'>login</span>
124
-
125
- <span class='rubyid_pp identifier id'>pp</span> <span class='rubyid_z identifier id'>z</span><span class='dot token'>.</span><span class='rubyid_connection identifier id'>connection</span><span class='dot token'>.</span><span class='rubyid_perform_request identifier id'>perform_request</span><span class='lparen token'>(</span><span class='string val'>&quot;host&quot;</span><span class='comma token'>,</span> <span class='string val'>&quot;get&quot;</span><span class='comma token'>,</span> <span class='lbrace token'>{</span> <span class='string val'>&quot;filter&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='lbrace token'>{</span> <span class='string val'>&quot;host&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;master.example.com&quot;</span> <span class='rbrace token'>}</span> <span class='rbrace token'>}</span><span class='rparen token'>)</span>
126
- <span class='rubyid_pp identifier id'>pp</span> <span class='rubyid_z identifier id'>z</span><span class='dot token'>.</span><span class='rubyid_connection identifier id'>connection</span><span class='dot token'>.</span><span class='rubyid_perform_request identifier id'>perform_request</span><span class='lparen token'>(</span><span class='string val'>&quot;item&quot;</span><span class='comma token'>,</span> <span class='string val'>&quot;get&quot;</span><span class='comma token'>,</span> <span class='lbrace token'>{</span> <span class='string val'>&quot;host&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;master.example.com&quot;</span><span class='comma token'>,</span> <span class='string val'>&quot;output&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;shorten&quot;</span> <span class='rbrace token'>}</span><span class='rparen token'>)</span>
127
- </pre>
128
- <ul>
129
- <li>The <em>server</em>, <em>user</em> and <em>passord</em> are necessary.
130
-
131
- </li>
132
- <li>If you don&#8217;t provide the path to the JSON-RPC script
133
- &quot;/api_jsonrpc.php&quot; is appended to the URI automatically.
134
-
135
- </li>
136
- <li>The <em>proxy_*</em> settings are optionnal.
137
-
138
- </li>
139
- </ul>
140
- <h3>Shell</h3>
141
- <p>
142
- <b>zabbysh</b> is an simple Zabbix Shell. It runs either interactively or
143
- can be used to execute a command file with the &quot;-f CMD_FILE&quot;
144
- option.
145
- </p>
146
- <p>
147
- If the command file does not end with &quot;exit&quot; then the program
148
- drops into the shell after executing the file.
149
- </p>
150
- <p>
151
- <b>zabbysh</b> provides Readline support but does no support advanced IRB
152
- features likes multi-lines instructions.
153
- </p>
154
- <p>
155
- <b>zabbyrb</b> is another Zabbix Shell based on <b>IRB</b>. It provides the
156
- whole power of IRB but may be less stable than zabbysh because the IRB API
157
- is poorly documented and hard to use.
158
- </p>
159
- <h4>Interactive shell</h4>
160
- <pre class="code">
161
- <span class='comment val'># zabbysh</span>
162
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_server identifier id'>server</span> <span class='string val'>&quot;https://monitoring.example.com&quot;</span>
163
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_user identifier id'>user</span> <span class='string val'>&quot;api_user&quot;</span>
164
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_password identifier id'>password</span> <span class='string val'>&quot;s3cr3t&quot;</span>
165
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_host identifier id'>proxy_host</span> <span class='string val'>&quot;http://10.10.10.10&quot;</span>
166
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_user identifier id'>proxy_user</span> <span class='string val'>&quot;john&quot;</span>
167
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_password identifier id'>proxy_password</span> <span class='string val'>&quot;D0e&quot;</span>
168
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_login identifier id'>login</span>
169
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_puts identifier id'>puts</span> <span class='rubyid_logged_in? fid id'>logged_in?</span>
170
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_host identifier id'>host</span><span class='dot token'>.</span><span class='rubyid_get identifier id'>get</span> <span class='string val'>&quot;filter&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='lbrace token'>{</span> <span class='string val'>&quot;host&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;monitor.example.com&quot;</span> <span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='string val'>&quot;output&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;extend&quot;</span>
171
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_item identifier id'>item</span><span class='dot token'>.</span><span class='rubyid_get identifier id'>get</span> <span class='string val'>&quot;host&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;monitor.example.com&quot;</span><span class='comma token'>,</span> <span class='string val'>&quot;output&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;refer&quot;</span>
172
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='lbrack token'>[</span><span class='dot3 op'>...</span><span class='rbrack token'>]</span>
173
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_logout identifier id'>logout</span>
174
- <span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>&gt;</span> <span class='rubyid_exit identifier id'>exit</span>
175
- </pre>
176
- <h4>Execute a command script</h4>
177
- <p>
178
- Create a file and put the same instructions as above in it, then execute
179
- <b>zabbysh</b>:
180
- </p>
181
- <pre class="code">
182
- <span class='comment val'># zabbysh --file my_zabbix_commands.txt</span>
183
- </pre>
184
- <h2>Requirements</h2>
185
- <ul>
186
- <li>Ruby 1.8.5. IT BASICALLY RUNS ANYWHERE!
187
-
188
- </li>
189
- <li>JSON library: &#8216;json&#8217; or &#8216;json_pure&#8217;
190
-
191
- </li>
192
- <li>OptionParser
193
-
194
- </li>
195
- <li>Readline (optionnal, used by the interactive shell)
196
-
197
- </li>
198
- </ul>
199
- <h2>References</h2>
200
- <ul>
201
- <li>Main web site: http://zabby.org
202
-
203
- </li>
204
- <li>GitHub projet: https://github.com/Pragmatic-Source/zabby
205
-
206
- </li>
207
- <li>RubyGems.org homepage: https://rubygems.org/gems/zabby
208
-
209
- </li>
210
- <li>Author&#8217;s company: http://www.pragmatic-source.com
211
-
212
- </li>
213
- </ul>
214
- <h2>Contributing</h2>
215
- <p>
216
- All contributions are welcome. You can either open a ticket on Github, send
217
- a pull request with a patch or send an email to the author.
218
- </p>
219
- <h2>Author</h2>
220
- <p>
221
- Farzad FARID mailto:ffarid@pragmatic-source.com
222
- </p>
223
- <h3>Thanks to</h3>
224
- <ul>
225
- <li>Jean-Hadrien Chabran (jhchabran): Advices on code design.
226
-
227
- </li>
228
- <li>Nicolas Blanco (slainer68): Advices on code design and Triple Facepalming
229
- after reading other Ruby/Zabbix code.
230
-
231
- </li>
232
- <li>Renaud Chaput (renchap): For suggesting the &quot;zabby&quot; name.
233
-
234
- </li>
235
- </ul>
236
- <h3>Sources of inspiration</h3>
237
- <ul>
238
- <li>Adam Wiggins&#8217;s Rush[https://github.com/adamwiggins/rush] for the
239
- interactive shell.
240
-
241
- </li>
242
- <li>Other Zabbix Ruby libraries (only the good parts ;) ):
243
-
244
- </li>
245
- </ul>
246
- <table>
247
- <tr><td valign="top">zabcon[http://trac.red-tux.net/]:</td><td>Zabcon is a command line interface for Zabbix written in Ruby
248
-
249
- </td></tr>
250
- <tr><td valign="top">rzabbix[http://github.com/neerfri/rzabbix]:</td><td>Zabbix API client for Ruby
251
-
252
- </td></tr>
253
- <tr><td valign="top">rubix[https://github.com/dhruvbansal/rubix]:</td><td>Rubix is a Ruby client for Zabbix
254
-
255
- </td></tr>
256
- </table>
257
- <h2>License</h2>
258
- <p>
259
- This software is release under the <b>Simplified BSD license</b>. See the
260
- LICENSE file.
261
- </p>
262
- </div></div>
263
-
264
- <div id="footer">
265
- Generated on Wed Dec 21 12:25:11 2011 by
266
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
267
- 0.7.4 (ruby-1.8.7).
268
- </div>
269
-
270
- </body>
271
- </html>
@@ -1,205 +0,0 @@
1
- function createSourceLinks() {
2
- $('.method_details_list .source_code').
3
- before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
4
- $('.toggleSource').toggle(function() {
5
- $(this).parent().nextAll('.source_code').slideDown(100);
6
- $(this).text("Hide source");
7
- },
8
- function() {
9
- $(this).parent().nextAll('.source_code').slideUp(100);
10
- $(this).text("View source");
11
- });
12
- }
13
-
14
- function createDefineLinks() {
15
- var tHeight = 0;
16
- $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
17
- $('.toggleDefines').toggle(function() {
18
- tHeight = $(this).parent().prev().height();
19
- $(this).prev().show();
20
- $(this).parent().prev().height($(this).parent().height());
21
- $(this).text("(less)");
22
- },
23
- function() {
24
- $(this).prev().hide();
25
- $(this).parent().prev().height(tHeight);
26
- $(this).text("more...");
27
- });
28
- }
29
-
30
- function createFullTreeLinks() {
31
- var tHeight = 0;
32
- $('.inheritanceTree').toggle(function() {
33
- tHeight = $(this).parent().prev().height();
34
- $(this).parent().toggleClass('showAll');
35
- $(this).text("(hide)");
36
- $(this).parent().prev().height($(this).parent().height());
37
- },
38
- function() {
39
- $(this).parent().toggleClass('showAll');
40
- $(this).parent().prev().height(tHeight);
41
- $(this).text("show all");
42
- });
43
- }
44
-
45
- function fixBoxInfoHeights() {
46
- $('dl.box dd.r1, dl.box dd.r2').each(function() {
47
- $(this).prev().height($(this).height());
48
- });
49
- }
50
-
51
- function searchFrameLinks() {
52
- $('#method_list_link').click(function() {
53
- toggleSearchFrame(this, relpath + 'method_list.html');
54
- });
55
-
56
- $('#class_list_link').click(function() {
57
- toggleSearchFrame(this, relpath + 'class_list.html');
58
- });
59
-
60
- $('#file_list_link').click(function() {
61
- toggleSearchFrame(this, relpath + 'file_list.html');
62
- });
63
- }
64
-
65
- function toggleSearchFrame(id, link) {
66
- var frame = $('#search_frame');
67
- $('#search a').removeClass('active').addClass('inactive');
68
- if (frame.attr('src') == link && frame.css('display') != "none") {
69
- frame.slideUp(100);
70
- $('#search a').removeClass('active inactive');
71
- }
72
- else {
73
- $(id).addClass('active').removeClass('inactive');
74
- frame.attr('src', link).slideDown(100);
75
- }
76
- }
77
-
78
- function linkSummaries() {
79
- $('.summary_signature').click(function() {
80
- document.location = $(this).find('a').attr('href');
81
- });
82
- }
83
-
84
- function framesInit() {
85
- if (window.top.frames.main) {
86
- document.body.className = 'frames';
87
- $('#menu .noframes a').attr('href', document.location);
88
- $('html head title', window.parent.document).text($('html head title').text());
89
- }
90
- }
91
-
92
- function keyboardShortcuts() {
93
- if (window.top.frames.main) return;
94
- $(document).keypress(function(evt) {
95
- if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
96
- if (typeof evt.target !== "undefined" &&
97
- (evt.target.nodeName == "INPUT" ||
98
- evt.target.nodeName == "TEXTAREA")) return;
99
- switch (evt.charCode) {
100
- case 67: case 99: $('#class_list_link').click(); break; // 'c'
101
- case 77: case 109: $('#method_list_link').click(); break; // 'm'
102
- case 70: case 102: $('#file_list_link').click(); break; // 'f'
103
- default: break;
104
- }
105
- });
106
- }
107
-
108
- function summaryToggle() {
109
- $('.summary_toggle').click(function() {
110
- localStorage.summaryCollapsed = $(this).text();
111
- $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
112
- var next = $(this).parent().parent().nextAll('ul.summary').first();
113
- if (next.hasClass('compact')) {
114
- next.toggle();
115
- next.nextAll('ul.summary').first().toggle();
116
- }
117
- else if (next.hasClass('summary')) {
118
- var list = $('<ul class="summary compact" />');
119
- list.html(next.html());
120
- list.find('.summary_desc, .note').remove();
121
- list.find('a').each(function() {
122
- $(this).html($(this).find('strong').html());
123
- $(this).parent().html($(this)[0].outerHTML);
124
- });
125
- next.before(list);
126
- next.toggle();
127
- }
128
- return false;
129
- });
130
- if (localStorage) {
131
- if (localStorage.summaryCollapsed == "collapse") $('.summary_toggle').click();
132
- else localStorage.summaryCollapsed = "expand";
133
- }
134
- }
135
-
136
- function fixOutsideWorldLinks() {
137
- $('a').each(function() {
138
- if (window.location.host != this.host) this.target = '_parent';
139
- });
140
- }
141
-
142
- function generateTOC() {
143
- if ($('#filecontents').length === 0) return;
144
- var _toc = $('<ol class="top"></ol>');
145
- var show = false;
146
- var toc = _toc;
147
- var counter = 0;
148
- var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
149
- var i;
150
- if ($('#filecontents h1').length > 1) tags.unshift('h1');
151
- for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
152
- var lastTag = parseInt(tags[0][1], 10);
153
- $(tags.join(', ')).each(function() {
154
- if (this.id == "filecontents") return;
155
- show = true;
156
- var thisTag = parseInt(this.tagName[1], 10);
157
- if (this.id.length === 0) {
158
- var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
159
- if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
160
- this.id = proposedId;
161
- }
162
- if (thisTag > lastTag) {
163
- for (i = 0; i < thisTag - lastTag; i++) {
164
- var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
165
- }
166
- }
167
- if (thisTag < lastTag) {
168
- for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
169
- }
170
- toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
171
- lastTag = thisTag;
172
- });
173
- if (!show) return;
174
- html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
175
- $('#content').prepend(html);
176
- $('#toc').append(_toc);
177
- $('#toc .hide_toc').toggle(function() {
178
- $('#toc .top').slideUp('fast');
179
- $('#toc').toggleClass('hidden');
180
- $('#toc .title small').toggle();
181
- }, function() {
182
- $('#toc .top').slideDown('fast');
183
- $('#toc').toggleClass('hidden');
184
- $('#toc .title small').toggle();
185
- });
186
- $('#toc .float_toc').toggle(function() {
187
- $(this).text('float');
188
- $('#toc').toggleClass('nofloat');
189
- }, function() {
190
- $(this).text('left');
191
- $('#toc').toggleClass('nofloat');
192
- });
193
- }
194
-
195
- $(framesInit);
196
- $(createSourceLinks);
197
- $(createDefineLinks);
198
- $(createFullTreeLinks);
199
- $(fixBoxInfoHeights);
200
- $(searchFrameLinks);
201
- $(linkSummaries);
202
- $(keyboardShortcuts);
203
- $(summaryToggle);
204
- $(fixOutsideWorldLinks);
205
- $(generateTOC);