siffer 0.0.5 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +1 -1
- data/README +93 -0
- data/lib/siffer.rb +13 -16
- data/lib/siffer/agent.rb +39 -31
- data/lib/siffer/core_ext/hash.rb +15 -0
- data/lib/siffer/messages.rb +38 -4
- data/lib/siffer/messages/ack.rb +160 -35
- data/lib/siffer/messages/event.rb +20 -0
- data/lib/siffer/messages/message.rb +47 -58
- data/lib/siffer/messages/provide.rb +25 -0
- data/lib/siffer/messages/provision.rb +17 -0
- data/lib/siffer/messages/register.rb +42 -52
- data/lib/siffer/messages/request.rb +138 -0
- data/lib/siffer/messages/response.rb +48 -0
- data/lib/siffer/messages/subscribe.rb +17 -0
- data/lib/siffer/messages/system_control.rb +94 -0
- data/lib/siffer/models.rb +1 -0
- data/lib/siffer/models/address.rb +39 -0
- metadata +25 -146
- data/README.rdoc +0 -65
- data/Rakefile +0 -64
- data/bin/siffer +0 -71
- data/doc/SIF ImplementationSpecification.pdf +0 -0
- data/doc/rdoc/classes/Siffer.html +0 -259
- data/doc/rdoc/classes/Siffer/Agent.html +0 -177
- data/doc/rdoc/classes/Siffer/Container.html +0 -165
- data/doc/rdoc/classes/Siffer/Messages.html +0 -81
- data/doc/rdoc/classes/Siffer/Messages/Ack.html +0 -115
- data/doc/rdoc/classes/Siffer/Messages/Acl.html +0 -83
- data/doc/rdoc/classes/Siffer/Messages/Error.html +0 -157
- data/doc/rdoc/classes/Siffer/Messages/Message.html +0 -235
- data/doc/rdoc/classes/Siffer/Messages/Message/Header.html +0 -107
- data/doc/rdoc/classes/Siffer/Messages/Register.html +0 -154
- data/doc/rdoc/classes/Siffer/Messages/RequestBody.html +0 -185
- data/doc/rdoc/classes/Siffer/Messages/Status.html +0 -156
- data/doc/rdoc/classes/Siffer/Messaging.html +0 -212
- data/doc/rdoc/classes/Siffer/Protocol.html +0 -254
- data/doc/rdoc/classes/Siffer/Protocol/NonPostRequest.html +0 -54
- data/doc/rdoc/classes/Siffer/Protocol/UnknownPath.html +0 -54
- data/doc/rdoc/classes/Siffer/Registration.html +0 -251
- data/doc/rdoc/classes/Siffer/Request.html +0 -103
- data/doc/rdoc/classes/Siffer/RequestLogger.html +0 -109
- data/doc/rdoc/classes/Siffer/Response.html +0 -91
- data/doc/rdoc/classes/Siffer/Server.html +0 -156
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/LICENSE.html +0 -76
- data/doc/rdoc/files/README_rdoc.html +0 -131
- data/doc/rdoc/files/lib/siffer/agent_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/container_rb.html +0 -57
- data/doc/rdoc/files/lib/siffer/messages/ack_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/acl_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/error_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/message_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/register_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/request_body_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages/status_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/messages_rb.html +0 -63
- data/doc/rdoc/files/lib/siffer/messaging_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/protocol_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/registration_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/request_logger_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/request_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/response_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer/server_rb.html +0 -49
- data/doc/rdoc/files/lib/siffer_rb.html +0 -64
- data/doc/rdoc/fr_class_index.html +0 -25
- data/doc/rdoc/fr_file_index.html +0 -39
- data/doc/rdoc/fr_method_index.html +0 -4539
- data/doc/rdoc/index.html +0 -15
- data/doc/rdoc/rdoc-style.css +0 -319
- data/lib/siffer/container.rb +0 -94
- data/lib/siffer/messages/acl.rb +0 -25
- data/lib/siffer/messages/error.rb +0 -174
- data/lib/siffer/messages/request_body.rb +0 -66
- data/lib/siffer/messages/status.rb +0 -55
- data/lib/siffer/messaging.rb +0 -99
- data/lib/siffer/protocol.rb +0 -164
- data/lib/siffer/registration.rb +0 -87
- data/lib/siffer/request.rb +0 -28
- data/lib/siffer/request_logger.rb +0 -32
- data/lib/siffer/response.rb +0 -26
- data/lib/siffer/server.rb +0 -42
- data/spec/agent_spec.rb +0 -48
- data/spec/cli_spec.rb +0 -40
- data/spec/container_spec.rb +0 -103
- data/spec/default_agent +0 -6
- data/spec/default_server +0 -5
- data/spec/message_specs/ack_spec.rb +0 -28
- data/spec/message_specs/error_spec.rb +0 -24
- data/spec/message_specs/header_spec.rb +0 -25
- data/spec/message_specs/message_spec.rb +0 -57
- data/spec/message_specs/register_spec.rb +0 -86
- data/spec/message_specs/request_body_spec.rb +0 -58
- data/spec/message_specs/status_spec.rb +0 -25
- data/spec/messaging_spec.rb +0 -85
- data/spec/protocol_spec.rb +0 -50
- data/spec/registration_spec.rb +0 -33
- data/spec/request_logger_spec.rb +0 -28
- data/spec/request_spec.rb +0 -25
- data/spec/response_spec.rb +0 -24
- data/spec/server_spec.rb +0 -30
- data/spec/spec_helper.rb +0 -35
@@ -1,103 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>Class: Siffer::Request [Siffer == h3o(software) SIF]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../.././rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Class</span>
|
30
|
-
Siffer::Request
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../../files/lib/siffer/request_rb.html">lib/siffer/request.rb</a>
|
35
|
-
</li>
|
36
|
-
</ol>
|
37
|
-
<div class='parent'>
|
38
|
-
Parent:
|
39
|
-
<strong>Rack::Request</strong>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
<div id='content'>
|
43
|
-
<div id='text'>
|
44
|
-
<div id='description'>
|
45
|
-
<p>
|
46
|
-
<a href="Request.html">Request</a> represents each message received by the
|
47
|
-
<a href="Server.html">Server</a> or <a href="Agent.html">Agent</a> in <a
|
48
|
-
href="../Siffer.html">Siffer</a>.
|
49
|
-
</p>
|
50
|
-
</div>
|
51
|
-
<div id='method-list'>
|
52
|
-
<h2>Methods</h2>
|
53
|
-
<h3>public instance</h3>
|
54
|
-
<ol>
|
55
|
-
<li><a href="#M000069">message</a></li>
|
56
|
-
<li><a href="#M000070">original</a></li>
|
57
|
-
</ol>
|
58
|
-
</div>
|
59
|
-
<div id='section'>
|
60
|
-
<div id='methods'>
|
61
|
-
<h2>Public instance methods</h2>
|
62
|
-
<div class='public-instance method' id='method-M000069'>
|
63
|
-
<a name='M000069'> </a>
|
64
|
-
<div class='synopsis'>
|
65
|
-
<span class='name'>message</span>
|
66
|
-
<span class='arguments'>()</span>
|
67
|
-
</div>
|
68
|
-
<div class='description'>
|
69
|
-
<p>
|
70
|
-
Provides access to the request message in <a
|
71
|
-
href="Messages/Message.html">Siffer::Messages::Message</a> format.
|
72
|
-
</p>
|
73
|
-
</div>
|
74
|
-
<div class='source'>
|
75
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000069-source'); return false">
|
76
|
-
[show source]
|
77
|
-
</a>
|
78
|
-
<pre id='M000069-source'> <span class="ruby-comment cmt"># File lib/siffer/request.rb, line 8</span>
 8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">message</span>
 9: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">StringIO</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">pos</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">length</span>
