ws_discovery 0.0.3 → 0.0.4

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/History.rdoc +5 -0
  4. data/lib/ws_discovery/searcher.rb +4 -6
  5. data/lib/ws_discovery/version.rb +1 -1
  6. data/spec/ws_discovery/multicast_connection_spec.rb +18 -18
  7. data/spec/ws_discovery/response_spec.rb +10 -10
  8. data/spec/ws_discovery/searcher_spec.rb +12 -14
  9. data/spec/ws_discovery_spec.rb +10 -10
  10. data/ws_discovery.gemspec +2 -2
  11. metadata +41 -129
  12. data/spec/coverage/assets/0.7.1/application.css +0 -1110
  13. data/spec/coverage/assets/0.7.1/application.js +0 -626
  14. data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  15. data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  16. data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  17. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  18. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  19. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  20. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  21. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  22. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  23. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  24. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  25. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  26. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  27. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  28. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  29. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  30. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  31. data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  32. data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  33. data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  34. data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
  35. data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
  36. data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  37. data/spec/coverage/assets/0.7.1/loading.gif +0 -0
  38. data/spec/coverage/assets/0.7.1/magnify.png +0 -0
  39. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  40. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  41. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  42. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  43. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  44. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  45. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  46. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  47. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  48. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  49. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  50. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  51. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  52. data/spec/coverage/index.html +0 -72
  53. data/spec/coverage/rcov/assets/0.2.3/jquery-1.3.2.min.js +0 -19
  54. data/spec/coverage/rcov/assets/0.2.3/jquery.tablesorter.min.js +0 -15
  55. data/spec/coverage/rcov/assets/0.2.3/print.css +0 -12
  56. data/spec/coverage/rcov/assets/0.2.3/rcov.js +0 -42
  57. data/spec/coverage/rcov/assets/0.2.3/screen.css +0 -270
  58. data/spec/coverage/rcov/index.html +0 -88
  59. data/spec/ws_discovery/coverage/assets/0.7.1/application.css +0 -1110
  60. data/spec/ws_discovery/coverage/assets/0.7.1/application.js +0 -626
  61. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  62. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  63. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  64. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  65. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  66. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  67. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  68. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  69. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  70. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  71. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  72. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  73. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  74. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  75. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  76. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  77. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  78. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  79. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  80. data/spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  81. data/spec/ws_discovery/coverage/assets/0.7.1/favicon_green.png +0 -0
  82. data/spec/ws_discovery/coverage/assets/0.7.1/favicon_red.png +0 -0
  83. data/spec/ws_discovery/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  84. data/spec/ws_discovery/coverage/assets/0.7.1/loading.gif +0 -0
  85. data/spec/ws_discovery/coverage/assets/0.7.1/magnify.png +0 -0
  86. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  87. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  88. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  89. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  90. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  91. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  92. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  93. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  94. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  95. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  96. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  97. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  98. data/spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  99. data/spec/ws_discovery/coverage/index.html +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f3a7ab66b4a19dd8e9e0492e05a9895083fca68
4
- data.tar.gz: f8bfedf888aa44b5f97c8502db5c7d1699c403ba
3
+ metadata.gz: 1837935aa98e55436130c36f479213d6a4c6607e
4
+ data.tar.gz: e60539fac6dc2118d4cd925faaec3754c18e43a7
5
5
  SHA512:
6
- metadata.gz: b461c7f2ea5a81c6fc38e9e66ccfc3e5b3f3b5ea3bd8eaf63b240f82a8d113695fb49e17a1371299932811c3399d33a14296bb8b629678f3fa4442f6719b2807
7
- data.tar.gz: 71a05e59ffd0402b783808427caadd7b39a300e197a87b824a738488748fa7989eef348d76d0bdc6fd0e39630c9fb29b7a188ee834418a31a6be8f5ab5aaed4a
6
+ metadata.gz: c9304a7bacbaa51c18b5ced9faf8a845ccd4431d1894726afbc0e64ed6a18c761cb1324f6be9d11329a9225704e27bf0f99246790e7a3c8980ca7a6c220b4381
7
+ data.tar.gz: 14089cc35fa9dbd5974ec61cd6f0b7676112971907e0e4d052fd44976b83b30d0fe73c27c2f92f2cc2f11250a5e97b3807d4d2add9cc74fd96e85e92d1ab518b
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
  gemspec
