karousel 0.9.14 → 0.9.15
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +2 -0
- data/.rubocop.yml +10 -0
- data/.ruby-version +1 -1
- data/.travis.yml +5 -2
- data/CHANGELOG +1 -0
- data/Gemfile +3 -8
- data/README.md +1 -1
- data/Rakefile +12 -14
- data/karousel.gemspec +21 -15
- data/lib/karousel.rb +13 -6
- data/lib/karousel/client_job.rb +3 -1
- data/lib/karousel/errors.rb +3 -0
- data/lib/karousel/job.rb +9 -7
- data/lib/karousel/version.rb +3 -1
- data/spec/job_spec.rb +7 -7
- data/spec/karousel_spec.rb +47 -32
- data/spec/spec_helper.rb +6 -12
- data/spec/support/client_job_dummy.rb +8 -11
- data/spec/support/dummy_server.rb +3 -2
- metadata +84 -26
- data/Gemfile.lock +0 -47
- data/features/karousel.feature +0 -9
- data/features/step_definitions/karousel_steps.rb +0 -0
- data/features/support/env.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 606a6df4c01aeba6bf5bc220e1506d168e096b2f
|
4
|
+
data.tar.gz: edc41e330cd23cde31aefca7ab1f14f250c9a79a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d63da985e2de623a59bf0a7af7c839ba62f1e92b1857d5410344b509ba48886deaebaaa2f823d96cb0be96503bfc1aecdb47306242e8459f10ad51d84d8a9aff
|
7
|
+
data.tar.gz: 587c731ac53170afbe76bfacfa3072450a79120ac60ccd80d2c3fe9e3bf9d3c8e9452a0885822300db5c131dfa560fd9360b77ff3ea3729463b9263c9fc95c21
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/.rubocop.yml
ADDED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.1
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
@@ -1,10 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
group :test, :development do
|
4
|
-
gem 'rake', '~> 10.1'
|
5
|
-
gem 'rspec', '~> 2.14'
|
6
|
-
gem 'debugger', '~> 1.6'
|
7
|
-
gem 'coveralls', '~> 0.7', require: false
|
8
|
-
end
|
1
|
+
# frozen_string_literal: true
|
9
2
|
|
3
|
+
source 'http://rubygems.org'
|
10
4
|
|
5
|
+
gemspec
|
data/README.md
CHANGED
@@ -123,7 +123,7 @@ further details.
|
|
123
123
|
[9]: https://gemnasium.com/GlobalNamesArchitecture/karousel.png
|
124
124
|
[10]: https://gemnasium.com/GlobalNamesArchitecture/karousel
|
125
125
|
[11]: https://github.com/GlobalNamesArchitecture/karousel/blob/master/spec/support/client_job_dummy.rb
|
126
|
-
[12]: https://github.com/GlobalNamesArchitecture/
|
126
|
+
[12]: https://github.com/GlobalNamesArchitecture/karousel_example
|
127
127
|
[13]: http://semver.org/
|
128
128
|
[14]: https://github.com/dimus
|
129
129
|
[15]: https://github.com/dshorthouse
|
data/Rakefile
CHANGED
@@ -1,21 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# encoding: utf-8
|
2
|
-
require 'bundler'
|
3
|
-
require 'rake'
|
4
|
-
require 'rspec/core'
|
5
|
-
require 'rspec/core/rake_task'
|
6
3
|
|
7
|
-
|
4
|
+
require 'bundler/gem_tasks'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
require 'rubocop/rake_task'
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
rescue Bundler::BundlerError => e
|
12
|
-
$stderr.puts e.message
|
13
|
-
$stderr.puts 'Run `bundle install` to install missing gems'
|
14
|
-
exit e.status_code
|
8
|
+
RSpec::Core::RakeTask.new(:rspec) do |rspec|
|
9
|
+
rspec.pattern = 'spec/**/*_spec.rb'
|
15
10
|
end
|
16
11
|
|
17
|
-
|
12
|
+
RuboCop::RakeTask.new
|
13
|
+
|
14
|
+
task default: %i[rubocop rspec]
|
18
15
|
|
19
|
-
|
20
|
-
|
16
|
+
desc 'open an irb session preloaded with this gem'
|
17
|
+
task :console do
|
18
|
+
sh 'irb -r pp -r ./lib/gn_crossmap.rb'
|
21
19
|
end
|
data/karousel.gemspec
CHANGED
@@ -1,22 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('../lib', __FILE__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
|
4
|
-
require 'karousel'
|
6
|
+
require 'karousel/version'
|
5
7
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
your
|
13
|
-
|
8
|
+
Gem::Specification.new do |gem|
|
9
|
+
gem.name = 'karousel'
|
10
|
+
gem.version = Karousel::VERSION
|
11
|
+
gem.authors = ['Dmitry Mozzherin', 'David Shorthouse']
|
12
|
+
gem.email = 'dmozzherin@gmail.com'
|
13
|
+
gem.description = 'Use it if you have way too many items in ' \
|
14
|
+
'your worker gem queue'
|
15
|
+
gem.summary = 'Job dispenser for parallel workers'
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
gem.homepage = 'http://github.com/GlobalNamesArchitecture/karousel'
|
18
|
+
gem.license = 'MIT'
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
s.require_paths = ['lib']
|
21
|
-
end
|
20
|
+
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
21
|
+
gem.require_paths = ['lib']
|
22
22
|
|
23
|
+
gem.add_development_dependency 'byebug', '~> 9.1'
|
24
|
+
gem.add_development_dependency 'coveralls', '~> 0.8'
|
25
|
+
gem.add_development_dependency 'rake', '~> 12.0'
|
26
|
+
gem.add_development_dependency 'rspec', '~> 3.2'
|
27
|
+
gem.add_development_dependency 'rubocop', '~> 0.49'
|
28
|
+
end
|
data/lib/karousel.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'karousel/client_job'
|
4
|
+
require_relative 'karousel/errors'
|
5
|
+
require_relative 'karousel/job'
|
6
|
+
require_relative 'karousel/version'
|
3
7
|
|
8
|
+
# Implements karousel
|
4
9
|
class Karousel
|
5
10
|
attr_reader :size, :seats, :time_interval
|
6
|
-
STATUS = { init: 1, sent: 2, success: 3, failure: 4 }
|
11
|
+
STATUS = { init: 1, sent: 2, success: 3, failure: 4 }.freeze
|
7
12
|
|
8
13
|
def self.version
|
9
14
|
VERSION
|
10
15
|
end
|
11
16
|
|
12
|
-
def initialize(klass, size=10, time_interval = 0)
|
17
|
+
def initialize(klass, size = 10, time_interval = 0)
|
13
18
|
@klass = klass
|
14
19
|
@size = size
|
15
20
|
@time_interval = time_interval
|
@@ -26,7 +31,7 @@ class Karousel
|
|
26
31
|
|
27
32
|
def run(&block)
|
28
33
|
populate
|
29
|
-
until @seats.empty?
|
34
|
+
until @seats.empty?
|
30
35
|
send_request
|
31
36
|
sleep(@time_interval)
|
32
37
|
check_response
|
@@ -52,10 +57,12 @@ class Karousel
|
|
52
57
|
@seats = @seats[@cursor..-1] + @seats[0...@cursor] if @cursor != 0
|
53
58
|
@seats.size.times do
|
54
59
|
job = @seats.shift
|
55
|
-
|
60
|
+
if job.status != :failure && job.finished?
|
61
|
+
job.process
|
62
|
+
else
|
56
63
|
@seats.push(job)
|
64
|
+
end
|
57
65
|
end
|
58
66
|
@cursor = 0
|
59
67
|
end
|
60
|
-
|
61
68
|
end
|
data/lib/karousel/client_job.rb
CHANGED
data/lib/karousel/errors.rb
CHANGED
data/lib/karousel/job.rb
CHANGED
@@ -1,26 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Karousel
|
4
|
+
# Implements a job to be placed on karousel
|
2
5
|
class Job
|
3
6
|
attr_reader :client_job
|
4
7
|
# STATUS = { init: 1, sent: 2, success: 3, failure: 4 }
|
5
8
|
|
6
9
|
def initialize(client_job)
|
7
10
|
unless client_job.is_a?(Karousel::ClientJob)
|
8
|
-
raise
|
11
|
+
raise(TypeError, 'Unknown client job type')
|
9
12
|
end
|
10
13
|
@client_job = client_job
|
11
14
|
end
|
12
15
|
|
13
16
|
def status
|
14
17
|
@status = @client_job.status
|
15
|
-
unless [1,2,3,4].include?(@status)
|
16
|
-
raise
|
18
|
+
unless [1, 2, 3, 4].include?(@status)
|
19
|
+
raise(TypeError, 'Status must be an integer between 1 and 4')
|
17
20
|
end
|
18
21
|
@status
|
19
22
|
end
|
20
23
|
|
21
|
-
def status=
|
22
|
-
unless [1,2,3,4].include?(new_status)
|
23
|
-
raise
|
24
|
+
def status=(new_status)
|
25
|
+
unless [1, 2, 3, 4].include?(new_status)
|
26
|
+
raise(TypeError, 'Status must be an integer between 1 and 4')
|
24
27
|
end
|
25
28
|
@client_job.status = new_status
|
26
29
|
end
|
@@ -40,6 +43,5 @@ class Karousel
|
|
40
43
|
self.status = (is_ok ? STATUS[:success] : STATUS[:failure])
|
41
44
|
is_ok
|
42
45
|
end
|
43
|
-
|
44
46
|
end
|
45
47
|
end
|
data/lib/karousel/version.rb
CHANGED
data/spec/job_spec.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe Karousel::Job do
|
4
|
+
subject { Karousel::Job.new(ClientJobDummy.new) }
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
describe '.new' do
|
7
|
+
it 'instantiates' do
|
8
|
+
expect(subject).to be_kind_of Karousel::Job
|
9
|
+
expect(subject.client_job).to be_kind_of ClientJobDummy
|
10
|
+
end
|
9
11
|
end
|
10
|
-
|
11
12
|
end
|
12
|
-
|
data/spec/karousel_spec.rb
CHANGED
@@ -1,49 +1,64 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
@karousel = Karousel.new(ClientJobDummy, 20, 0)
|
6
|
-
end
|
3
|
+
describe Karousel do
|
4
|
+
subject { Karousel.new(ClientJobDummy, 20, 0) }
|
7
5
|
|
8
6
|
before(:each) do
|
9
7
|
ClientJobDummy.reset
|
10
8
|
end
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
it "should initiate" do
|
17
|
-
k = Karousel.new(ClientJobDummy, 20, 0)
|
18
|
-
k.class.should == Karousel
|
10
|
+
describe '.version' do
|
11
|
+
it 'has version' do
|
12
|
+
expect(Karousel.version).to match(/^[\d]+\.[\d]+\.[\d]+$/)
|
13
|
+
end
|
19
14
|
end
|
20
15
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
describe '.new' do
|
17
|
+
it 'initiates' do
|
18
|
+
expect(subject).to be_kind_of Karousel
|
19
|
+
end
|
25
20
|
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
karousel.run do
|
31
|
-
count += 1
|
32
|
-
if count < 10
|
33
|
-
karousel.seats[1].class.should == Karousel::Job
|
34
|
-
karousel.seats[1].client_job.class.should == ClientJobDummy
|
35
|
-
end
|
21
|
+
|
22
|
+
describe '#size' do
|
23
|
+
it 'has size' do
|
24
|
+
expect(subject.size).to eq 20
|
36
25
|
end
|
37
26
|
end
|
38
27
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
@karousel.seats[0].class == Karousel::Job
|
44
|
-
@karousel.seats[0].status.should == Karousel::STATUS[:init]
|
28
|
+
describe '#time_interval' do
|
29
|
+
it 'has time_interval accessor' do
|
30
|
+
expect(subject.time_interval).to eq 0
|
31
|
+
end
|
45
32
|
end
|
46
33
|
|
34
|
+
describe '#seats' do
|
35
|
+
it 'has seats' do
|
36
|
+
expect(subject.seats).to be_kind_of Array
|
37
|
+
expect(subject.seats.size).to eq 0
|
38
|
+
end
|
39
|
+
end
|
47
40
|
|
41
|
+
describe '#run' do
|
42
|
+
it 'should run with block' do
|
43
|
+
count = 0
|
44
|
+
subject.run do
|
45
|
+
count += 1
|
46
|
+
if count < 10
|
47
|
+
expect(subject.seats[1]).to be_kind_of Karousel::Job
|
48
|
+
expect(subject.seats[1].client_job)
|
49
|
+
.to be_kind_of ClientJobDummy
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
48
54
|
|
55
|
+
describe '#populate' do
|
56
|
+
it 'loads jobs on karousel' do
|
57
|
+
expect(subject.seats.size).to eq 0
|
58
|
+
subject.populate
|
59
|
+
expect(subject.seats.size).to eq 20
|
60
|
+
expect(subject.seats[0]).to be_kind_of Karousel::Job
|
61
|
+
expect(subject.seats[0].status).to eq Karousel::STATUS[:init]
|
62
|
+
end
|
63
|
+
end
|
49
64
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'coveralls'
|
2
4
|
Coveralls.wear!
|
3
5
|
|
4
|
-
$LOAD_PATH.unshift(File.join(
|
5
|
-
$LOAD_PATH.unshift(
|
6
|
-
require 'rspec'
|
6
|
+
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
7
|
+
$LOAD_PATH.unshift(__dir__)
|
7
8
|
require 'karousel'
|
8
|
-
|
9
|
-
|
10
|
-
# Requires supporting files with custom matchers and macros, etc,
|
11
|
-
# in ./support/ and its subdirectories.
|
12
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
13
|
-
|
14
|
-
RSpec.configure do |config|
|
15
|
-
|
16
|
-
end
|
9
|
+
require 'support/client_job_dummy'
|
10
|
+
require 'support/dummy_server'
|
@@ -1,16 +1,16 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class ClientJobDummy < Karousel::ClientJob
|
4
|
-
|
5
|
-
|
4
|
+
@dummy_data = 0
|
5
|
+
|
6
6
|
def self.reset
|
7
|
-
|
7
|
+
@dummy_data = 0
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.populate(karousel_size)
|
11
|
-
|
12
|
-
return [] if
|
13
|
-
karousel_size
|
11
|
+
@dummy_data += karousel_size
|
12
|
+
return [] if @dummy_data > 100
|
13
|
+
Array.new(karousel_size, new)
|
14
14
|
end
|
15
15
|
|
16
16
|
def send
|
@@ -23,8 +23,5 @@ class ClientJobDummy < Karousel::ClientJob
|
|
23
23
|
@server.are_we_there_yet_request
|
24
24
|
end
|
25
25
|
|
26
|
-
def process
|
27
|
-
end
|
28
|
-
|
26
|
+
def process; end
|
29
27
|
end
|
30
|
-
|
@@ -1,5 +1,7 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# Dummy Server for specs
|
4
|
+
class DummyServer
|
3
5
|
def first_request
|
4
6
|
@wait_num = rand(10) + 1
|
5
7
|
@tries_num = 0
|
@@ -9,5 +11,4 @@ class DummyServer
|
|
9
11
|
@tries_num += 1
|
10
12
|
@tries_num == @wait_num ? true : false
|
11
13
|
end
|
12
|
-
|
13
14
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: karousel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Mozzherin
|
@@ -9,23 +9,92 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
15
|
-
|
12
|
+
date: 2017-08-25 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: byebug
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '9.1'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '9.1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: coveralls
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0.8'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0.8'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '12.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '12.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rspec
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.2'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.2'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rubocop
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0.49'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0.49'
|
84
|
+
description: Use it if you have way too many items in your worker gem queue
|
16
85
|
email: dmozzherin@gmail.com
|
17
86
|
executables: []
|
18
87
|
extensions: []
|
19
88
|
extra_rdoc_files: []
|
20
89
|
files:
|
21
|
-
- .document
|
22
|
-
- .gitignore
|
23
|
-
- .rspec
|
24
|
-
- .
|
25
|
-
- .
|
90
|
+
- ".document"
|
91
|
+
- ".gitignore"
|
92
|
+
- ".rspec"
|
93
|
+
- ".rubocop.yml"
|
94
|
+
- ".ruby-version"
|
95
|
+
- ".travis.yml"
|
26
96
|
- CHANGELOG
|
27
97
|
- Gemfile
|
28
|
-
- Gemfile.lock
|
29
98
|
- LICENSE.txt
|
30
99
|
- README.md
|
31
100
|
- Rakefile
|
@@ -49,9 +118,6 @@ files:
|
|
49
118
|
- bin/term_display
|
50
119
|
- bin/term_mandel
|
51
120
|
- bin/thor
|
52
|
-
- features/karousel.feature
|
53
|
-
- features/step_definitions/karousel_steps.rb
|
54
|
-
- features/support/env.rb
|
55
121
|
- karousel.gemspec
|
56
122
|
- lib/karousel.rb
|
57
123
|
- lib/karousel/client_job.rb
|
@@ -73,26 +139,18 @@ require_paths:
|
|
73
139
|
- lib
|
74
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
75
141
|
requirements:
|
76
|
-
- -
|
142
|
+
- - ">="
|
77
143
|
- !ruby/object:Gem::Version
|
78
144
|
version: '0'
|
79
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
146
|
requirements:
|
81
|
-
- -
|
147
|
+
- - ">="
|
82
148
|
- !ruby/object:Gem::Version
|
83
149
|
version: '0'
|
84
150
|
requirements: []
|
85
151
|
rubyforge_project:
|
86
|
-
rubygems_version: 2.
|
152
|
+
rubygems_version: 2.6.11
|
87
153
|
signing_key:
|
88
154
|
specification_version: 4
|
89
155
|
summary: Job dispenser for parallel workers
|
90
|
-
test_files:
|
91
|
-
- features/karousel.feature
|
92
|
-
- features/step_definitions/karousel_steps.rb
|
93
|
-
- features/support/env.rb
|
94
|
-
- spec/job_spec.rb
|
95
|
-
- spec/karousel_spec.rb
|
96
|
-
- spec/spec_helper.rb
|
97
|
-
- spec/support/client_job_dummy.rb
|
98
|
-
- spec/support/dummy_server.rb
|
156
|
+
test_files: []
|
data/Gemfile.lock
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
columnize (0.3.6)
|
5
|
-
coveralls (0.7.0)
|
6
|
-
multi_json (~> 1.3)
|
7
|
-
rest-client
|
8
|
-
simplecov (>= 0.7)
|
9
|
-
term-ansicolor
|
10
|
-
thor
|
11
|
-
debugger (1.6.1)
|
12
|
-
columnize (>= 0.3.1)
|
13
|
-
debugger-linecache (~> 1.2.0)
|
14
|
-
debugger-ruby_core_source (~> 1.2.3)
|
15
|
-
debugger-linecache (1.2.0)
|
16
|
-
debugger-ruby_core_source (1.2.3)
|
17
|
-
diff-lcs (1.2.4)
|
18
|
-
mime-types (1.25)
|
19
|
-
multi_json (1.8.0)
|
20
|
-
rake (10.1.0)
|
21
|
-
rest-client (1.6.7)
|
22
|
-
mime-types (>= 1.16)
|
23
|
-
rspec (2.14.1)
|
24
|
-
rspec-core (~> 2.14.0)
|
25
|
-
rspec-expectations (~> 2.14.0)
|
26
|
-
rspec-mocks (~> 2.14.0)
|
27
|
-
rspec-core (2.14.5)
|
28
|
-
rspec-expectations (2.14.2)
|
29
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
30
|
-
rspec-mocks (2.14.3)
|
31
|
-
simplecov (0.7.1)
|
32
|
-
multi_json (~> 1.0)
|
33
|
-
simplecov-html (~> 0.7.1)
|
34
|
-
simplecov-html (0.7.1)
|
35
|
-
term-ansicolor (1.2.2)
|
36
|
-
tins (~> 0.8)
|
37
|
-
thor (0.18.1)
|
38
|
-
tins (0.9.0)
|
39
|
-
|
40
|
-
PLATFORMS
|
41
|
-
ruby
|
42
|
-
|
43
|
-
DEPENDENCIES
|
44
|
-
coveralls (~> 0.7)
|
45
|
-
debugger (~> 1.6)
|
46
|
-
rake (~> 10.1)
|
47
|
-
rspec (~> 2.14)
|
data/features/karousel.feature
DELETED
File without changes
|
data/features/support/env.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
begin
|
3
|
-
Bundler.setup(:default, :development)
|
4
|
-
rescue Bundler::BundlerError => e
|
5
|
-
$stderr.puts e.message
|
6
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
7
|
-
exit e.status_code
|
8
|
-
end
|
9
|
-
|
10
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
|
11
|
-
require 'karousel'
|
12
|
-
|
13
|
-
require 'rspec/expectations'
|