siffer 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/LICENSE +1 -1
  2. data/README +93 -0
  3. data/lib/siffer.rb +13 -16
  4. data/lib/siffer/agent.rb +39 -31
  5. data/lib/siffer/core_ext/hash.rb +15 -0
  6. data/lib/siffer/messages.rb +38 -4
  7. data/lib/siffer/messages/ack.rb +160 -35
  8. data/lib/siffer/messages/event.rb +20 -0
  9. data/lib/siffer/messages/message.rb +47 -58
  10. data/lib/siffer/messages/provide.rb +25 -0
  11. data/lib/siffer/messages/provision.rb +17 -0
  12. data/lib/siffer/messages/register.rb +42 -52
  13. data/lib/siffer/messages/request.rb +138 -0
  14. data/lib/siffer/messages/response.rb +48 -0
  15. data/lib/siffer/messages/subscribe.rb +17 -0
  16. data/lib/siffer/messages/system_control.rb +94 -0
  17. data/lib/siffer/models.rb +1 -0
  18. data/lib/siffer/models/address.rb +39 -0
  19. metadata +25 -146
  20. data/README.rdoc +0 -65
  21. data/Rakefile +0 -64
  22. data/bin/siffer +0 -71
  23. data/doc/SIF ImplementationSpecification.pdf +0 -0
  24. data/doc/rdoc/classes/Siffer.html +0 -259
  25. data/doc/rdoc/classes/Siffer/Agent.html +0 -177
  26. data/doc/rdoc/classes/Siffer/Container.html +0 -165
  27. data/doc/rdoc/classes/Siffer/Messages.html +0 -81
  28. data/doc/rdoc/classes/Siffer/Messages/Ack.html +0 -115
  29. data/doc/rdoc/classes/Siffer/Messages/Acl.html +0 -83
  30. data/doc/rdoc/classes/Siffer/Messages/Error.html +0 -157
  31. data/doc/rdoc/classes/Siffer/Messages/Message.html +0 -235
  32. data/doc/rdoc/classes/Siffer/Messages/Message/Header.html +0 -107
  33. data/doc/rdoc/classes/Siffer/Messages/Register.html +0 -154
  34. data/doc/rdoc/classes/Siffer/Messages/RequestBody.html +0 -185
  35. data/doc/rdoc/classes/Siffer/Messages/Status.html +0 -156
  36. data/doc/rdoc/classes/Siffer/Messaging.html +0 -212
  37. data/doc/rdoc/classes/Siffer/Protocol.html +0 -254
  38. data/doc/rdoc/classes/Siffer/Protocol/NonPostRequest.html +0 -54
  39. data/doc/rdoc/classes/Siffer/Protocol/UnknownPath.html +0 -54
  40. data/doc/rdoc/classes/Siffer/Registration.html +0 -251
  41. data/doc/rdoc/classes/Siffer/Request.html +0 -103
  42. data/doc/rdoc/classes/Siffer/RequestLogger.html +0 -109
  43. data/doc/rdoc/classes/Siffer/Response.html +0 -91
  44. data/doc/rdoc/classes/Siffer/Server.html +0 -156
  45. data/doc/rdoc/created.rid +0 -1
  46. data/doc/rdoc/files/LICENSE.html +0 -76
  47. data/doc/rdoc/files/README_rdoc.html +0 -131
  48. data/doc/rdoc/files/lib/siffer/agent_rb.html +0 -49
  49. data/doc/rdoc/files/lib/siffer/container_rb.html +0 -57
  50. data/doc/rdoc/files/lib/siffer/messages/ack_rb.html +0 -49
  51. data/doc/rdoc/files/lib/siffer/messages/acl_rb.html +0 -49
  52. data/doc/rdoc/files/lib/siffer/messages/error_rb.html +0 -49
  53. data/doc/rdoc/files/lib/siffer/messages/message_rb.html +0 -49
  54. data/doc/rdoc/files/lib/siffer/messages/register_rb.html +0 -49
  55. data/doc/rdoc/files/lib/siffer/messages/request_body_rb.html +0 -49
  56. data/doc/rdoc/files/lib/siffer/messages/status_rb.html +0 -49
  57. data/doc/rdoc/files/lib/siffer/messages_rb.html +0 -63
  58. data/doc/rdoc/files/lib/siffer/messaging_rb.html +0 -49
  59. data/doc/rdoc/files/lib/siffer/protocol_rb.html +0 -49
  60. data/doc/rdoc/files/lib/siffer/registration_rb.html +0 -49
  61. data/doc/rdoc/files/lib/siffer/request_logger_rb.html +0 -49
  62. data/doc/rdoc/files/lib/siffer/request_rb.html +0 -49
  63. data/doc/rdoc/files/lib/siffer/response_rb.html +0 -49
  64. data/doc/rdoc/files/lib/siffer/server_rb.html +0 -49
  65. data/doc/rdoc/files/lib/siffer_rb.html +0 -64
  66. data/doc/rdoc/fr_class_index.html +0 -25
  67. data/doc/rdoc/fr_file_index.html +0 -39
  68. data/doc/rdoc/fr_method_index.html +0 -4539
  69. data/doc/rdoc/index.html +0 -15
  70. data/doc/rdoc/rdoc-style.css +0 -319
  71. data/lib/siffer/container.rb +0 -94
  72. data/lib/siffer/messages/acl.rb +0 -25
  73. data/lib/siffer/messages/error.rb +0 -174
  74. data/lib/siffer/messages/request_body.rb +0 -66
  75. data/lib/siffer/messages/status.rb +0 -55
  76. data/lib/siffer/messaging.rb +0 -99
  77. data/lib/siffer/protocol.rb +0 -164
  78. data/lib/siffer/registration.rb +0 -87
  79. data/lib/siffer/request.rb +0 -28
  80. data/lib/siffer/request_logger.rb +0 -32
  81. data/lib/siffer/response.rb +0 -26
  82. data/lib/siffer/server.rb +0 -42
  83. data/spec/agent_spec.rb +0 -48
  84. data/spec/cli_spec.rb +0 -40
  85. data/spec/container_spec.rb +0 -103
  86. data/spec/default_agent +0 -6
  87. data/spec/default_server +0 -5
  88. data/spec/message_specs/ack_spec.rb +0 -28
  89. data/spec/message_specs/error_spec.rb +0 -24
  90. data/spec/message_specs/header_spec.rb +0 -25
  91. data/spec/message_specs/message_spec.rb +0 -57
  92. data/spec/message_specs/register_spec.rb +0 -86
  93. data/spec/message_specs/request_body_spec.rb +0 -58
  94. data/spec/message_specs/status_spec.rb +0 -25
  95. data/spec/messaging_spec.rb +0 -85
  96. data/spec/protocol_spec.rb +0 -50
  97. data/spec/registration_spec.rb +0 -33
  98. data/spec/request_logger_spec.rb +0 -28
  99. data/spec/request_spec.rb +0 -25
  100. data/spec/response_spec.rb +0 -24
  101. data/spec/server_spec.rb +0 -30
  102. data/spec/spec_helper.rb +0 -35
