shotgunner 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/shotgunner.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32f3dfa30655a6843d61bffc54e25c80c50e6fdb6965ec389f6ce1af2cb8367e
|
4
|
+
data.tar.gz: 6671f973787b736fd090eb169f3e2ac1a2a89dc373d7f64c5495bc7319459c80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae49737f4e038d2ace4a667afc69e584e24d5798722126bd1b5fd83aecb8d060e9981e985210a670284b303ab6a2f669df8f30c99ea8137345064641b66bea9f
|
7
|
+
data.tar.gz: dda54ed6fdf9d4fd9cac5248032d90664c512920d75bb68658b0f14994c77f841d36f7022e1305126dc18f0994bc2d088918e761f8fb72dd7170d11952ba4c91
|
data/lib/shotgunner.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Shotgunner
|
4
|
-
|
4
|
+
module Parallel
|
5
5
|
def self.included(base)
|
6
6
|
base.extend(ClassMethods)
|
7
|
-
base.send(:set_defaults)
|
8
7
|
base.send(:include, InstanceMethods)
|
9
8
|
end
|
10
9
|
|
@@ -19,6 +18,7 @@ module Shotgunner
|
|
19
18
|
mutex = Mutex.new
|
20
19
|
threads = options[:threads] || 4
|
21
20
|
tasks = options[:tasks] || []
|
21
|
+
raise ArgumentError, 'There is no tasks array defined!' if tasks.empty?
|
22
22
|
call_results = []
|
23
23
|
threads.times.map do
|
24
24
|
Thread.new(tasks, call_results) do |tasks, call_results|
|
@@ -26,8 +26,8 @@ module Shotgunner
|
|
26
26
|
call_result = yield(task)
|
27
27
|
mutex.synchronize { call_results << call_result }
|
28
28
|
end
|
29
|
-
end
|
30
|
-
end
|
29
|
+
end
|
30
|
+
end.each(&:join)
|
31
31
|
call_results
|
32
32
|
end
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shotgunner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleg Saltykov
|
@@ -38,5 +38,5 @@ requirements: []
|
|
38
38
|
rubygems_version: 3.0.8
|
39
39
|
signing_key:
|
40
40
|
specification_version: 4
|
41
|
-
summary:
|
41
|
+
summary: Shotgunner - helps to fetch external api in a parallel way! Fast and furious!
|
42
42
|
test_files: []
|