data/History.rdoc CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.0.4 / 2015-09-28
2
+
3
+ * Switched to semantic_logger for logging.
4
+ * Updated to latest rspec syntax.
5
+
1
6
  === 0.0.3 / 2013-07-29
2
7
 
3
8
  * Corrected errors with searching for devices of a specific type.
@@ -1,13 +1,11 @@
1
1
  require_relative 'multicast_connection'
2
2
  require_relative 'response'
3
+ require 'semantic_logger'
3
4
  require 'builder'
4
- require 'log_switch'
5
5
  require 'uuid'
6
6
 
7
7
  class WSDiscovery::Searcher < WSDiscovery::MulticastConnection
8
- extend LogSwitch
9
- self.logger.datetime_format = "%Y-%m-%d %H:%M:%S "
10
-
8
+ include SemanticLogger::Loggable
11
9
  # @return [EventMachine::Channel] Provides subscribers with responses from
12
10
  # their search request.
13
11
  attr_reader :discovery_responses
@@ -37,7 +35,7 @@ class WSDiscovery::Searcher < WSDiscovery::MulticastConnection
37
35
  # @param [String] response The data received on this connection's socket.
38
36
  def receive_data(response)
39
37
  ip, port = peer_info
40
- WSDiscovery::Searcher.log "<#{self.class}> Response from #{ip}:#{port}:\n#{response}\n"
38
+ logger.info "<#{self.class}> Response from #{ip}:#{port}:\n#{response}\n"
41
39
  parsed_response = parse(response)
42
40
  @discovery_responses << parsed_response
43
41
  end
@@ -54,7 +52,7 @@ class WSDiscovery::Searcher < WSDiscovery::MulticastConnection
54
52
  # send was successful.
55
53
  def post_init
56
54
  if send_datagram(@search, MULTICAST_IP, MULTICAST_PORT) > 0
57
- WSDiscovery::Searcher.log("Sent datagram search:\n#{@search}")
55
+ logger.info("Sent datagram search:\n#{@search}")
58
56
  end
59
57
  end
60
58
 
@@ -1,3 +1,3 @@
1
1
  module WSDiscovery
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -13,45 +13,45 @@ describe WSDiscovery::MulticastConnection do
13
13
 
14
14
  describe "#peer_info" do
15
15
  before do
16
- WSDiscovery::MulticastConnection.any_instance.stub(:setup_multicast_socket)
17
- subject.stub_chain(:get_peername, :[], :unpack).and_return(%w(1234 1 2 3 4))
16
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:setup_multicast_socket)
17
+ allow(subject).to receive_message_chain(:get_peername, :[], :unpack).and_return(%w(1234 1 2 3 4))
18
18
  end
19
19
 
20
20
  it "returns an Array with IP and port" do
21
- subject.send(:peer_info).should == ['1.2.3.4', 1234]
21
+ expect(subject.send(:peer_info)).to eql ['1.2.3.4', 1234]
22
22
  end
23
23
 
24
24
  it "returns IP as a String" do
25
- subject.send(:peer_info).first.should be_a String
25
+ expect(subject.send(:peer_info).first).to be_a String
26
26
  end
27
27
 
28
28
  it "returns port as a Fixnum" do
29
- subject.send(:peer_info).last.should be_a Fixnum
29
+ expect(subject.send(:peer_info).last).to be_a Fixnum
30
30
  end
31
31
  end
32
32
 
33
33
  describe "#setup_multicast_socket" do
34
34
  before do
