siffer 0.1.0 → 0.1.1

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.
Files changed (58) hide show
  1. data/LICENSE +1 -1
  2. data/README +93 -63
  3. data/lib/siffer.rb +41 -1
  4. data/lib/siffer/agent.rb +53 -0
  5. data/lib/siffer/core_ext/hash.rb +15 -0
  6. data/lib/siffer/messages.rb +41 -0
  7. data/lib/siffer/messages/ack.rb +168 -0
  8. data/lib/siffer/messages/event.rb +20 -0
  9. data/lib/siffer/messages/message.rb +60 -0
  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 +50 -0
  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 +31 -66
  20. data/Rakefile +0 -60
  21. data/bin/siffer +0 -12
  22. data/lib/sif.rb +0 -38
  23. data/lib/sif/code_sets.rb +0 -9
  24. data/lib/sif/code_sets/access_permission_error_codes.rb +0 -17
  25. data/lib/sif/code_sets/authentication_error_codes.rb +0 -15
  26. data/lib/sif/code_sets/base_code_set.rb +0 -75
  27. data/lib/sif/code_sets/encryption_error_codes.rb +0 -6
  28. data/lib/sif/code_sets/error_category_codes.rb +0 -20
  29. data/lib/sif/code_sets/event_reporting_processing_error_codes.rb +0 -7
  30. data/lib/sif/code_sets/generic_message_handling_error_codes.rb +0 -12
  31. data/lib/sif/code_sets/provision_error_codes.rb +0 -8
  32. data/lib/sif/code_sets/registration_error_codes.rb +0 -13
  33. data/lib/sif/code_sets/request_response_error_codes.rb +0 -20
  34. data/lib/sif/code_sets/smb_error_codes.rb +0 -9
  35. data/lib/sif/code_sets/status_codes.rb +0 -13
  36. data/lib/sif/code_sets/subscription_error_codes.rb +0 -7
  37. data/lib/sif/code_sets/system_error_codes.rb +0 -6
  38. data/lib/sif/code_sets/transport_error_codes.rb +0 -9
  39. data/lib/sif/code_sets/xml_validation_error_codes.rb +0 -10
  40. data/lib/sif/config.rb +0 -100
  41. data/lib/sif/core_ext/array.rb +0 -12
  42. data/lib/sif/error.rb +0 -34
  43. data/lib/sif/exceptions.rb +0 -9
  44. data/lib/sif/messages.rb +0 -3
  45. data/lib/sif/messages/ack.rb +0 -29
  46. data/lib/sif/messages/message.rb +0 -32
  47. data/lib/sif/messages/register.rb +0 -38
  48. data/lib/sif/protocols.rb +0 -15
  49. data/lib/sif/status.rb +0 -17
  50. data/spec/base_code_set_spec.rb +0 -35
  51. data/spec/config_spec.rb +0 -42
  52. data/spec/error_spec.rb +0 -11
  53. data/spec/messages/ack_spec.rb +0 -25
  54. data/spec/messages/header_spec.rb +0 -21
  55. data/spec/messages/message_spec.rb +0 -27
  56. data/spec/messages/register_spec.rb +0 -53
  57. data/spec/protocol_spec.rb +0 -11
  58. data/spec/spec_helper.rb +0 -8