10: <span class="ruby-identifier">body</span>.<span class="ruby-identifier">rewind</span>
11: <span class="ruby-keyword kw">end</span>
12: <span class="ruby-constant">Siffer</span><span class="ruby-operator">::</span><span class="ruby-constant">Messages</span><span class="ruby-operator">::</span><span class="ruby-constant">RequestBody</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">body</span>)
13: <span class="ruby-keyword kw">end</span></pre>
|
79
|
-
</div>
|
80
|
-
</div>
|
81
|
-
<div class='public-instance method' id='method-M000070'>
|
82
|
-
<a name='M000070'> </a>
|
83
|
-
<div class='synopsis'>
|
84
|
-
<span class='name'>original</span>
|
85
|
-
<span class='arguments'>()</span>
|
86
|
-
</div>
|
87
|
-
<div class='description'>
|
88
|
-
<p>
|
89
|
-
Alias for <a href="Request.html#M000069">message</a>
|
90
|
-
</p>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
</div>
|
94
|
-
</div>
|
95
|
-
</div>
|
96
|
-
</div>
|
97
|
-
<div id='footer-push'></div>
|
98
|
-
</div>
|
99
|
-
<div id='footer'>
|
100
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
101
|
-
</div>
|
102
|
-
</body>
|
103
|
-
</html>
|
@@ -1,109 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>Class: Siffer::RequestLogger [Siffer == h3o(software) SIF]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../.././rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Class</span>
|
30
|
-
Siffer::RequestLogger
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../../files/lib/siffer/request_logger_rb.html">lib/siffer/request_logger.rb</a>
|
35
|
-
</li>
|
36
|
-
</ol>
|
37
|
-
<div class='parent'>
|
38
|
-
Parent:
|
39
|
-
<strong>Object</strong>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
<div id='content'>
|
43
|
-
<div id='text'>
|
44
|
-
<div id='method-list'>
|
45
|
-
<h2>Methods</h2>
|
46
|
-
<h3>public class</h3>
|
47
|
-
<ol>
|
48
|
-
<li><a href="#M000057">new</a></li>
|
49
|
-
</ol>
|
50
|
-
<h3>public instance</h3>
|
51
|
-
<ol>
|
52
|
-
<li><a href="#M000058">call</a></li>
|
53
|
-
<li><a href="#M000059">log_request</a></li>
|
54
|
-
</ol>
|
55
|
-
</div>
|
56
|
-
<div id='section'>
|
57
|
-
<div id='methods'>
|
58
|
-
<h2>Public class methods</h2>
|
59
|
-
<div class='public-class method' id='method-M000057'>
|
60
|
-
<a name='M000057'> </a>
|
61
|
-
<div class='synopsis'>
|
62
|
-
<span class='name'>new</span>
|
63
|
-
<span class='arguments'>(app, log=nil)</span>
|
64
|
-
</div>
|
65
|
-
<div class='source'>
|
66
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000057-source'); return false">
|
67
|
-
[show source]
|
68
|
-
</a>
|
69
|
-
<pre id='M000057-source'> <span class="ruby-comment cmt"># File lib/siffer/request_logger.rb, line 3</span>
3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">app</span>, <span class="ruby-identifier">log</span>=<span class="ruby-keyword kw">nil</span>)
4: <span class="ruby-ivar">@app</span> = <span class="ruby-identifier">app</span>
5: <span class="ruby-ivar">@log</span> = <span class="ruby-identifier">log</span> <span class="ruby-operator">||</span> <span class="ruby-constant">STDERR</span>
6: <span class="ruby-keyword kw">end</span></pre>
|
70
|
-
</div>
|
71
|
-
</div>
|
72
|
-
<h2>Public instance methods</h2>
|
73
|
-
<div class='public-instance method' id='method-M000058'>
|
74
|
-
<a name='M000058'> </a>
|
75
|
-
<div class='synopsis'>
|
76
|
-
<span class='name'>call</span>
|
77
|
-
<span class='arguments'>(env)</span>
|
78
|
-
</div>
|
79
|
-
<div class='source'>
|
80
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000058-source'); return false">
|
81
|
-
[show source]
|
82
|
-
</a>
|
83
|
-
<pre id='M000058-source'> <span class="ruby-comment cmt"># File lib/siffer/request_logger.rb, line 8</span>
 8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>)
 9: <span class="ruby-ivar">@msg</span> = <span class="ruby-identifier">env</span>[<span class="ruby-value str">"rack.input"</span>].<span class="ruby-identifier">read</span>
