muxer 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/muxer/multiplexer.rb +4 -1
- data/lib/muxer/version.rb +1 -1
- data/spec/muxer_spec.rb +19 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3f32a3e7c97cff618878135ec7f7080eaa9eabe
|
4
|
+
data.tar.gz: 0d475ace40ae3875d4f15b0816e021a37c22db97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bb98435f0096cc98608e74277cde145d7eb8ce71919def65657bdff5c0fa9ce3e084f98f613f0472cd4769b4e2649a435baa491f90aa54c8da7ea8240ecdec8
|
7
|
+
data.tar.gz: 736da72172e2d2e9894650a96bbf3adce9e6e1b8b125270215bf2d061f8e4c637715a29ee1b9c3f788a633986b5bc8dc433aaf6a5a57cee4eaddaec32cc002ab
|
data/lib/muxer/multiplexer.rb
CHANGED
@@ -72,11 +72,14 @@ module Muxer
|
|
72
72
|
#
|
73
73
|
# @return [Hash] Keys are :succeeded, :failed
|
74
74
|
def execute
|
75
|
-
@responses = {succeeded: [], failed: [], pending: [], succeeded_by_id: {}}
|
75
|
+
@responses = {succeeded: [], failed: [], pending: [], succeeded_by_id: {}, requests_by_id: {}}
|
76
76
|
@start = Time.now
|
77
77
|
EventMachine.run do
|
78
78
|
requests.each do |request|
|
79
79
|
@responses[:pending] << request.process!
|
80
|
+
if request.id
|
81
|
+
@responses[:requests_by_id][request.id] = request
|
82
|
+
end
|
80
83
|
end
|
81
84
|
|
82
85
|
EM::PeriodicTimer.new(0.001) do
|
data/lib/muxer/version.rb
CHANGED
data/spec/muxer_spec.rb
CHANGED
@@ -19,11 +19,29 @@ RSpec.describe Muxer, "execute" do
|
|
19
19
|
muxer.add_url "http://www.rubydoc.info", {id: :rubydoc}
|
20
20
|
end
|
21
21
|
|
22
|
-
|
22
|
+
|
23
|
+
expect(response[:requests_by_id]).to be_kind_of(Hash)
|
24
|
+
expect(response[:requests_by_id][:rubydoc].url).to eq('http://www.rubydoc.info')
|
25
|
+
|
26
|
+
expect(response[:succeeded_by_id]).to be_kind_of(Hash)
|
23
27
|
expect(response[:succeeded_by_id][:rubydoc].url).to eq('http://www.rubydoc.info')
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
31
|
+
it 'has an id with a failed request' do
|
32
|
+
VCR.use_cassette('muxer/can_have_a_request_fail', :record => :new_episodes) do
|
33
|
+
response = Muxer.execute do |muxer|
|
34
|
+
muxer.add_url "https://www.thisisabadexampledomain.com", {id: :bad}
|
35
|
+
end
|
36
|
+
|
37
|
+
expect(response[:failed]).to be_kind_of(Array)
|
38
|
+
expect(response[:failed].count).to eq(1)
|
39
|
+
|
40
|
+
expect(response[:requests_by_id]).to be_kind_of(Hash)
|
41
|
+
expect(response[:requests_by_id][:bad].url).to eq('https://www.thisisabadexampledomain.com')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
27
45
|
it 'can make multiple web requests' do
|
28
46
|
VCR.use_cassette('muxer/makes_multiple_web_requests') do
|
29
47
|
response = Muxer.execute do |muxer|
|