typhoeus 0.6.8 → 0.6.9

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 (39) hide show
  1. checksums.yaml +15 -0
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +2 -1
  4. data/README.md +9 -0
  5. data/lib/typhoeus/easy_factory.rb +2 -2
  6. data/lib/typhoeus/hydra.rb +1 -1
  7. data/lib/typhoeus/hydra/queueable.rb +16 -0
  8. data/lib/typhoeus/hydra/runnable.rb +1 -7
  9. data/lib/typhoeus/request/stubbable.rb +2 -2
  10. data/lib/typhoeus/response/informations.rb +4 -0
  11. data/lib/typhoeus/version.rb +1 -1
  12. data/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +4 -4
  13. data/spec/rack/typhoeus/middleware/params_decoder_spec.rb +2 -2
  14. data/spec/typhoeus/adapters/faraday_spec.rb +6 -6
  15. data/spec/typhoeus/easy_factory_spec.rb +8 -8
  16. data/spec/typhoeus/expectation_spec.rb +18 -18
  17. data/spec/typhoeus/hydra/addable_spec.rb +6 -6
  18. data/spec/typhoeus/hydra/before_spec.rb +9 -9
  19. data/spec/typhoeus/hydra/cacheable_spec.rb +6 -6
  20. data/spec/typhoeus/hydra/memoizable_spec.rb +5 -5
  21. data/spec/typhoeus/hydra/queueable_spec.rb +49 -0
  22. data/spec/typhoeus/hydra/runnable_spec.rb +11 -30
  23. data/spec/typhoeus/hydra/stubbable_spec.rb +1 -1
  24. data/spec/typhoeus/hydra_spec.rb +1 -1
  25. data/spec/typhoeus/pool_spec.rb +4 -4
  26. data/spec/typhoeus/request/before_spec.rb +9 -9
  27. data/spec/typhoeus/request/block_connection_spec.rb +5 -5
  28. data/spec/typhoeus/request/cacheable_spec.rb +4 -4
  29. data/spec/typhoeus/request/callbacks_spec.rb +3 -3
  30. data/spec/typhoeus/request/operations_spec.rb +7 -7
  31. data/spec/typhoeus/request/stubbable_spec.rb +1 -1
  32. data/spec/typhoeus/request_spec.rb +3 -3
  33. data/spec/typhoeus/response/header_spec.rb +2 -2
  34. data/spec/typhoeus/response/informations_spec.rb +9 -1
  35. data/spec/typhoeus/response/status_spec.rb +10 -10
  36. data/spec/typhoeus/response_spec.rb +4 -4
  37. data/spec/typhoeus_spec.rb +4 -4
  38. data/typhoeus.gemspec +1 -1
  39. metadata +7 -14
@@ -6,17 +6,17 @@ describe Typhoeus::Hydra::Addable do
6
6
 
7
7
  it "asks easy factory for an easy" do
8
8
  multi = double
9
- Typhoeus::EasyFactory.should_receive(:new).with(request, hydra).and_return(double(:get => 1))
10
- hydra.should_receive(:multi).and_return(multi)
11
- multi.should_receive(:add).with(1)
9
+ expect(Typhoeus::EasyFactory).to receive(:new).with(request, hydra).and_return(double(:get => 1))
10
+ expect(hydra).to receive(:multi).and_return(multi)
11
+ expect(multi).to receive(:add).with(1)
12
12
  hydra.add(request)
13
13
  end
14
14
 
15
15
  it "adds easy to multi" do
16
16
  multi = double
17
- Typhoeus::EasyFactory.should_receive(:new).with(request, hydra).and_return(double(:get => 1))
18
- hydra.should_receive(:multi).and_return(multi)
19
- multi.should_receive(:add).with(1)
17
+ expect(Typhoeus::EasyFactory).to receive(:new).with(request, hydra).and_return(double(:get => 1))
18
+ expect(hydra).to receive(:multi).and_return(multi)
19
+ expect(multi).to receive(:add).with(1)
20
20
  hydra.add(request)
21
21
  end
22
22
  end
@@ -9,14 +9,14 @@ describe Typhoeus::Hydra::Before do
9
9
  context "when one" do
10
10
  it "executes" do
11
11
  Typhoeus.before { |r| String.new(r.base_url) }
12
- String.should_receive(:new).and_return("")
12
+ expect(String).to receive(:new).and_return("")
13
13
  hydra.add(request)
14
14
  end
15
15
 