10: <span class="ruby-identifier">log_request</span>
11: <span class="ruby-identifier">env</span>[<span class="ruby-value str">"rack.input"</span>].<span class="ruby-identifier">rewind</span>
12: <span class="ruby-ivar">@app</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>)
13: <span class="ruby-keyword kw">end</span></pre>
|
84
|
-
</div>
|
85
|
-
</div>
|
86
|
-
<div class='public-instance method' id='method-M000059'>
|
87
|
-
<a name='M000059'> </a>
|
88
|
-
<div class='synopsis'>
|
89
|
-
<span class='name'>log_request</span>
|
90
|
-
<span class='arguments'>()</span>
|
91
|
-
</div>
|
92
|
-
<div class='source'>
|
93
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000059-source'); return false">
|
94
|
-
[show source]
|
95
|
-
</a>
|
96
|
-
<pre id='M000059-source'> <span class="ruby-comment cmt"># File lib/siffer/request_logger.rb, line 15</span>
15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_request</span>
16: <span class="ruby-ivar">@now</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
17: <span class="ruby-identifier">message</span> = <span class="ruby-constant">Siffer</span><span class="ruby-operator">::</span><span class="ruby-constant">Messages</span><span class="ruby-operator">::</span><span class="ruby-constant">RequestBody</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-ivar">@msg</span>).<span class="ruby-identifier">type</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-value str">"Unknown"</span>
18: <span class="ruby-identifier">host</span> = <span class="ruby-constant">Siffer</span><span class="ruby-operator">::</span><span class="ruby-constant">Messages</span><span class="ruby-operator">::</span><span class="ruby-constant">RequestBody</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-ivar">@msg</span>).<span class="ruby-identifier">source_id</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-value str">"Unknown Source"</span>
19: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">host</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">host</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span> 
20: <span class="ruby-identifier">host</span> = <span class="ruby-value str">"Unknown Source"</span>
21: <span class="ruby-keyword kw">end</span>
22: <span class="ruby-ivar">@log</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">%{%s request made by %s on %s at %s\n}</span> <span class="ruby-operator">%</span>
23: [
24: <span class="ruby-identifier">message</span>,
25: <span class="ruby-identifier">host</span>,
26: <span class="ruby-ivar">@now</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">"%b/%d/%Y"</span>),
27: <span class="ruby-ivar">@now</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">"%H:%M:%S"</span>)
28: ]
29: <span class="ruby-keyword kw">end</span></pre>
|
97
|
-
</div>
|
98
|
-
</div>
|
99
|
-
</div>
|
100
|
-
</div>
|
101
|
-
</div>
|
102
|
-
</div>
|
103
|
-
<div id='footer-push'></div>
|
104
|
-
</div>
|
105
|
-
<div id='footer'>
|
106
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
107
|
-
</div>
|
108
|
-
</body>
|
109
|
-
</html>
|
@@ -1,91 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>Class: Siffer::Response [Siffer == h3o(software) SIF]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../.././rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Class</span>
|
30
|
-
Siffer::Response
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../../files/lib/siffer/response_rb.html">lib/siffer/response.rb</a>
|
35
|
-
</li>
|
36
|
-
</ol>
|
37
|
-
<div class='parent'>
|
38
|
-
Parent:
|
39
|
-
<strong>Rack::Response</strong>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
<div id='content'>
|
43
|
-
<div id='text'>
|
44
|
-
<div id='method-list'>
|
45
|
-
<h2>Methods</h2>
|
46
|
-
<h3>public class</h3>
|
47
|
-
<ol>
|
48
|
-
<li><a href="#M000061">from</a></li>
|
49
|
-
<li><a href="#M000060">new</a></li>
|
50
|
-
</ol>
|
51
|
-
</div>
|
52
|
-
<div id='section'>
|
53
|
-
<div id='methods'>
|
54
|
-
<h2>Public class methods</h2>
|
55
|
-
<div class='public-class method' id='method-M000061'>
|
56
|
-
<a name='M000061'> </a>
|
57
|
-
<div class='synopsis'>
|
58
|
-
<span class='name'>from</span>
|
59
|
-
<span class='arguments'>(url,data)</span>
|
60
|
-
</div>
|
61
|
-
<div class='source'>
|
62
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000061-source'); return false">
|
63
|
-
[show source]
|
64
|
-
</a>
|
65
|
-
<pre id='M000061-source'> <span class="ruby-comment cmt"># File lib/siffer/response.rb, line 10</span>
10: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">from</span>(<span class="ruby-identifier">url</span>,<span class="ruby-identifier">data</span>)
11: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">url</span>)
12: <span class="ruby-keyword kw">begin</span>
13: <span class="ruby-identifier">response</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">start</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">host</span>,<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">port</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">http</span><span class="ruby-operator">|</span>
14: <span class="ruby-identifier">post</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span><span class="ruby-operator">::</span><span class="ruby-constant">Post</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">uri</span>.<span class="ruby-identifier">path</span>, {})
15: <span class="ruby-identifier">post</span>.<span class="ruby-identifier">body</span> = (<span class="ruby-identifier">data</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">"read"</span>)) <span class="ruby-operator">?</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">read</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">data</span>
16: <span class="ruby-identifier">post</span>.<span class="ruby-identifier">content_type</span> = <span class="ruby-constant">Siffer</span><span class="ruby-operator">::</span><span class="ruby-constant">Messaging</span><span class="ruby-operator">::</span><span class="ruby-constant">MIME_TYPES</span>[<span class="ruby-value str">"appxml"</span>]
17: <span class="ruby-identifier">http</span>.<span class="ruby-identifier">request</span>(<span class="ruby-identifier">post</span>)
18: }
19: <span class="ruby-constant">Response</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">response</span>.<span class="ruby-identifier">body</span>,<span class="ruby-identifier">response</span>.<span class="ruby-identifier">code</span>.<span class="ruby-identifier">to_i</span>,<span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">to_hash</span>)
20: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ECONNREFUSED</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
21: <span class="ruby-constant">Response</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>, <span class="ruby-value">500</span>, {})
22: <span class="ruby-keyword kw">end</span>
23: <span class="ruby-keyword kw">end</span></pre>
|
66
|
-
</div>
|
67
|
-
</div>
|
68
|
-
<div class='public-class method' id='method-M000060'>
|
69
|
-
<a name='M000060'> </a>
|
70
|
-
<div class='synopsis'>
|
71
|
-
<span class='name'>new</span>
|
72
|
-
<span class='arguments'>(body=[], status=200, header={}, &block)</span>
|
73
|
-
</div>
|
74
|
-
<div class='source'>
|
75
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000060-source'); return false">
|
76
|
-
[show source]
|
77
|
-
</a>
|
78
|
-
<pre id='M000060-source'> <span class="ruby-comment cmt"># File lib/siffer/response.rb, line 5</span>
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">body</span>=[], <span class="ruby-identifier">status</span>=<span class="ruby-value">200</span>, <span class="ruby-identifier">header</span>={}, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
6: <span class="ruby-identifier">header</span>[<span class="ruby-value str">"Content-Type"</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">Siffer</span><span class="ruby-operator">::</span><span class="ruby-constant">Messaging</span><span class="ruby-operator">::</span><span class="ruby-constant">MIME_TYPES</span>[<span class="ruby-value str">"appxmlencoded"</span>]
7: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">body</span>,<span class="ruby-identifier">status</span>,<span class="ruby-identifier">header</span>,<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
8: <span class="ruby-keyword kw">end</span></pre>
|
79
|
-
</div>
|
80
|
-
</div>
|
81
|
-
</div>
|
82
|
-
</div>
|
83
|
-
</div>
|
84
|
-
</div>
|
85
|
-
<div id='footer-push'></div>
|
86
|
-
</div>
|
87
|
-
<div id='footer'>
|
88
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
89
|
-
</div>
|
90
|
-
</body>
|
91
|
-
</html>
|
@@ -1,156 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
2
|
-
<html lang='en'>
|
3
|
-
<head>
|
4
|
-
<title>Class: Siffer::Server [Siffer == h3o(software) SIF]</title>
|
5
|
-
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
|
6
|
-
<link href='../.././rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
|
7
|
-
<script type='text/javascript'>
|
8
|
-
//<![CDATA[
|
9
|
-
function popupCode(url) {
|
10
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
11
|
-
}
|
12
|
-
|
13
|
-
function toggleCode(id) {
|
14
|
-
var code = document.getElementById(id)
|
15
|
-
|
16
|
-
code.style.display = code.style.display != 'block' ? 'block' : 'none'
|
17
|
-
return true
|
18
|
-
}
|
19
|
-
|
20
|
-
// Make codeblocks hidden by default
|
21
|
-
document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
|
22
|
-
//]]>
|
23
|
-
</script>
|
24
|
-
</head>
|
25
|
-
<body class='page'>
|
26
|
-
<div class='class' id='wrapper'>
|
27
|
-
<div class='header'>
|
28
|
-
<h1 class='name'>
|
29
|
-
<span class='type'>Class</span>
|
30
|
-
Siffer::Server
|
31
|
-
</h1>
|
32
|
-
<ol class='paths'>
|
33
|
-
<li>
|
34
|
-
<a href="../../files/lib/siffer/server_rb.html">lib/siffer/server.rb</a>
|
35
|
-
</li>
|
36
|
-
</ol>
|
37
|
-
<div class='parent'>
|
38
|
-
Parent:
|
39
|
-
<strong>Object</strong>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
<div id='content'>
|
43
|
-
<div id='text'>
|
44
|
-
<div id='description'>
|
45
|
-
<p>
|
46
|
-
Zone Integration <a href="Server.html">Server</a> Facilitates communication
|
47
|
-
between Agents. Acts as a central point where Agents can send their
|
48
|
-
events/requests and receive the response from other Agents.
|
49
|
-
</p>
|
50
|
-
</div>
|
51
|
-
<div id='method-list'>
|
52
|
-
<h2>Methods</h2>
|
53
|
-
<h3>public class</h3>
|
54
|
-
<ol>
|
55
|
-
<li><a href="#M000067">new</a></li>
|
56
|
-
</ol>
|
57
|
-
<h3>public instance</h3>
|
58
|
-
<ol>
|
59
|
-
<li><a href="#M000068">call</a></li>
|
60
|
-
</ol>
|
61
|
-
</div>
|
62
|
-
<div id='context'>
|
63
|
-
<div id='includes'>
|
64
|
-
<h2>Included modules</h2>
|
65
|
-
<ol>
|
66
|
-
<li><a href="Protocol.html">Siffer::Protocol</a></li>
|
67
|
-
<li><a href="Registration.html">Siffer::Registration</a></li>
|
68
|
-
</ol>
|
69
|
-
</div>
|
70
|
-
</div>
|
71
|
-
<div id='section'>
|
72
|
-
<div id='attribute-list'>
|
73
|
-
<h2 class='section-bar'>Attributes</h2>
|
74
|
-
<div class='name-list'>
|
75
|
-
<table>
|
76
|
-
<tr class='top-aligned-row context-row'>
|
77
|
-
<td class='context-item-name'>agents</td>
|
78
|
-
<td class='context-item-value'>[R]</td>
|
79
|
-
<td class='context-item-desc'></td>
|
80
|
-
</tr>
|
81
|
-
<tr class='top-aligned-row context-row'>
|
82
|
-
<td class='context-item-name'>host</td>
|
83
|
-
<td class='context-item-value'>[R]</td>
|
84
|
-
<td class='context-item-desc'></td>
|
85
|
-
</tr>
|
86
|
-
<tr class='top-aligned-row context-row'>
|
87
|
-
<td class='context-item-name'>min_buffer</td>
|
88
|
-
<td class='context-item-value'>[R]</td>
|
89
|
-
<td class='context-item-desc'></td>
|
90
|
-
</tr>
|
91
|
-
<tr class='top-aligned-row context-row'>
|
92
|
-
<td class='context-item-name'>name</td>
|
93
|
-
<td class='context-item-value'>[R]</td>
|
94
|
-
<td class='context-item-desc'></td>
|
95
|
-
</tr>
|
96
|
-
<tr class='top-aligned-row context-row'>
|
97
|
-
<td class='context-item-name'>port</td>
|
98
|
-
<td class='context-item-value'>[R]</td>
|
99
|
-
<td class='context-item-desc'></td>
|
100
|
-
</tr>
|
101
|
-
</table>
|
102
|
-
</div>
|
103
|
-
</div>
|
104
|
-
<div id='methods'>
|
105
|
-
<h2>Public class methods</h2>
|
106
|
-
<div class='public-class method' id='method-M000067'>
|
107
|
-
<a name='M000067'> </a>
|
108
|
-
<div class='synopsis'>
|
109
|
-
<span class='name'>new</span>
|
110
|
-
<span class='arguments'>(options = {})</span>
|
111
|
-
</div>
|
112
|
-
<div class='description'>
|
113
|
-
<pre>options Parameter</pre>
|
114
|
-
<p>
|
115
|
-
name = The name of the ZIS host = The host this instance is started on port
|
116
|
-
= The port to connect to this ZIS admin = The administration site managing
|
117
|
-
this ZIS min_buffer = The minimum buffer size this ZIS will facilitate
|
118
|
-
</p>
|
119
|
-
</div>
|
120
|
-
<div class='source'>
|
121
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000067-source'); return false">
|
122
|
-
[show source]
|
123
|
-
</a>
|
124
|
-
<pre id='M000067-source'> <span class="ruby-comment cmt"># File lib/siffer/server.rb, line 19</span>
19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span> = {})
20: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"Administration URL required"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">"admin"</span>
21: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">"name"</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">"Default Server"</span>
22: <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">"host"</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">"localhost"</span>
23: <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">"port"</span>] <span class="ruby-operator">||</span> <span class="ruby-value">8300</span>
24: <span class="ruby-ivar">@min_buffer</span> = <span class="ruby-identifier">options</span>[<span class="ruby-value str">"min_buffer"</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1024</span>
25: <span class="ruby-ivar">@agents</span> = {}
26: <span class="ruby-keyword kw">end</span></pre>
|
125
|
-
</div>
|
126
|
-
</div>
|
127
|
-
<h2>Public instance methods</h2>
|
128
|
-
<div class='public-instance method' id='method-M000068'>
|
129
|
-
<a name='M000068'> </a>
|
130
|
-
<div class='synopsis'>
|
131
|
-
<span class='name'>call</span>
|
132
|
-
<span class='arguments'>(env)</span>
|
133
|
-
</div>
|
134
|
-
<div class='description'>
|
135
|
-
<p>
|
136
|
-
Process the request with all the SIF protocols
|
137
|
-
</p>
|
138
|
-
</div>
|
139
|
-
<div class='source'>
|
140
|
-
<a class='source-toggle' href='#' onclick="toggleCode('M000068-source'); return false">
|
141
|
-
[show source]
|
142
|
-
</a>
|
143
|
-
<pre id='M000068-source'> <span class="ruby-comment cmt"># File lib/siffer/server.rb, line 29</span>
29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>)
30: <span class="ruby-identifier">with_each_request</span>(<span class="ruby-identifier">env</span>) <span class="ruby-keyword kw">do</span>
31: <span class="ruby-identifier">process_registration</span>
32: <span class="ruby-comment cmt"># process_provision MAYBE SAME MODULE</span>
33: <span class="ruby-comment cmt"># process_subscription MAYBE SAME MODULE</span>
34: <span class="ruby-comment cmt"># process_event (server process not agent) REDIRECTS</span>
35: <span class="ruby-comment cmt"># process_request (server process not agent) REDIRECTS</span>
36: <span class="ruby-comment cmt"># process_response (server process not agent) REDIRECTS</span>
37: <span class="ruby-keyword kw">end</span>
38: <span class="ruby-keyword kw">end</span></pre>
|
144
|
-
</div>
|
145
|
-
</div>
|
146
|
-
</div>
|
147
|
-
</div>
|
148
|
-
</div>
|
149
|
-
</div>
|
150
|
-
<div id='footer-push'></div>
|
151
|
-
</div>
|
152
|
-
<div id='footer'>
|
153
|
-
<a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
|
154
|
-
</div>
|
155
|
-
</body>
|
156
|
-
</html>
|