siffer 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +65 -0
  3. data/Rakefile +64 -0
  4. data/bin/siffer +71 -0
  5. data/doc/SIF ImplementationSpecification.pdf +0 -0
  6. data/doc/rdoc/classes/Siffer.html +374 -0
  7. data/doc/rdoc/classes/Siffer/Agent.html +296 -0
  8. data/doc/rdoc/classes/Siffer/Container.html +286 -0
  9. data/doc/rdoc/classes/Siffer/Messages.html +141 -0
  10. data/doc/rdoc/classes/Siffer/Messages/Ack.html +216 -0
  11. data/doc/rdoc/classes/Siffer/Messages/Acl.html +160 -0
  12. data/doc/rdoc/classes/Siffer/Messages/Error.html +248 -0
  13. data/doc/rdoc/classes/Siffer/Messages/Message.html +359 -0
  14. data/doc/rdoc/classes/Siffer/Messages/Message/Header.html +181 -0
  15. data/doc/rdoc/classes/Siffer/Messages/Register.html +257 -0
  16. data/doc/rdoc/classes/Siffer/Messages/RequestBody.html +300 -0
  17. data/doc/rdoc/classes/Siffer/Messages/Status.html +269 -0
  18. data/doc/rdoc/classes/Siffer/Messaging.html +331 -0
  19. data/doc/rdoc/classes/Siffer/Protocol.html +388 -0
  20. data/doc/rdoc/classes/Siffer/Protocol/NonPostRequest.html +111 -0
  21. data/doc/rdoc/classes/Siffer/Protocol/UnknownPath.html +111 -0
  22. data/doc/rdoc/classes/Siffer/Registration.html +391 -0
  23. data/doc/rdoc/classes/Siffer/Request.html +209 -0
  24. data/doc/rdoc/classes/Siffer/RequestLogger.html +211 -0
  25. data/doc/rdoc/classes/Siffer/Response.html +182 -0
  26. data/doc/rdoc/classes/Siffer/Server.html +242 -0
  27. data/doc/rdoc/created.rid +1 -0
  28. data/doc/rdoc/files/LICENSE.html +129 -0
  29. data/doc/rdoc/files/README_rdoc.html +184 -0
  30. data/doc/rdoc/files/lib/agent_rb.html +101 -0
  31. data/doc/rdoc/files/lib/container_rb.html +108 -0
  32. data/doc/rdoc/files/lib/messages/ack_rb.html +101 -0
  33. data/doc/rdoc/files/lib/messages/acl_rb.html +101 -0
  34. data/doc/rdoc/files/lib/messages/error_rb.html +101 -0
  35. data/doc/rdoc/files/lib/messages/message_rb.html +101 -0
  36. data/doc/rdoc/files/lib/messages/register_rb.html +101 -0
  37. data/doc/rdoc/files/lib/messages/request_body_rb.html +101 -0
  38. data/doc/rdoc/files/lib/messages/status_rb.html +101 -0
  39. data/doc/rdoc/files/lib/messages_rb.html +114 -0
  40. data/doc/rdoc/files/lib/messaging_rb.html +101 -0
  41. data/doc/rdoc/files/lib/protocol_rb.html +101 -0
  42. data/doc/rdoc/files/lib/registration_rb.html +101 -0
  43. data/doc/rdoc/files/lib/request_logger_rb.html +101 -0
  44. data/doc/rdoc/files/lib/request_rb.html +101 -0
  45. data/doc/rdoc/files/lib/response_rb.html +101 -0
  46. data/doc/rdoc/files/lib/server_rb.html +101 -0
  47. data/doc/rdoc/files/lib/siffer_rb.html +115 -0
  48. data/doc/rdoc/fr_class_index.html +47 -0
  49. data/doc/rdoc/fr_file_index.html +46 -0
  50. data/doc/rdoc/fr_method_index.html +96 -0
  51. data/doc/rdoc/index.html +24 -0
  52. data/doc/rdoc/rdoc-style.css +208 -0
  53. data/lib/agent.rb +43 -0
  54. data/lib/container.rb +96 -0
  55. data/lib/messages.rb +7 -0
  56. data/lib/messages/ack.rb +43 -0
  57. data/lib/messages/acl.rb +25 -0
  58. data/lib/messages/error.rb +174 -0
  59. data/lib/messages/message.rb +71 -0
  60. data/lib/messages/register.rb +60 -0
  61. data/lib/messages/request_body.rb +66 -0
  62. data/lib/messages/status.rb +55 -0
  63. data/lib/messaging.rb +96 -0
  64. data/lib/protocol.rb +159 -0
  65. data/lib/registration.rb +87 -0
  66. data/lib/request.rb +25 -0
  67. data/lib/request_logger.rb +31 -0
  68. data/lib/response.rb +26 -0
  69. data/lib/server.rb +40 -0
  70. data/lib/siffer.rb +44 -0
  71. data/spec/agent_spec.rb +53 -0
  72. data/spec/cli_spec.rb +40 -0
  73. data/spec/container_spec.rb +103 -0
  74. data/spec/default_agent +6 -0
  75. data/spec/default_server +5 -0
  76. data/spec/message_specs/ack_spec.rb +28 -0
  77. data/spec/message_specs/error_spec.rb +24 -0
  78. data/spec/message_specs/header_spec.rb +25 -0
  79. data/spec/message_specs/message_spec.rb +57 -0
  80. data/spec/message_specs/register_spec.rb +86 -0
  81. data/spec/message_specs/request_body_spec.rb +58 -0
  82. data/spec/message_specs/status_spec.rb +25 -0
  83. data/spec/messaging_spec.rb +88 -0
  84. data/spec/protocol_spec.rb +49 -0
  85. data/spec/registration_spec.rb +33 -0
  86. data/spec/request_logger_spec.rb +15 -0
  87. data/spec/request_spec.rb +10 -0
  88. data/spec/response_spec.rb +24 -0
  89. data/spec/server_spec.rb +35 -0
  90. data/spec/spec_helper.rb +26 -0
  91. metadata +191 -0
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 h3o(software)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,65 @@
1
+ = Project: Siffer - h3o(software) SIF Implementation
2
+
3
+ == Welcome to Siffer
4
+
5
+ This is the h3o(software) implementation of the SIF (School Interoperability
6
+ Framework) in Ruby. The project is Ruby based and includes all of the SIF
7
+ infrastructure (Data Model, Agents, Zone Integration Servers and even database
8
+ stores).
9
+
10
+ == Goal
11
+
12
+ The overriding goal of this project is to provide anyone in the education
13
+ industry a quick, easy and simple SIF implementation tool. The entire system
14
+ can be managed by a browser.
15
+
16
+ === Setup and Deployment
17
+
18
+ Siffer is easy to install and setup. Zone Integration Servers and Agents can be
19
+ created from the browser. Administrators will be able to manage all components
20
+ of their deployment from a command line or browser.
21
+
22
+ == Philosophy
23
+
24
+ Remove the complexity from the implementation. Make the execution and
25
+ deployment of SIF easy.
26
+
27
+ == Implementation Information (sifinfo.org)
28
+
29
+ This implementation is based on version 2.2 of the SIF Specification. The
30
+ Specification is in {PDF}[link:../SIF%20ImplementationSpecification.pdf] format
31
+ inside the doc folder.
32
+
33
+
34
+ More information here: http://sifinfo.org.
35
+
36
+ == Description of Contents
37
+
38
+ == Useage
39
+
40
+ == License
41
+
42
+ Siffer is released under the MIT License
43
+
44
+ == Installation
45
+
46
+ Siffer can be installed from the siffer gem:
47
+
48
+ % [sudo] gem install siffer
49
+
50
+ == Support
51
+
52
+ Please contact the author (mailto://clint.hill@h3osoftware.com) for support
53
+ issues. If you want to contribute do the same.
54
+
55
+ === Contributors
56
+
57
+ This project is developed by spec. Build spec tests for all of your features.
58
+ Document everything.
59
+
60
+ == Contact
61
+
62
+ - Author:: {Clint Hill} mailto://clint.hill@h3osoftware.com
63
+ - Home Page:: http://h3osoftware.com/siffer
64
+ - GitHub:: git://github.com/clinth3o/siffer.git
65
+ - RubyForge:: http://rubyforge.org/projects/siffer/
@@ -0,0 +1,64 @@
1
+ require 'rake'
2
+ require 'rake/clean'
3
+ require 'rake/gempackagetask'
4
+ require 'rake/rdoctask'
5
+ require 'spec/rake/spectask'
6
+ require 'fileutils'
7
+ include FileUtils
8
+ require File.join(File.dirname(__FILE__),"lib","siffer")
9
+ include Siffer
10
+
11
+ spec = Gem::Specification.new do |s|
12
+ s.name = "siffer"
13
+ s.version = Siffer.version
14
+ s.platform = Gem::Platform::RUBY
15
+ s.author = "Clint Hill"
16
+ s.email = "clint.hill@h3osoftware.com"
17
+ s.homepage = "http://h3osoftware.com/siffer"
18
+ s.summary = "Siffer - School Interoperability Framework by h3o(software)"
19
+ s.rubyforge_project = "siffer"
20
+ s.require_path = "lib"
21
+ s.files = %w( LICENSE README.rdoc Rakefile ) + Dir["{spec,lib,doc}/**/*"]
22
+ s.bindir = "bin"
23
+ s.executables = %w( siffer )
24
+ s.add_dependency "uuid"
25
+ s.add_dependency "rack"
26
+ s.add_dependency "hpricot"
27
+ s.add_dependency "builder"
28
+ end
29
+
30
+ Rake::GemPackageTask.new(spec) do |package|
31
+ package.gem_spec = spec
32
+ end
33
+
34
+ ##############################################################################
35
+ # rSpec
36
+ ##############################################################################
37
+ desc 'Run all specs and rcov'
38
+ task :spec => ["spec:default"]
39
+ namespace :spec do
40
+ Spec::Rake::SpecTask.new('default') do |t|
41
+ t.spec_opts = ["--format", "specdoc", "--colour"]
42
+ t.spec_files = Dir['spec/**/*_spec.rb'].sort
43
+ t.libs = ['lib']
44
+ t.rcov = true
45
+ t.rcov_opts = ["--exclude 'bin,doc,pkg,spec,#{Gem::path.join(',')}'"]
46
+ end
47
+ end
48
+
49
+ ##############################################################################
50
+ # Documentation
51
+ ##############################################################################
52
+ task :doc => ["doc:rdoc"]
53
+ namespace :doc do
54
+ Rake::RDocTask.new do |rdoc|
55
+ files = ["README.rdoc","LICENSE","lib/**/*.rb"]
56
+ rdoc.rdoc_files.add(files)
57
+ rdoc.main = "README.rdoc"
58
+ rdoc.title = "Siffer == h3o(software) SIF"
59
+ rdoc.rdoc_dir = "doc/rdoc"
60
+ rdoc.options << "--line-numbers" << "--inline-source"
61
+ end
62
+ end
63
+
64
+
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'optparse'
5
+ require 'yaml'
6
+ # For test purposes rescue the require so we can get the local lib
7
+ begin
8
+ require 'siffer'
9
+ rescue LoadError
10
+ require 'lib/siffer'
11
+ end
12
+ options = {:environment => "development"}
13
+
14
+ opts = OptionParser.new("", 24, ' ') { |opts|
15
+ opts.banner = "Usage: siffer [start|run|stop|kill] [component] [options]"
16
+
17
+ opts.separator ""
18
+ opts.separator "Siffer options:"
19
+
20
+ opts.on("-e",
21
+ "--env ENVIRONMENT",
22
+ "development, deployment, test, none (default: development)") { |e|
23
+ options[:environment] = e
24
+ }
25
+
26
+ opts.on("-d",
27
+ "--daemonize",
28
+ "run daemonized in the background (default: true)") { |d|
29
+ options[:daemonize] = d ? true : false
30
+ }
31
+
32
+ opts.on_tail("-h", "--help", "Show this message") do
33
+ puts opts
34
+ exit
35
+ end
36
+
37
+ opts.on_tail("-v", "--version", "Show version") do
38
+ puts "Siffer #{Siffer.version} (SIF Version #{Siffer.sif_version})"
39
+ exit
40
+ end
41
+
42
+ opts.parse! ARGV
43
+ }
44
+
45
+ unless command = ARGV[0]
46
+ abort opts.to_s
47
+ end
48
+
49
+ unless options[:component] = ARGV[1]
50
+ abort opts.to_s
51
+ end
52
+
53
+ options[:config] = YAML.load_file(File.expand_path(options[:component]))
54
+
55
+ component = options[:component].split('/')[-1]
56
+ cwd = File.expand_path(File.dirname(options[:component]))
57
+ options[:log] = File.join(cwd,"#{component}.log")
58
+ options[:pid] = File.join(cwd,"#{component}.pid")
59
+ container = Siffer::Container.new(options)
60
+ if command == "start" or command == "run"
61
+ if options[:environment] == "test"
62
+ puts options.inspect # For testing purposes let's just output the options
63
+ else
64
+ container.run
65
+ end
66
+ else
67
+ container.stop
68
+ end
69
+
70
+
71
+
@@ -0,0 +1,374 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: Siffer</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">Siffer</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/lib/agent_rb.html">
59
+ lib/agent.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/lib/container_rb.html">
63
+ lib/container.rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/messages/ack_rb.html">
67
+ lib/messages/ack.rb
68
+ </a>
69
+ <br />
70
+ <a href="../files/lib/messages/acl_rb.html">
71
+ lib/messages/acl.rb
72
+ </a>
73
+ <br />
74
+ <a href="../files/lib/messages/error_rb.html">
75
+ lib/messages/error.rb
76
+ </a>
77
+ <br />
78
+ <a href="../files/lib/messages/message_rb.html">
79
+ lib/messages/message.rb
80
+ </a>
81
+ <br />
82
+ <a href="../files/lib/messages/register_rb.html">
83
+ lib/messages/register.rb
84
+ </a>
85
+ <br />
86
+ <a href="../files/lib/messages/request_body_rb.html">
87
+ lib/messages/request_body.rb
88
+ </a>
89
+ <br />
90
+ <a href="../files/lib/messages/status_rb.html">
91
+ lib/messages/status.rb
92
+ </a>
93
+ <br />
94
+ <a href="../files/lib/messaging_rb.html">
95
+ lib/messaging.rb
96
+ </a>
97
+ <br />
98
+ <a href="../files/lib/protocol_rb.html">
99
+ lib/protocol.rb
100
+ </a>
101
+ <br />
102
+ <a href="../files/lib/registration_rb.html">
103
+ lib/registration.rb
104
+ </a>
105
+ <br />
106
+ <a href="../files/lib/request_rb.html">
107
+ lib/request.rb
108
+ </a>
109
+ <br />
110
+ <a href="../files/lib/request_logger_rb.html">
111
+ lib/request_logger.rb
112
+ </a>
113
+ <br />
114
+ <a href="../files/lib/response_rb.html">
115
+ lib/response.rb
116
+ </a>
117
+ <br />
118
+ <a href="../files/lib/server_rb.html">
119
+ lib/server.rb
120
+ </a>
121
+ <br />
122
+ <a href="../files/lib/siffer_rb.html">
123
+ lib/siffer.rb
124
+ </a>
125
+ <br />
126
+ </td>
127
+ </tr>
128
+
129
+ </table>
130
+ </div>
131
+ <!-- banner header -->
132
+
133
+ <div id="bodyContent">
134
+
135
+
136
+
137
+ <div id="contextContent">
138
+
139
+
140
+
141
+ </div>
142
+
143
+ <div id="method-list">
144
+ <h3 class="section-bar">Methods</h3>
145
+
146
+ <div class="name-list">
147
+ <a href="#M000005">root</a>&nbsp;&nbsp;
148
+ <a href="#M000006">root=</a>&nbsp;&nbsp;
149
+ <a href="#M000003">sif_version</a>&nbsp;&nbsp;
150
+ <a href="#M000004">sif_xmlns</a>&nbsp;&nbsp;
151
+ <a href="#M000001">vendor</a>&nbsp;&nbsp;
152
+ <a href="#M000002">version</a>&nbsp;&nbsp;
153
+ </div>
154
+ </div>
155
+
156
+ </div>
157
+
158
+
159
+ <!-- if includes -->
160
+
161
+ <div id="section">
162
+
163
+ <div id="class-list">
164
+ <h3 class="section-bar">Classes and Modules</h3>
165
+
166
+ Module <a href="Siffer/Messages.html" class="link">Siffer::Messages</a><br />
167
+ Module <a href="Siffer/Messaging.html" class="link">Siffer::Messaging</a><br />
168
+ Module <a href="Siffer/Protocol.html" class="link">Siffer::Protocol</a><br />
169
+ Module <a href="Siffer/Registration.html" class="link">Siffer::Registration</a><br />
170
+ Class <a href="Siffer/Agent.html" class="link">Siffer::Agent</a><br />
171
+ Class <a href="Siffer/Container.html" class="link">Siffer::Container</a><br />
172
+ Class <a href="Siffer/Request.html" class="link">Siffer::Request</a><br />
173
+ Class <a href="Siffer/RequestLogger.html" class="link">Siffer::RequestLogger</a><br />
174
+ Class <a href="Siffer/Response.html" class="link">Siffer::Response</a><br />
175
+ Class <a href="Siffer/Server.html" class="link">Siffer::Server</a><br />
176
+
177
+ </div>
178
+
179
+ <div id="constants-list">
180
+ <h3 class="section-bar">Constants</h3>
181
+
182
+ <div class="name-list">
183
+ <table summary="Constants">
184
+ <tr class="top-aligned-row context-row">
185
+ <td class="context-item-name">VENDOR</td>
186
+ <td>=</td>
187
+ <td class="context-item-value">&quot;h3o(software)&quot; unless defined?(Siffer::VENDOR)</td>
188
+ </tr>
189
+ <tr class="top-aligned-row context-row">
190
+ <td class="context-item-name">VERSION</td>
191
+ <td>=</td>
192
+ <td class="context-item-value">[0,0,4] unless defined?(Siffer::VERSION)</td>
193
+ </tr>
194
+ <tr class="top-aligned-row context-row">
195
+ <td class="context-item-name">SIF_VERSION</td>
196
+ <td>=</td>
197
+ <td class="context-item-value">[2,2,0] unless defined?(Siffer::SIF_VERSION)</td>
198
+ </tr>
199
+ <tr class="top-aligned-row context-row">
200
+ <td class="context-item-name">SIF_XMLNS</td>
201
+ <td>=</td>
202
+ <td class="context-item-value">&quot;http://www.sifinfo.org/infrastructure/2.x&quot; unless defined?(Siffer::SIF_XMLNS)</td>
203
+ </tr>
204
+ </table>
205
+ </div>
206
+ </div>
207
+
208
+
209
+
210
+
211
+
212
+
213
+ <!-- if method_list -->
214
+ <div id="methods">
215
+ <h3 class="section-bar">Public Class methods</h3>
216
+
217
+ <div id="method-M000005" class="method-detail">
218
+ <a name="M000005"></a>
219
+
220
+ <div class="method-heading">
221
+ <a href="#M000005" class="method-signature">
222
+ <span class="method-name">root</span><span class="method-args">()</span>
223
+ </a>
224
+ </div>
225
+
226
+ <div class="method-description">
227
+ <p>
228
+ The <a href="Siffer.html#M000005">root</a> directory that the SIF
229
+ implementation is running from
230
+ </p>
231
+ <p><a class="source-toggle" href="#"
232
+ onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
233
+ <div class="method-source-code" id="M000005-source">
234
+ <pre>
235
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 32</span>
236
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">root</span>() <span class="ruby-ivar">@root</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span> <span class="ruby-keyword kw">end</span>
237
+ </pre>
238
+ </div>
239
+ </div>
240
+ </div>
241
+
242
+ <div id="method-M000006" class="method-detail">
243
+ <a name="M000006"></a>
244
+
245
+ <div class="method-heading">
246
+ <a href="#M000006" class="method-signature">
247
+ <span class="method-name">root=</span><span class="method-args">(value)</span>
248
+ </a>
249
+ </div>
250
+
251
+ <div class="method-description">
252
+ <p><a class="source-toggle" href="#"
253
+ onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
254
+ <div class="method-source-code" id="M000006-source">
255
+ <pre>
256
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 33</span>
257
+ 33: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">root=</span>(<span class="ruby-identifier">value</span>) <span class="ruby-ivar">@root</span> = <span class="ruby-identifier">value</span> <span class="ruby-keyword kw">end</span>
258
+ </pre>
259
+ </div>
260
+ </div>
261
+ </div>
262
+
263
+ <div id="method-M000003" class="method-detail">
264
+ <a name="M000003"></a>
265
+
266
+ <div class="method-heading">
267
+ <a href="#M000003" class="method-signature">
268
+ <span class="method-name">sif_version</span><span class="method-args">()</span>
269
+ </a>
270
+ </div>
271
+
272
+ <div class="method-description">
273
+ <p>
274
+ The <a href="Siffer.html#M000002">version</a> of SIF being implemented -
275
+ based on the specification
276
+ </p>
277
+ <p><a class="source-toggle" href="#"
278
+ onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
279
+ <div class="method-source-code" id="M000003-source">
280
+ <pre>
281
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 26</span>
282
+ 26: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sif_version</span>() <span class="ruby-constant">SIF_VERSION</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;.&quot;</span>) <span class="ruby-keyword kw">end</span>
283
+ </pre>
284
+ </div>
285
+ </div>
286
+ </div>
287
+
288
+ <div id="method-M000004" class="method-detail">
289
+ <a name="M000004"></a>
290
+
291
+ <div class="method-heading">
292
+ <a href="#M000004" class="method-signature">
293
+ <span class="method-name">sif_xmlns</span><span class="method-args">()</span>
294
+ </a>
295
+ </div>
296
+
297
+ <div class="method-description">
298
+ <p>
299
+ The SIF XML namespace to be used across this implementation
300
+ </p>
301
+ <p><a class="source-toggle" href="#"
302
+ onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
303
+ <div class="method-source-code" id="M000004-source">
304
+ <pre>
305
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 29</span>
306
+ 29: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">sif_xmlns</span>() <span class="ruby-constant">SIF_XMLNS</span> <span class="ruby-keyword kw">end</span>
307
+ </pre>
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <div id="method-M000001" class="method-detail">
313
+ <a name="M000001"></a>
314
+
315
+ <div class="method-heading">
316
+ <a href="#M000001" class="method-signature">
317
+ <span class="method-name">vendor</span><span class="method-args">()</span>
318
+ </a>
319
+ </div>
320
+
321
+ <div class="method-description">
322
+ <p>
323
+ The <a href="Siffer.html#M000001">vendor</a> of this SIF implementation
324
+ (self describing for Agents)
325
+ </p>
326
+ <p><a class="source-toggle" href="#"
327
+ onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
328
+ <div class="method-source-code" id="M000001-source">
329
+ <pre>
330
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 20</span>
331
+ 20: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">vendor</span>() <span class="ruby-constant">VENDOR</span> <span class="ruby-keyword kw">end</span>
332
+ </pre>
333
+ </div>
334
+ </div>
335
+ </div>
336
+
337
+ <div id="method-M000002" class="method-detail">
338
+ <a name="M000002"></a>
339
+
340
+ <div class="method-heading">
341
+ <a href="#M000002" class="method-signature">
342
+ <span class="method-name">version</span><span class="method-args">()</span>
343
+ </a>
344
+ </div>
345
+
346
+ <div class="method-description">
347
+ <p>
348
+ The <a href="Siffer.html#M000002">version</a> of the h3o(software) SIF
349
+ implementation
350
+ </p>
351
+ <p><a class="source-toggle" href="#"
352
+ onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
353
+ <div class="method-source-code" id="M000002-source">
354
+ <pre>
355
+ <span class="ruby-comment cmt"># File lib/siffer.rb, line 23</span>
356
+ 23: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">version</span>() <span class="ruby-constant">VERSION</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;.&quot;</span>) <span class="ruby-keyword kw">end</span>
357
+ </pre>
358
+ </div>
359
+ </div>
360
+ </div>
361
+
362
+
363
+ </div>
364
+
365
+
366
+ </div>
367
+
368
+
369
+ <div id="validator-badges">
370
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
371
+ </div>
372
+
373
+ </body>
374
+ </html>