@@ -1,42 +0,0 @@
1
- require File.join(File.dirname(__FILE__),"spec_helper")
2
-
3
- describe Siffer::Config do
4
-
5
- before do
6
- Siffer::Config.setup
7
- end
8
-
9
- it "should be able to yield the configuration via #use" do
10
- res = nil
11
- Siffer::Config.use {|c| res = c}
12
- res.should == Siffer::Config.defaults
13
- end
14
-
15
- it "should be able to get a configuration key" do
16
- Siffer::Config[:host].should == "0.0.0.0"
17
- end
18
-
19
- it "should be able to set a configuration key" do
20
- Siffer::Config[:bar] = "Hello"
21
- Siffer::Config[:bar].should == "Hello"
22
- end
23
-
24
- it "should be able to #delete a configuration key" do
25
- Siffer::Config[:bar] = "Hello"
26
- Siffer::Config[:bar].should == "Hello"
27
- Siffer::Config.delete(:bar)
28
- Siffer::Config[:bar].should == nil
29
- end
30
-
31
- it "should be able to #fetch a key that does exist" do
32
- Siffer::Config.fetch(:host, "192.168.2.1").should == "0.0.0.0"
33
- end
34
-
35
- it "should be able to #fetch a key that does not exist" do
36
- Siffer::Config.fetch(:bar, "heylo").should == "heylo"
37
- end
38
-
39
- it "should be able to dump to YAML" do
40
- Siffer::Config.to_yaml.should == Siffer::Config.instance_variable_get("@configuration").to_yaml
41
- end
42
- end
@@ -1,11 +0,0 @@
1
- require File.join(File.dirname(__FILE__),"spec_helper")
2
-
3
- describe Siffer::Error do
4
-
5
- it "should raise error for invalid category" do
6
- lambda{
7
- @error = Siffer::Error.new :bad_category, :missing_category
8
- }.should raise_error(InvalidErrorCategory, "Invalid Error Category provided.")
9
- end
10
-
11
- end
@@ -1,25 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
-
3
- describe Siffer::Messages::Ack do
4
-
5
- before do
6
- @message = Message.new("source_is_clint")
7
- @ack = Ack.new("ack_source",
8
- {:original_source_id => @message.header.source_id,
9
- :original_message_id => @message.header.msg_id,
10
- :error => Siffer::Error.new(:system,:generic)})
11
- end
12
-
13
- it "should contain original source id" do
14
- @ack.original_source_id.should == @message.header.source_id
15
- end
16
-
17
- it "should contain original message id" do
18
- @ack.original_message_id.should == @message.header.msg_id
19
- end
20
-
21
- it "should predicate error" do
22
- @ack.should be_error
23
- end
24
-
25
- end
@@ -1,21 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper.rb")
2
-
3
- describe Siffer::Messages::Message::Header do
4
-
5
- it "should have a timestamp" do
6
- @header = Message::Header.new "source_name"
7
- @header.timestamp.should_not be_nil
8
- end
9
-
10
- it "should have a GUID/UUID" do
11
- @header = Message::Header.new "source_name"
12
- @header.msg_id.should_not be_nil
13
- end
14
-
15
- it "should have a GUID/UUID that matches SIF textual format" do
16
- @header = Message::Header.new "source_name"
17
- @header.msg_id.should_not match(/^[a-z\-\s]+$/)
18
- @header.msg_id.should match(/^[A-Z0-9]+$/)
19
- end
20
-
21
- end
@@ -1,27 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
-
3
- describe Siffer::Messages::Message do
4
-
5
- it "should have SIF version" do
6
- @message = Message.new("source_name")
7
- @message.version.should == "2.2.0"
8
- end
9
-
10
- it "should have SIF xml namespace" do
11
- @message = Message.new("source_name")
12
- @message.xmlns.should == "http://www.sifinfo.org/infrastructure/2.x"
13
- end
14
-
15
- it "should have a header" do
16
- @message = Message.new("source_name")
17
- @message.header.should_not be_nil
18
- @message.header.source_id.should == "source_name"
19
- end
20
-
21
- it "should raise exception for missing source identifier" do
22
- lambda{
23
- @message = Message.new(nil)
24
- }.should raise_error(MissingSource, "Source not provided.")
25
- end
26
-
27
- end
@@ -1,53 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
-
3
- describe Siffer::Messages::Register do
4
-
5
- before do
6
- @message = Register.new("source_name",
7
- {:name => "source desc",
8
- :application => {:vendor => Siffer::VENDOR,
9
- :version => "1.1.1"}})
10
- end
11
-
12
- it "should have vendor info" do
13
- @message.node_vendor.should == Siffer::VENDOR
14
- @message.node_version.should == Siffer::VERSION
15
- end
16
-
17
- it "should have a name for the agent" do
18
- @message.name.should_not be_nil
19
- end
20
-
21
- it "should accept 2.x version messages" do
22
- @message.version.should == "2.*"
23
- end
24
-
25
- it "should have a receivable version # that matches SIF pattern" do
26
- @message.version.should match(/\*|([0-9]+[.]\*)|([0-9]+[.][0-9]+r\*)|([0-9]+[.][0-9]+(r[0-9]+)?)/)
27
- end
28
-
29
- it "should have a max buffer size in integer form" do
30
- @message.max_buffer_size.should_not be_nil
31
- @message.max_buffer_size.should be_integer
32
- end
33
-
34
- it "should have a mode set and default to pull" do
35
- @message.mode.should_not be_nil
36
- @message.mode.should == "Pull"
37
- end
38
-
39
- it "should require a protocol if mode is push" do
40
- lambda{
41
- @message = Register.new("source_id",
42
- {:name => "source_name",
43
- :max_buffer_size => 524188,
44
- :mode => "Push"})
45
- }.should raise_error(NoProtocol, "Protocol not provided.")
46
- end
47
-
48
- it "should expose the application it supports" do
49
- @message.application.vendor.should == Siffer::VENDOR
50
- @message.application.version.should == "1.1.1"
51
- end
52
-
53
- end
@@ -1,11 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper")
2
-
3
- describe Siffer::Protocols::Protocol do
4
-
5
- it "should require a url" do
6
- lambda{
7
- @protocol = Protocol.new(nil)
8
- }.should raise_error(MissingUrl, "Url not provided.")
9
- end
10
-
11
- end
@@ -1,8 +0,0 @@
1
- $TESTING=true
2
- require File.join(File.dirname(__FILE__),"..", "lib","sif")
3
- require 'spec'
4
-
5
- include Siffer::Messages
6
- include Siffer::Exceptions
7
- include Siffer::Protocols
8
- include Siffer::CodeSets