35
- WSDiscovery::MulticastConnection.any_instance.stub(:set_membership)
36
- WSDiscovery::MulticastConnection.any_instance.stub(:switch_multicast_loop)
37
- WSDiscovery::MulticastConnection.any_instance.stub(:set_multicast_ttl)
38
- WSDiscovery::MulticastConnection.any_instance.stub(:set_ttl)
35
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:set_membership)
36
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:switch_multicast_loop)
37
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:set_multicast_ttl)
38
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:set_ttl)
39
39
  end
40
40
 
41
41
  it "adds 0.0.0.0 and 239.255.255.250 to the membership group" do
42
- subject.should_receive(:set_membership).with(
42
+ expect(subject).to receive(:set_membership).with(
43
43
  IPAddr.new('239.255.255.250').hton + IPAddr.new('0.0.0.0').hton
44
44
  )
45
45
  subject.send(:setup_multicast_socket)
46
46
  end
47
47
 
48
48
  it "sets multicast TTL to 1" do
49
- subject.should_receive(:set_multicast_ttl).with(1)
49
+ expect(subject).to receive(:set_multicast_ttl).with(1)
50
50
  subject.send(:setup_multicast_socket)
51
51
  end
52
52
 
53
53
  it "sets TTL to 1" do
54
- subject.should_receive(:set_ttl).with(1)
54
+ expect(subject).to receive(:set_ttl).with(1)
55
55
  subject.send(:setup_multicast_socket)
56
56
  end
57
57
 
@@ -60,7 +60,7 @@ describe WSDiscovery::MulticastConnection do
60
60
 
61
61
  it "turns multicast loop off" do
62
62
  ENV['RUBY_TESTING_ENV'] = "development"
63
- subject.should_receive(:switch_multicast_loop).with(:off)
63
+ expect(subject).to receive(:switch_multicast_loop).with(:off)
64
64
  subject.send(:setup_multicast_socket)
65
65
  end
66
66
  end
@@ -68,32 +68,32 @@ describe WSDiscovery::MulticastConnection do
68
68
 
69
69
  describe "#switch_multicast_loop" do
70
70
  before do
71
- WSDiscovery::MulticastConnection.any_instance.stub(:setup_multicast_socket)
71
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:setup_multicast_socket)
72
72
  end
73
73
 
74
74
  it "passes '\\001' to the socket option call when param == :on" do