16
16
  context "when true" do
17
17
  it "calls super" do
18
18
  Typhoeus.before { true }
19
- Typhoeus::Expectation.should_receive(:response_for)
19
+ expect(Typhoeus::Expectation).to receive(:response_for)
20
20
  hydra.add(request)
21
21
  end
22
22
  end
@@ -37,7 +37,7 @@ describe Typhoeus::Hydra::Before do
37
37
  context "when false" do
38
38
  it "doesn't call super" do
39
39
  Typhoeus.before { false }
40
- Typhoeus::Expectation.should_receive(:response_for).never
40
+ expect(Typhoeus::Expectation).to receive(:response_for).never
41
41
  hydra.add(request)
42
42
  end
43
43
  end
@@ -45,7 +45,7 @@ describe Typhoeus::Hydra::Before do
45
45
  context "when response" do
46
46
  it "doesn't call super" do
47
47
  Typhoeus.before { Typhoeus::Response.new }
48
- Typhoeus::Expectation.should_receive(:response_for).never
48
+ expect(Typhoeus::Expectation).to receive(:response_for).never
49
49
  hydra.add(request)
50
50
  end
51
51
  end
@@ -57,12 +57,12 @@ describe Typhoeus::Hydra::Before do
57
57
  before { 3.times { Typhoeus.before { |r| String.new(r.base_url) } } }
58
58
 
59
59
  it "calls super" do
60
- Typhoeus::Expectation.should_receive(:response_for)
60
+ expect(Typhoeus::Expectation).to receive(:response_for)
61
61
  hydra.add(request)
62
62
  end
63
63
 
64
64
  it "executes all" do
65
- String.should_receive(:new).exactly(3).times.and_return("")
65
+ expect(String).to receive(:new).exactly(3).times.and_return("")
66
66
  hydra.add(request)
67
67
  end
68
68
  end
@@ -75,12 +75,12 @@ describe Typhoeus::Hydra::Before do
75
75
  end
76
76
 
77
77
  it "doesn't call super" do
78
- Typhoeus::Expectation.should_receive(:response_for).never
78
+ expect(Typhoeus::Expectation).to receive(:response_for).never
79
79
  hydra.add(request)
80
80
  end
81
81
 
82
82
  it "executes only two" do
83
- String.should_receive(:new).exactly(2).times.and_return("")
83
+ expect(String).to receive(:new).exactly(2).times.and_return("")
84
84
  hydra.add(request)
85
85
  end
86
86
  end
@@ -89,7 +89,7 @@ describe Typhoeus::Hydra::Before do
89
89
 
90
90
  context "when no before" do
91
91
  it "calls super" do
92
- Typhoeus::Expectation.should_receive(:response_for)
92
+ expect(Typhoeus::Expectation).to receive(:response_for)
93
93
  hydra.add(request)
94
94
  end
95
95
  end
@@ -18,7 +18,7 @@ describe Typhoeus::Hydra::Cacheable do
18
18
  end
19
19
 
20
20
  it "doesn't call complete" do
21
- request.should_receive(:complete).never
21
+ expect(request).to receive(:complete).never
22
22
  hydra.add(request)
23
23
  end
24
24
  end
@@ -29,14 +29,14 @@ describe Typhoeus::Hydra::Cacheable do
29
29
 
30
30
  it "returns response with cached status" do
31
31
  hydra.add(request)
32
- expect(response.cached?).to be_true
32
+ expect(response.cached?).to be_truthy
33
33
  end
34
34
 
35
35
  context "when no queued requests" do
36
36
  it "finishes request" do
37
- request.should_receive(:finish).with(response)
37
+ expect(request).to receive(:finish).with(response)
38
38
  hydra.add(request)
39
- expect(response.cached?).to be_true
39
+ expect(response.cached?).to be_truthy
40
40
  end
41
41
  end
42
42
 
@@ -47,8 +47,8 @@ describe Typhoeus::Hydra::Cacheable do
47
47
 
48
48
  it "finishes both requests" do
49
49
  hydra.queue(queued_request)
50
- request.should_receive(:finish).with(response)
51
- queued_request.should_receive(:finish).with(response)
50
+ expect(request).to receive(:finish).with(response)
51
+ expect(queued_request).to receive(:finish).with(response)
52
52
  hydra.add(request)
53
53
  end
54
54
  end
@@ -16,7 +16,7 @@ describe Typhoeus::Hydra::Memoizable do
16
16
  end
