ws_discovery 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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