75
- subject.should_receive(:set_sock_opt).with(
75
+ expect(subject).to receive(:set_sock_opt).with(
76
76
  0, Socket::IP_MULTICAST_LOOP, "\001"
77
77
  )
78
78
  subject.send(:switch_multicast_loop, :on)
79
79
  end
80
80
 
81
81
  it "passes '\\001' to the socket option call when param == '\\001'" do
82
- subject.should_receive(:set_sock_opt).with(
82
+ expect(subject).to receive(:set_sock_opt).with(
83
83
  0, Socket::IP_MULTICAST_LOOP, "\001"
84
84
  )
85
85
  subject.send(:switch_multicast_loop,"\001")
86
86
  end
87
87
 
88
88
  it "passes '\\000' to the socket option call when param == :off" do
89
- subject.should_receive(:set_sock_opt).with(
89
+ expect(subject).to receive(:set_sock_opt).with(
90
90
  0, Socket::IP_MULTICAST_LOOP, "\000"
91
91
  )
92
92
  subject.send(:switch_multicast_loop,:off)
93
93
  end
94
94
 
95
95
  it "passes '\\000' to the socket option call when param == '\\000'" do
96
- subject.should_receive(:set_sock_opt).with(
96
+ expect(subject).to receive(:set_sock_opt).with(
97
97
  0, Socket::IP_MULTICAST_LOOP, "\000"
98
98
  )
99
99
  subject.send(:switch_multicast_loop,"\000")
@@ -63,7 +63,7 @@ describe WSDiscovery::Response do
63
63
 
64
64
  describe "#[]" do
65
65
  it "should return the SOAP response body as a Hash" do
66
- subject[:probe_matches].should == probe_body_hash[:probe_matches]
66
+ expect(subject[:probe_matches]).to eql probe_body_hash[:probe_matches]
67
67
  end
68
68
 
69
69
  it "should throw an exception when the response body isn't parsable" do
@@ -73,7 +73,7 @@ describe WSDiscovery::Response do
73
73
 
74
74
  describe "#header" do
75
75
  it "should return the SOAP response header as a Hash" do
76
- subject.header[:app_sequence].should == probe_header_hash[:app_sequence]
76
+ expect(subject.header[:app_sequence]).to eql probe_header_hash[:app_sequence]
77
77
  end
78
78
 
79
79
  it "should throw an exception when the response header isn't parsable" do
@@ -84,35 +84,35 @@ describe WSDiscovery::Response do
84
84
  %w(body to_hash).each do |method|
85
85
  describe "##{method}" do
86
86
  it "should return the SOAP response body as a Hash" do
87
- subject.send(method)[:probe_matches].should == probe_body_hash[:probe_matches]
87
+ expect(subject.send(method)[:probe_matches]).to eql probe_body_hash[:probe_matches]
88
88
  end
89
89
  end
90
90
  end
91
91
 
92
92
  describe "#hash" do
93
93
  it "should return the complete SOAP response XML as a Hash" do
94
- subject.hash.should == probe_full_hash
94
+ expect(subject.hash).to eql probe_full_hash
95
95
  end
96
96
  end
97
97
 
98
98
  describe "#to_xml" do
99
99
  it "should return the raw SOAP response body" do
100
- subject.to_xml.should == probe_response
100
+ expect(subject.to_xml).to eql probe_response
101
101
  end
102
102
  end
103
103
 
104
104
  describe "#doc" do
105
105
  it "returns a Nokogiri::XML::Document for the SOAP response XML" do
106
- subject.doc.should be_a(Nokogiri::XML::Document)
106
+ expect(subject.doc).to be_a(Nokogiri::XML::Document)
107
107
  end
108
108
  end
109
109
 
110
110
  describe "#xpath" do
111
111
  it "permits XPath access to elements in the request" do
112
- subject.xpath("//a:Address").first.inner_text.
113
- should == "urn:uuid:0b679890-fc54-14ba-d428-f73b3e7c2400"
114
- subject.xpath("//d:ProbeMatch/d:XAddrs").first.inner_text.
115
- should == "http://10.221.222.74/onvif/device_service"
112
+ expect(subject.xpath("//a:Address").first.inner_text).to \
113
+ eql "urn:uuid:0b679890-fc54-14ba-d428-f73b3e7c2400"
114
+ expect(subject.xpath("//d:ProbeMatch/d:XAddrs").first.inner_text).to \
115
+ eql "http://10.221.222.74/onvif/device_service"
116
116
  end
117
117
  end
118
118
  end
@@ -20,9 +20,8 @@ describe WSDiscovery::Searcher do
20
20
  end
21
21
 
22
22
  before do
23
- WSDiscovery::Searcher.log = false
24
- WSDiscovery::MulticastConnection.any_instance.stub(:setup_multicast_socket)
25
- UUID.stub(:generate).and_return('a-uuid')
23
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:setup_multicast_socket)
24
+ allow(UUID).to receive(:generate).and_return('a-uuid')
26
25
  end
27
26
 
28
27
  subject do
@@ -31,8 +30,7 @@ describe WSDiscovery::Searcher do
31
30
 
32
31
  describe "#initialize" do
33
32
  it "does a #probe" do
34
- WSDiscovery::Searcher.any_instance.should_receive(:probe)
35
-
33
+ expect_any_instance_of(WSDiscovery::Searcher).to receive(:probe)
36
34
  subject
37
35
  end
38
36
  end
@@ -44,11 +42,11 @@ describe WSDiscovery::Searcher do
44
42
 
45
43
  it "takes a response and adds it to the list of responses" do
46
44
  response = double 'response'
47
- subject.stub(:peer_info).and_return(['0.0.0.0', 4567])
45
+ allow(subject).to receive(:peer_info).and_return(['0.0.0.0', 4567])
48
46
 
49
- subject.should_receive(:parse).with(response).exactly(1).times.
47
+ expect(subject).to receive(:parse).with(response).exactly(1).times.
50
48
  and_return(parsed_response)
51
- subject.instance_variable_get(:@discovery_responses).should_receive(:<<).
49
+ expect(subject.instance_variable_get(:@discovery_responses)).to receive(:<<).
52
50
  with(parsed_response)
53
51
 
54
52
  subject.receive_data(response)
@@ -57,20 +55,20 @@ describe WSDiscovery::Searcher do
57
55
 
58
56
  describe "#parse" do
59
57
  before do
60
- WSDiscovery::MulticastConnection.any_instance.stub(:setup_multicast_socket)
58
+ allow_any_instance_of(WSDiscovery::MulticastConnection).to receive(:setup_multicast_socket)
61
59
  end
62
60
 
63
61
  it "turns probe matches into WSDiscovery::Responses" do
64
62
  result = subject.parse "<Envelope />"
65
- result.should be_a WSDiscovery::Response
63
+ expect(result).to be_a WSDiscovery::Response
66
64
  end
67
65
  end
68
66
 
69
67
  describe "#post_init" do
70
- before { WSDiscovery::Searcher.any_instance.stub(:m_search).and_return("hi") }
68
+ before { allow_any_instance_of(WSDiscovery::Searcher).to receive(:m_search).and_return("hi") }
71
69
 
72
70
  it "sends a probe as a datagram over 239.255.255.250:3702" do
73
- subject.should_receive(:send_datagram).
71
+ expect(subject).to receive(:send_datagram).
74
72
  with(default_probe, '239.255.255.250', 3702).
75
73
  and_return 0
76
74
  subject.post_init
@@ -79,9 +77,9 @@ describe WSDiscovery::Searcher do
79
77
 
80
78
  describe "#probe" do
81
79
  it "builds the probe string using the given parameters" do
82
- subject.probe(
80
+ expect(subject.probe(
83
81
  env_namespaces: { "xmlns:dn" => "http://www.onvif.org/ver10/network/wsdl" },
84
- types: "dn:NetworkVideoTransmitter").should == <<-PROBE.strip
82
+ types: "dn:NetworkVideoTransmitter")).to eql <<-PROBE.strip
85
83
  <s:Envelope xmlns:a=\"http://schemas.xmlsoap.org/ws/2004/08/addressing\" xmlns:\
86
84
  d=\"http://schemas.xmlsoap.org/ws/2005/04/discovery\" xmlns:s=\"http://www.w3.o\
87
85
  rg/2003/05/soap-envelope\" xmlns:dn=\"http://www.onvif.org/ver10/network/wsdl\"\
@@ -7,33 +7,33 @@ describe WSDiscovery do
7
7
  describe '.search' do
8
8
  let(:multicast_searcher) do
9
9
  searcher = double "WSDiscovery::Searcher"
10
- searcher.stub_chain(:discovery_responses, :subscribe).and_yield(%w[one two])
10
+ allow(searcher).to receive_message_chain(:discovery_responses, :subscribe).and_yield(%w[one two])
11
11
 
12
12
  searcher
13
13
  end
14
14
 
15
15
  before do
16
- EM.stub(:run).and_yield
17
- EM.stub(:add_timer)
18
- EM.stub(:open_datagram_socket).and_return multicast_searcher
16
+ allow(EM).to receive(:run).and_yield
17
+ allow(EM).to receive(:add_timer)
18
+ allow(EM).to receive(:open_datagram_socket).and_return multicast_searcher
19
19
  end
20
20
 
21
21
  context "reactor is already running" do
22
22
  it "returns a WSDiscovery::Searcher" do
23
- EM.stub(:reactor_running?).and_return true
24
- subject.search.should == multicast_searcher
23
+ allow(EM).to receive(:reactor_running?).and_return true
24
+ expect(subject.search).to eql multicast_searcher
25
25
  end
26
26
  end
27
27
 
28
28
  context "reactor is not already running" do
29
29
  it "returns an Array of responses" do
30
- EM.stub(:add_shutdown_hook).and_yield
31
- subject.search.should == %w[one two]
30
+ allow(EM).to receive(:add_shutdown_hook).and_yield
31
+ expect(subject.search).to eql %w[one two]
32
32
  end
33
33
 
34
34
  it "opens a UDP socket on '0.0.0.0', port 0" do
35
- EM.stub(:add_shutdown_hook)
36
- EM.should_receive(:open_datagram_socket).with('0.0.0.0', 0,
35
+ allow(EM).to receive(:add_shutdown_hook)
36
+ expect(EM).to receive(:open_datagram_socket).with('0.0.0.0', 0,
37
37
  WSDiscovery::Searcher, {})
38
38
  subject.search
39
39
  end
data/ws_discovery.gemspec CHANGED
@@ -18,14 +18,14 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.add_dependency("builder")
20
20
  s.add_dependency("eventmachine")
21
- s.add_dependency("log_switch", ">=0.1.4")
21
+ s.add_dependency("semantic_logger")
22
22
  s.add_dependency("nokogiri")
23
23
  s.add_dependency("nori", '>=2.0.0')
24
24
  s.add_dependency("uuid")
25
25
 
26
26
  s.add_development_dependency("bundler", ">= 1.0.21")
27
27
  s.add_development_dependency("rake", ">= 0")
28
- s.add_development_dependency("rspec", "~> 2.6")
28
+ s.add_development_dependency("rspec", ">= 2.6")
29
29
  s.add_development_dependency("simplecov", ">= 0")
30
30
  s.add_development_dependency("simplecov-rcov", ">= 0")
31
31
  s.add_development_dependency("yard", ">= 0.7.2")
metadata CHANGED
@@ -1,181 +1,181 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ws_discovery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - tindron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-29 00:00:00.000000000 Z
11
+ date: 2015-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: eventmachine
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: log_switch
42
+ name: semantic_logger
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.4
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.4
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nori
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.0.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.0.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: uuid
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: 1.0.21
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.0.21
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '2.6'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '2.6'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: simplecov-rcov
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - '>='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '>='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: yard
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
173
  version: 0.7.2
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - '>='
178
+ - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.7.2
181
181
  description: Perform a multicast search for devices using WS-Discovery
@@ -184,112 +184,24 @@ executables: []
184
184
  extensions: []
185
185
  extra_rdoc_files: []
186
186
  files:
187
+ - Gemfile
188
+ - History.rdoc
189
+ - README.rdoc
190
+ - Rakefile
187
191
  - lib/ws_discovery.rb
188
- - lib/ws_discovery/searcher.rb
189
192
  - lib/ws_discovery/core_ext/socket_patch.rb
190
193
  - lib/ws_discovery/error.rb
191
- - lib/ws_discovery/response.rb
194
+ - lib/ws_discovery/multicast_connection.rb
192
195
  - lib/ws_discovery/network_constants.rb
196
+ - lib/ws_discovery/response.rb
197
+ - lib/ws_discovery/searcher.rb
193
198
  - lib/ws_discovery/version.rb
194
- - lib/ws_discovery/multicast_connection.rb
195
199
  - spec/spec_helper.rb
196
- - spec/ws_discovery_spec.rb
197
- - spec/coverage/index.html
198
- - spec/coverage/assets/0.7.1/favicon_red.png
199
- - spec/coverage/assets/0.7.1/magnify.png
200
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png
201
- - spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png
202
- - spec/coverage/assets/0.7.1/fancybox/fancybox-x.png
203
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png
204
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png
205
- - spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png
206
- - spec/coverage/assets/0.7.1/fancybox/fancy_close.png
207
- - spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png
208
- - spec/coverage/assets/0.7.1/fancybox/fancybox-y.png
209
- - spec/coverage/assets/0.7.1/fancybox/fancy_loading.png
210
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png
211
- - spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png
212
- - spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png
213
- - spec/coverage/assets/0.7.1/fancybox/fancybox.png
214
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png
215
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png
216
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png
217
- - spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png
218
- - spec/coverage/assets/0.7.1/fancybox/blank.gif
219
- - spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png
220
- - spec/coverage/assets/0.7.1/favicon_yellow.png
221
- - spec/coverage/assets/0.7.1/application.js
222
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
223
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
224
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
225
- - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png
226
- - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png
227
- - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png
228
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png
229
- - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png
230
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
231
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
232
- - spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png
233
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
234
- - spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
235
- - spec/coverage/assets/0.7.1/loading.gif
236
- - spec/coverage/assets/0.7.1/application.css
237
- - spec/coverage/assets/0.7.1/favicon_green.png
238
- - spec/coverage/rcov/index.html
239
- - spec/coverage/rcov/assets/0.2.3/jquery.tablesorter.min.js
240
- - spec/coverage/rcov/assets/0.2.3/screen.css
241
- - spec/coverage/rcov/assets/0.2.3/print.css
242
- - spec/coverage/rcov/assets/0.2.3/rcov.js
243
- - spec/coverage/rcov/assets/0.2.3/jquery-1.3.2.min.js
200
+ - spec/ws_discovery/multicast_connection_spec.rb
244
201
  - spec/ws_discovery/response_spec.rb
245
202
  - spec/ws_discovery/searcher_spec.rb
246
- - spec/ws_discovery/coverage/index.html
247
- - spec/ws_discovery/coverage/assets/0.7.1/favicon_red.png
248
- - spec/ws_discovery/coverage/assets/0.7.1/magnify.png
249
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png
250
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_nav_right.png
251
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox-x.png
252
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png
253
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png
254
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_left.png
255
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_close.png
256
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_nav_left.png
257
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox-y.png
258
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_loading.png
259
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png
260
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_right.png
261
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_main.png
262
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancybox.png
263
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png
264
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png
265
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png
266
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_title_over.png
267
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/blank.gif
268
- - spec/ws_discovery/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png
269
- - spec/ws_discovery/coverage/assets/0.7.1/favicon_yellow.png
270
- - spec/ws_discovery/coverage/assets/0.7.1/application.js
271
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
272
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
273
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
274
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png
275
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png
276
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png
277
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png
278
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png
279
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
280
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
281
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png
282
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
283
- - spec/ws_discovery/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
284
- - spec/ws_discovery/coverage/assets/0.7.1/loading.gif
285
- - spec/ws_discovery/coverage/assets/0.7.1/application.css
286
- - spec/ws_discovery/coverage/assets/0.7.1/favicon_green.png
287
- - spec/ws_discovery/multicast_connection_spec.rb
288
- - History.rdoc
289
- - README.rdoc
290
- - Gemfile
203
+ - spec/ws_discovery_spec.rb
291
204
  - ws_discovery.gemspec
292
- - Rakefile
293
205
  homepage: https://github.com/pelco-automation/ws-discovery
294
206
  licenses: []
295
207
  metadata: {}
@@ -299,17 +211,17 @@ require_paths:
299
211
  - lib
300
212
  required_ruby_version: !ruby/object:Gem::Requirement
301
213
  requirements:
302
- - - '>='
214
+ - - ">="
303
215
  - !ruby/object:Gem::Version
304
216
  version: 1.9.3
305
217
  required_rubygems_version: !ruby/object:Gem::Requirement
306
218
  requirements:
307
- - - '>='
219
+ - - ">="
308
220
  - !ruby/object:Gem::Version
309
221
  version: 1.8.0
310
222
  requirements: []
311
223
  rubyforge_project:
312
- rubygems_version: 2.0.3
224
+ rubygems_version: 2.4.8
313
225
  signing_key:
314
226
  specification_version: 4
315
227
  summary: Search for devices using WS-Discovery