@@ -1,28 +0,0 @@
1
- require File.join(File.dirname(__FILE__),"spec_helper")
2
-
3
- describe Siffer::RequestLogger do
4
- msg = "<SIF_Message><SIF_SystemControl><SIF_Ping /><SIF_Header><SIF_SourceId>Test Source</SIF_SourceId></SIF_Header></SIF_SystemControl></SIF_Message>"
5
-
6
- before(:each) do
7
- @@log = []
8
- @app = Rack::Builder.new do
9
- use Siffer::RequestLogger, @@log
10
- run Siffer::Server.new("admin" => "none")
11
- end
12
- end
13
-
14
- it "should log requests" do
15
- res = Rack::MockRequest.new(@app).post("/", :input => msg)
16
- @@log.size.should == 1
17
- end
18
-
19
- it "should identify SIF_Source in log message" do
20
- res = Rack::MockRequest.new(@app).post("/", :input => msg)
21
- @@log[0].should match(/Ping request made by Test Source/)
22
- end
23
-
24
- it "should ignore request bodies that are not SIF based" do
25
- res = Rack::MockRequest.new(@app).get("/")
26
- @@log[0].should match(/Unknown request made by Unknown Source/)
27
- end
28
- end
data/spec/request_spec.rb DELETED
@@ -1,25 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
2
-
3
- # setup messages to use for mock requests
4
- ping = "<SIF_Message><SIF_SystemControl><SIF_Ping /></SIF_SystemControl></SIF_Message>"
5
- status = "<SIF_Message><SIF_SystemControl><SIF_Status /></SIF_SystemControl></SIF_Message>"
6
- register = "<SIF_Message><SIF_Register /></SIF_Message>"
7
-
8
- describe Siffer::Request do
9
- it "should provide access to the body as a SIF_Message (Siffer::Message)" do
10
- msg = Siffer::Messages::Register.new("register-source","source-name")
11
- request = Siffer::Request.new('rack.input' => msg)
12
- request.message.type.should == "Register"
13
- request.message.source_id.should == "register-source"
14
- end
15
-
16
- it "should identify message by predicate through body" do
17
- Siffer::Protocol::ACCEPTABLE_PATHS.each do |name,path|
18
- unless name == :root
19
- req = Siffer::Request.new("rack.input" => eval(name.to_s))
20
- req.should eval("be_#{name.to_s}")
21
- end
22
- end
23
- end
24
-
25
- end
@@ -1,24 +0,0 @@
1
- require File.join(File.dirname(__FILE__),"spec_helper")
2
- require 'webrick'
3
-
4
- Thread.abort_on_exception = true
5
-
6
- describe Siffer::Response do
7
- it "should default content-type to application/xml with UTF-8" do
8
- response = Siffer::Response.new()
9
- response.content_type.should == Siffer::Messaging::MIME_TYPES["appxmlencoded"]
10
- end
11
-
12
- it "should receive response from url,data" do
13
- with_fake_server do |url|
14
- response = Siffer::Response.from(url,"Hello World")
15
- response.should be_successful
16
- response.body.each { |line| line.should == "Hello World" }
17
- end
18
- end
19
-
20
- it "should return 500 for bad url" do
21
- response = Siffer::Response.from("http://localhost:9999","Hello World")
22
- response.should be_server_error
23
- end
24
- end
data/spec/server_spec.rb DELETED
@@ -1,30 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
2
-
3
- describe Siffer::Server do
4
- it "should instantiate with default host, port, name, min_buffer" do
5
- server = Siffer::Server.new("admin" => 'none')
6
- server.host.should == "localhost"
7
- server.port.should == 8300
8
- server.name.should == "Default Server"
9
- server.min_buffer.should == 1024
10
- end
11
-
12
- it "should allow defaults to be overriden" do
13
- server = Siffer::Server.new("admin" => 'none',
14
- "name" => "name",
15
- "host" => "test",
16
- "port" => 222,
17
- "min_buffer" => 2048)
18
- server.host.should == "test"
19
- server.port.should == 222
20
- server.name.should == "name"
21
- server.min_buffer.should == 2048
22
- end
23
-
24
- it "should require an admin URL" do
25
- lambda {
26
- server = Siffer::Server.new
27
- }.should raise_error("Administration URL required")
28
- end
29
-
30
- end
data/spec/spec_helper.rb DELETED
@@ -1,35 +0,0 @@
1
- require File.join(File.dirname(__FILE__),"..", "lib","siffer")
2
- require 'spec'
3
-
4
- # Configures a WEBrick server and yields URL. When passed a block
5
- # starts and stops the server for the context. It returns what it
6
- # receives from the request.
7
- def with_fake_server(app = nil)
8
- fake_app = app || lambda { |env| [200,{},env["rack.input"].read] }
9
- server = WEBrick::HTTPServer.new(:Host => '0.0.0.0',:Port => 9202)
10
- server.mount "/", Rack::Handler::WEBrick, fake_app
11
- Thread.new { server.start }
12
- trap(:INT) { server.shutdown }
13
- yield "http://localhost:9202/" if block_given?
14
- server.shutdown
15
- end
16
-
17
- # Helper method to iterate all of the ACCEPTABLE_PATHS
18
- # on the specified component(Server/Agent). Yields
19
- # the Response object for each Request.
20
- def for_every_path(options = {}, &block)
21
- component = options.delete(:on)
22
- options["CONTENT_TYPE"] ||= Siffer::Messaging::MIME_TYPES["appxml"]
23
- Siffer::Protocol::ACCEPTABLE_PATHS.each do |name,path|
24
- res = Rack::MockRequest.new(component).post(path,options)
25
- yield res
26
- end
27
- end
28
-
29
- # Provides the minium to get a response from a Siffer::Server
30
- def response_to(msg, &block)
31
- Rack::MockRequest.new(Siffer::Server.new("admin" => "none")
32
- ).post("/",{
33
- :input => msg,
34
- "CONTENT_TYPE" => Siffer::Messaging::MIME_TYPES["appxml"]})
35
- end