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.
- data/.gitignore +2 -1
- data/.yardopts +1 -0
- data/ChangeLog.rdoc +11 -0
- data/README.rdoc +35 -0
- data/Rakefile +2 -1
- data/bin/zabbysh +49 -19
- data/lib/zabby/connection.rb +5 -1
- data/lib/zabby/runner.rb +3 -2
- data/lib/zabby/version.rb +1 -1
- data/zabby.gemspec +3 -1
- metadata +13 -37
- data/doc/Zabby.html +0 -208
- data/doc/Zabby/AuthenticationError.html +0 -116
- data/doc/Zabby/Config.html +0 -414
- data/doc/Zabby/ConfigurationError.html +0 -116
- data/doc/Zabby/Connection.html +0 -1617
- data/doc/Zabby/ResponseCodeError.html +0 -116
- data/doc/Zabby/Runner.html +0 -1057
- data/doc/Zabby/ZObject.html +0 -480
- data/doc/_index.html +0 -188
- data/doc/class_list.html +0 -47
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -55
- data/doc/css/style.css +0 -322
- data/doc/file.ChangeLog.html +0 -91
- data/doc/file.LICENSE.html +0 -132
- data/doc/file.README.html +0 -271
- data/doc/file.TODO.html +0 -99
- data/doc/file_list.html +0 -58
- data/doc/frames.html +0 -13
- data/doc/index.html +0 -271
- data/doc/js/app.js +0 -205
- data/doc/js/full_list.js +0 -167
- data/doc/js/jquery.js +0 -16
- data/doc/method_list.html +0 -382
- data/doc/top-level-namespace.html +0 -103
data/doc/file.TODO.html
DELETED
@@ -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
|
-
— 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> »
|
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>
|
data/doc/file_list.html
DELETED
@@ -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>
|
data/doc/frames.html
DELETED
@@ -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>
|
data/doc/index.html
DELETED
@@ -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
|
-
— 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> »
|
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’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'>"rubygems"</span>
|
112
|
-
<span class='rubyid_require identifier id'>require</span> <span class='string val'>"zabby"</span>
|
113
|
-
<span class='rubyid_require identifier id'>require</span> <span class='string val'>"pp"</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'>"https://monitoring.example.com"</span>
|
117
|
-
<span class='rubyid_user identifier id'>user</span> <span class='string val'>"api_user"</span>
|
118
|
-
<span class='rubyid_password identifier id'>password</span> <span class='string val'>"s3cr3t"</span>
|
119
|
-
<span class='rubyid_proxy_host identifier id'>proxy_host</span> <span class='string val'>"http://10.10.10.10"</span>
|
120
|
-
<span class='rubyid_proxy_user identifier id'>proxy_user</span> <span class='string val'>"john"</span>
|
121
|
-
<span class='rubyid_proxy_password identifier id'>proxy_password</span> <span class='string val'>"D0e"</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'>"host"</span><span class='comma token'>,</span> <span class='string val'>"get"</span><span class='comma token'>,</span> <span class='lbrace token'>{</span> <span class='string val'>"filter"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='lbrace token'>{</span> <span class='string val'>"host"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"master.example.com"</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'>"item"</span><span class='comma token'>,</span> <span class='string val'>"get"</span><span class='comma token'>,</span> <span class='lbrace token'>{</span> <span class='string val'>"host"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"master.example.com"</span><span class='comma token'>,</span> <span class='string val'>"output"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"shorten"</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’t provide the path to the JSON-RPC script
|
133
|
-
"/api_jsonrpc.php" 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 "-f CMD_FILE"
|
144
|
-
option.
|
145
|
-
</p>
|
146
|
-
<p>
|
147
|
-
If the command file does not end with "exit" 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'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_server identifier id'>server</span> <span class='string val'>"https://monitoring.example.com"</span>
|
163
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_user identifier id'>user</span> <span class='string val'>"api_user"</span>
|
164
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_password identifier id'>password</span> <span class='string val'>"s3cr3t"</span>
|
165
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_host identifier id'>proxy_host</span> <span class='string val'>"http://10.10.10.10"</span>
|
166
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_user identifier id'>proxy_user</span> <span class='string val'>"john"</span>
|
167
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_set identifier id'>set</span> <span class='rubyid_proxy_password identifier id'>proxy_password</span> <span class='string val'>"D0e"</span>
|
168
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></span> <span class='rubyid_login identifier id'>login</span>
|
169
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></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'>></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'>"filter"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='lbrace token'>{</span> <span class='string val'>"host"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"monitor.example.com"</span> <span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='string val'>"output"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"extend"</span>
|
171
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></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'>"host"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"monitor.example.com"</span><span class='comma token'>,</span> <span class='string val'>"output"</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='string val'>"refer"</span>
|
172
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></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'>></span> <span class='rubyid_logout identifier id'>logout</span>
|
174
|
-
<span class='rubyid_zabby identifier id'>zabby</span><span class='gt op'>></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: ‘json’ or ‘json_pure’
|
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’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 "zabby" name.
|
233
|
-
|
234
|
-
</li>
|
235
|
-
</ul>
|
236
|
-
<h3>Sources of inspiration</h3>
|
237
|
-
<ul>
|
238
|
-
<li>Adam Wiggins’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>
|
data/doc/js/app.js
DELETED
@@ -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);
|