17
17
 
18
18
  it "doesn't call complete" do
19
- request.should_receive(:complete).never
19
+ expect(request).to receive(:complete).never
20
20
  hydra.add(request)
21
21
  end
22
22
  end
@@ -26,7 +26,7 @@ describe Typhoeus::Hydra::Memoizable do
26
26
  before { hydra.memory[request] = response }
27
27
 
28
28
  it "finishes request" do
29
- request.should_receive(:finish).with(response, true)
29
+ expect(request).to receive(:finish).with(response, true)
30
30
  hydra.add(request)
31
31
  end
32
32
 
@@ -35,8 +35,8 @@ describe Typhoeus::Hydra::Memoizable do
35
35
 
36
36
  it "dequeues" do
37
37
  hydra.queue(queued_request)
38
- request.should_receive(:finish).with(response, true)
39
- queued_request.should_receive(:finish).with(response, true)
38
+ expect(request).to receive(:finish).with(response, true)
39
+ expect(queued_request).to receive(:finish).with(response, true)
40
40
  hydra.add(request)
41
41
  end
42
42
  end
@@ -46,7 +46,7 @@ describe Typhoeus::Hydra::Memoizable do
46
46
 
47
47
  describe "#run" do
48
48
  it "clears memory before starting" do
49
- hydra.memory.should_receive(:clear)
49
+ expect(hydra.memory).to receive(:clear)
50
50
  hydra.run
51
51
  end
52
52
  end
@@ -36,4 +36,53 @@ describe Typhoeus::Hydra::Queueable do
36
36
  expect(hydra.queued_requests).to be_empty
37
37
  end
38
38
  end
39
+
40
+ describe "#dequeue_many" do
41
+ before do
42
+ requests.each { |r| hydra.queue r }
43
+ end
44
+
45
+ context "when no request queued" do
46
+ let(:requests) { [] }
47
+
48
+ it "does nothing" do
49
+ expect(hydra).to_not receive(:add)
50
+ hydra.dequeue_many
51
+ end
52
+ end
53
+
54
+ context "when request queued" do
55
+ let(:first) { Typhoeus::Request.new("localhost:3001/first") }
56
+ let(:requests) { [first] }
57
+
58
+ it "adds request from queue to multi" do
59
+ expect(hydra).to receive(:add).with(first)
60
+ hydra.dequeue_many
61
+ end
62
+ end
63
+
64
+ context "when three request queued" do
65
+ let(:first) { Typhoeus::Request.new("localhost:3001/first") }
66
+ let(:second) { Typhoeus::Request.new("localhost:3001/second") }
67
+ let(:third) { Typhoeus::Request.new("localhost:3001/third") }
68
+ let(:requests) { [first, second, third] }
69
+
70
+ it "adds requests from queue to multi" do
71
+ expect(hydra).to receive(:add).with(first)
72
+ expect(hydra).to receive(:add).with(second)
73
+ expect(hydra).to receive(:add).with(third)
74
+ hydra.dequeue_many
75
+ end
76
+
77
+ context "when max_concurrency is two" do
78
+ let(:options) { {:max_concurrency => 2} }
79
+ it "adds requests from queue to multi" do
80
+ expect(hydra).to receive(:add).with(first)
81
+ expect(hydra).to receive(:add).with(second)
82
+ expect(hydra).to_not receive(:add).with(third)
83
+ hydra.dequeue_many
84
+ end
85
+ end
86
+ end
87
+ end
39
88
  end
@@ -6,33 +6,26 @@ describe Typhoeus::Hydra::Runnable do
6
6
  let(:hydra) { Typhoeus::Hydra.new(options) }
7
7
 
8
8
  describe "#run" do
9
+ let(:requests) { [] }
10
+
9
11
  before do
10
12
  requests.each { |r| hydra.queue r }
11
13
  end
12
14
 
13
- context "when no request queued" do
14
- let(:requests) { [] }
15
+ it "runs multi#dequeue_many" do
16
+ expect(hydra).to receive(:dequeue_many)
17
+ hydra.run
18
+ end
15
19
 
16
- it "does nothing" do
17
- hydra.multi.should_receive(:perform)
18
- hydra.run
19
- end
20
+ it "runs multi#perform" do
21
+ expect(hydra.multi).to receive(:perform)
22
+ hydra.run
20
23
  end
21
24
 
22
25
  context "when request queued" do
23
26
  let(:first) { Typhoeus::Request.new("localhost:3001/first") }
24
27
  let(:requests) { [first] }
25
28
 
26
- it "adds request from queue to multi" do
27
- hydra.should_receive(:add).with(first)
28
- hydra.run
29
- end
30
-
31
- it "runs multi#perform" do
32
- hydra.multi.should_receive(:perform)
33
- hydra.run
34
- end
35
-
36
29
  it "sends" do
37
30
  hydra.run
38
31
  expect(first.response).to be
@@ -45,18 +38,6 @@ describe Typhoeus::Hydra::Runnable do
45
38
  let(:third) { Typhoeus::Request.new("localhost:3001/third") }
46
39
  let(:requests) { [first, second, third] }
47
40
 
48
- it "adds requests from queue to multi" do
49
- hydra.should_receive(:add).with(first)
50
- hydra.should_receive(:add).with(second)
51
- hydra.should_receive(:add).with(third)
52
- hydra.run
53
- end
54
-
55
- it "runs multi#perform" do
56
- hydra.multi.should_receive(:perform)
57
- hydra.run
58
- end
59
-
60
41
  it "sends first" do
61
42
  hydra.run
62
43
  expect(first.response).to be
@@ -134,7 +115,7 @@ describe Typhoeus::Hydra::Runnable do
134
115
  let(:options) { {} }
135
116
 
136
117
  it "calls on_complete callback once for every response" do
137
- String.should_receive(:new).exactly(2).times
118
+ expect(String).to receive(:new).exactly(2).times
138
119
  hydra.run
139
120
  end
140
121
  end
@@ -145,7 +126,7 @@ describe Typhoeus::Hydra::Runnable do
145
126
  before { Typhoeus.before{ |request| request.finish(Typhoeus::Response.new) } }
146
127
 
147
128
  it "simulates real multi run and adds and finishes both requests" do
148
- String.should_receive(:new).exactly(2).times
129
+ expect(String).to receive(:new).exactly(2).times
149
130
  hydra.run
150
131
  end
151
132
  end
@@ -15,7 +15,7 @@ describe Typhoeus::Hydra::Stubbable do
15
15
 
16
16
  context "when expectation found" do
17
17
  it "finishes response" do
18
- request.should_receive(:finish)
18
+ expect(request).to receive(:finish)
19
19
  hydra.add(request)
20
20
  end
21
21
 
@@ -9,7 +9,7 @@ describe Typhoeus::Hydra do
9
9
  let(:options) { {:pipeling => true} }
10
10
 
11
11
  it "passes options to multi" do
12
- Ethon::Multi.should_receive(:new).with(options)
12
+ expect(Ethon::Multi).to receive(:new).with(options)
13
13
  hydra
14
14
  end
15
15
  end
@@ -12,7 +12,7 @@ describe Typhoeus::Pool do
12
12
 
13
13
  describe "#release" do
14
14
  it "resets easy" do
15
- easy.should_receive(:reset)
15
+ expect(easy).to receive(:reset)
16
16
  Typhoeus::Pool.release(easy)
17
17
  end
18
18
 
@@ -28,7 +28,7 @@ describe Typhoeus::Pool do
28
28
  Typhoeus::Pool.release(Ethon::Easy.new)
29
29
  end
30
30
  end.map(&:join)
31
- expect(Typhoeus::Pool.send(:easies)).to have(10).easies
31
+ expect(Typhoeus::Pool.send(:easies).size).to eq(10)
32
32
  end
33
33
  end
34
34
  end
@@ -55,7 +55,7 @@ describe Typhoeus::Pool do
55
55
  array << Typhoeus::Pool.get
56
56
  end
57
57
  end.map(&:join)
58
- expect(array.uniq).to have(10).easies
58
+ expect(array.uniq.size).to eq(10)
59
59
  end
60
60
  end
61
61
  end
@@ -73,7 +73,7 @@ describe Typhoeus::Pool do
73
73
  end
74
74
  end
75
75
  end
76
- expect(array.uniq).to have(3).easies
76
+ expect(array.uniq.size).to eq(3)
77
77
  end
78
78
  end
79
79
  end
@@ -8,14 +8,14 @@ describe Typhoeus::Request::Before do
8
8
  context "when one" do
9
9
  it "executes" do
10
10
  Typhoeus.before { |r| String.new(r.base_url) }
11
- String.should_receive(:new).and_return("")
11
+ expect(String).to receive(:new).and_return("")
12
12
  request.run
13
13
  end
14
14
 
15
15
  context "when true" do
16
16
  it "calls super" do
17
17
  Typhoeus.before { true }
18
- Typhoeus::Expectation.should_receive(:response_for)
18
+ expect(Typhoeus::Expectation).to receive(:response_for)
19
19
  request.run
20
20
  end
21
21
  end
@@ -23,7 +23,7 @@ describe Typhoeus::Request::Before do
23
23
  context "when false" do
24
24
  it "doesn't call super" do
25
25
  Typhoeus.before { false }
26
- Typhoeus::Expectation.should_receive(:response_for).never
26
+ expect(Typhoeus::Expectation).to receive(:response_for).never
27
27
  request.run
28
28
  end
29
29
 
@@ -36,7 +36,7 @@ describe Typhoeus::Request::Before do
36
36
  context "when a response" do
37
37
  it "doesn't call super" do
38
38
  Typhoeus.before { Typhoeus::Response.new }
39
- Typhoeus::Expectation.should_receive(:response_for).never
39
+ expect(Typhoeus::Expectation).to receive(:response_for).never
40
40
  request.run
41
41
  end
42
42
 
@@ -52,12 +52,12 @@ describe Typhoeus::Request::Before do
52
52
  before { 3.times { Typhoeus.before { |r| String.new(r.base_url) } } }
53
53
 
54
54
  it "calls super" do
55
- Typhoeus::Expectation.should_receive(:response_for)
55
+ expect(Typhoeus::Expectation).to receive(:response_for)
56
56
  request.run
57
57
  end
58
58
 
59
59
  it "executes all" do
60
- String.should_receive(:new).exactly(3).times.and_return("")
60
+ expect(String).to receive(:new).exactly(3).times.and_return("")
61
61
  request.run
62
62
  end
63
63
  end
@@ -70,12 +70,12 @@ describe Typhoeus::Request::Before do
70
70
  end
71
71
 
72
72
  it "doesn't call super" do
73
- Typhoeus::Expectation.should_receive(:response_for).never
73
+ expect(Typhoeus::Expectation).to receive(:response_for).never
74
74
  request.run
75
75
  end
76
76
 
77
77
  it "executes only two" do
78
- String.should_receive(:new).exactly(2).times.and_return("")
78
+ expect(String).to receive(:new).exactly(2).times.and_return("")
79
79
  request.run
80
80
  end
81
81
  end
@@ -84,7 +84,7 @@ describe Typhoeus::Request::Before do
84
84
 
85
85
  context "when no before" do
86
86
  it "calls super" do
87
- Typhoeus::Expectation.should_receive(:response_for)
87
+ expect(Typhoeus::Expectation).to receive(:response_for)
88
88
  request.run
89
89
  end
90
90
  end
@@ -28,7 +28,7 @@ describe Typhoeus::Request::BlockConnection do
28
28
  before { request.block_connection = true }
29
29
 
30
30
  it "returns true" do
31
- expect(request.blocked?).to be_true
31
+ expect(request.blocked?).to be_truthy
32
32
  end
33
33
  end
34
34
 
@@ -36,7 +36,7 @@ describe Typhoeus::Request::BlockConnection do
36
36
  before { request.block_connection = false }
37
37
 
38
38
  it "returns false" do
39
- expect(request.blocked?).to be_false
39
+ expect(request.blocked?).to be_falsey
40
40
  end
41
41
  end
42
42
  end
@@ -47,7 +47,7 @@ describe Typhoeus::Request::BlockConnection do
47
47
  after { Typhoeus::Config.block_connection = false }
48
48
 
49
49
  it "returns true" do
50
- expect(request.blocked?).to be_true
50
+ expect(request.blocked?).to be_truthy
51
51
  end
52
52
  end
53
53
 
@@ -55,7 +55,7 @@ describe Typhoeus::Request::BlockConnection do
55
55
  before { Typhoeus::Config.block_connection = false }
56
56
 
57
57
  it "returns false" do
58
- expect(request.blocked?).to be_false
58
+ expect(request.blocked?).to be_falsey
59
59
  end
60
60
  end
61
61
  end
@@ -68,7 +68,7 @@ describe Typhoeus::Request::BlockConnection do
68
68
  after { Typhoeus::Config.block_connection = false }
69
69
 
70
70
  it "takes local" do
71
- expect(request.blocked?).to be_false
71
+ expect(request.blocked?).to be_falsey
72
72
  end
73
73
  end
74
74
  end