sidekiq-cron 0.2.0 → 0.3.0
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 +7 -0
- data/.travis.yml +2 -3
- data/Changes.md +6 -1
- data/Gemfile +10 -9
- data/README.md +83 -9
- data/Rakefile +3 -1
- data/VERSION +1 -1
- data/lib/sidekiq/cron.rb +1 -18
- data/lib/sidekiq/cron/job.rb +71 -12
- data/lib/sidekiq/cron/views/cron.erb +5 -5
- data/lib/sidekiq/cron/views/cron.slim +7 -7
- data/lib/sidekiq/cron/web.rb +12 -0
- data/sidekiq-cron.gemspec +13 -8
- data/test/test_helper.rb +2 -7
- data/test/unit/job_test.rb +587 -462
- data/test/unit/poller_test.rb +123 -127
- data/test/unit/web_extesion_test.rb +63 -68
- metadata +62 -84
data/test/unit/poller_test.rb
CHANGED
@@ -2,161 +2,157 @@
|
|
2
2
|
require './test/test_helper'
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
describe 'Cron Poller' do
|
6
|
+
before do
|
7
|
+
Sidekiq.redis = REDIS
|
8
|
+
Sidekiq.redis do |conn|
|
9
|
+
conn.flushdb
|
10
|
+
end
|
6
11
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
conn.flushdb
|
12
|
+
#clear all previous saved data from redis
|
13
|
+
Sidekiq.redis do |conn|
|
14
|
+
conn.keys("cron_job*").each do |key|
|
15
|
+
conn.del(key)
|
12
16
|
end
|
17
|
+
end
|
13
18
|
|
14
|
-
#clear all previous saved data from redis
|
15
|
-
Sidekiq.redis do |conn|
|
16
|
-
conn.keys("cron_job*").each do |key|
|
17
|
-
conn.del(key)
|
18
|
-
end
|
19
|
-
end
|
20
19
|
|
20
|
+
@args = {
|
21
|
+
name: "Test",
|
22
|
+
cron: "*/2 * * * *",
|
23
|
+
klass: "CronTestClass"
|
24
|
+
}
|
25
|
+
@args2 = @args.merge(name: 'with_queue', klass: 'CronTestClassWithQueue', cron: "*/10 * * * *")
|
21
26
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
klass: "CronTestClass"
|
26
|
-
}
|
27
|
-
@args2 = @args.merge(name: 'with_queue', klass: 'CronTestClassWithQueue', cron: "*/10 * * * *")
|
27
|
+
Celluloid.boot
|
28
|
+
@poller = Sidekiq::Cron::Poller.new
|
29
|
+
end
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
after do
|
32
|
+
Celluloid.shutdown
|
33
|
+
end
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
it 'not enqueue any job - new jobs' do
|
36
|
+
now = Time.now
|
37
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 5, 1)
|
38
|
+
Time.stubs(:now).returns(enqueued_time)
|
39
|
+
#new jobs!
|
40
|
+
Sidekiq::Cron::Job.create(@args)
|
41
|
+
Sidekiq::Cron::Job.create(@args2)
|
42
|
+
|
43
|
+
@poller.poll
|
36
44
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
#new jobs!
|
42
|
-
Sidekiq::Cron::Job.create(@args)
|
43
|
-
Sidekiq::Cron::Job.create(@args2)
|
45
|
+
Sidekiq.redis do |conn|
|
46
|
+
assert_equal 0, conn.llen("queue:default")
|
47
|
+
assert_equal 0, conn.llen("queue:super")
|
48
|
+
end
|
44
49
|
|
45
|
-
|
50
|
+
#30 seconds after!
|
51
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 5, 30)
|
52
|
+
Time.stubs(:now).returns(enqueued_time)
|
53
|
+
@poller.poll
|
46
54
|
|
47
55
|
Sidekiq.redis do |conn|
|
48
56
|
assert_equal 0, conn.llen("queue:default")
|
49
57
|
assert_equal 0, conn.llen("queue:super")
|
50
58
|
end
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should enqueue only job with cron */2' do
|
62
|
+
now = Time.now
|
63
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 5, 1)
|
64
|
+
Time.stubs(:now).returns(enqueued_time)
|
65
|
+
#new jobs!
|
66
|
+
Sidekiq::Cron::Job.create(@args)
|
67
|
+
Sidekiq::Cron::Job.create(@args2)
|
51
68
|
|
52
|
-
|
53
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 5, 30)
|
54
|
-
Time.stubs(:now).returns(enqueued_time)
|
55
|
-
@poller.poll
|
69
|
+
@poller.poll
|
56
70
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
71
|
+
Sidekiq.redis do |conn|
|
72
|
+
assert_equal 0, conn.llen("queue:default")
|
73
|
+
assert_equal 0, conn.llen("queue:super")
|
61
74
|
end
|
62
75
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
Time.stubs(:now).returns(enqueued_time)
|
67
|
-
#new jobs!
|
68
|
-
Sidekiq::Cron::Job.create(@args)
|
69
|
-
Sidekiq::Cron::Job.create(@args2)
|
70
|
-
|
71
|
-
@poller.poll
|
72
|
-
|
73
|
-
Sidekiq.redis do |conn|
|
74
|
-
assert_equal 0, conn.llen("queue:default")
|
75
|
-
assert_equal 0, conn.llen("queue:super")
|
76
|
-
end
|
76
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 6, 1)
|
77
|
+
Time.stubs(:now).returns(enqueued_time)
|
78
|
+
@poller.poll
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
Sidekiq.redis do |conn|
|
83
|
-
assert_equal 1, conn.llen("queue:default")
|
84
|
-
assert_equal 0, conn.llen("queue:super")
|
85
|
-
end
|
80
|
+
Sidekiq.redis do |conn|
|
81
|
+
assert_equal 1, conn.llen("queue:default")
|
82
|
+
assert_equal 0, conn.llen("queue:super")
|
86
83
|
end
|
84
|
+
end
|
87
85
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
@poller.poll
|
97
|
-
|
98
|
-
Sidekiq.redis do |conn|
|
99
|
-
assert_equal 0, conn.llen("queue:default")
|
100
|
-
assert_equal 0, conn.llen("queue:super")
|
101
|
-
end
|
86
|
+
it 'should enqueue both jobs' do
|
87
|
+
now = Time.now
|
88
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 8, 1)
|
89
|
+
Time.stubs(:now).returns(enqueued_time)
|
90
|
+
#new jobs!
|
91
|
+
Sidekiq::Cron::Job.create(@args)
|
92
|
+
Sidekiq::Cron::Job.create(@args2)
|
102
93
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
assert_equal 1, conn.llen("queue:default")
|
109
|
-
assert_equal 1, conn.llen("queue:super")
|
110
|
-
end
|
94
|
+
@poller.poll
|
95
|
+
|
96
|
+
Sidekiq.redis do |conn|
|
97
|
+
assert_equal 0, conn.llen("queue:default")
|
98
|
+
assert_equal 0, conn.llen("queue:super")
|
111
99
|
end
|
112
100
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
Time.stubs(:now).returns(enqueued_time)
|
117
|
-
#new jobs!
|
118
|
-
Sidekiq::Cron::Job.create(@args)
|
119
|
-
Sidekiq::Cron::Job.create(@args2)
|
120
|
-
|
121
|
-
@poller.poll
|
122
|
-
|
123
|
-
Sidekiq.redis do |conn|
|
124
|
-
assert_equal 0, conn.llen("queue:default")
|
125
|
-
assert_equal 0, conn.llen("queue:super")
|
126
|
-
end
|
101
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 10, 5)
|
102
|
+
Time.stubs(:now).returns(enqueued_time)
|
103
|
+
@poller.poll
|
127
104
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
assert_equal 1, conn.llen("queue:super")
|
134
|
-
end
|
105
|
+
Sidekiq.redis do |conn|
|
106
|
+
assert_equal 1, conn.llen("queue:default")
|
107
|
+
assert_equal 1, conn.llen("queue:super")
|
108
|
+
end
|
109
|
+
end
|
135
110
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
111
|
+
it 'should enqueue both jobs but only one time each' do
|
112
|
+
now = Time.now
|
113
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 8, 1)
|
114
|
+
Time.stubs(:now).returns(enqueued_time)
|
115
|
+
#new jobs!
|
116
|
+
Sidekiq::Cron::Job.create(@args)
|
117
|
+
Sidekiq::Cron::Job.create(@args2)
|
143
118
|
|
144
|
-
|
145
|
-
Time.stubs(:now).returns(enqueued_time)
|
146
|
-
@poller.poll false
|
147
|
-
Sidekiq.redis do |conn|
|
148
|
-
assert_equal 1, conn.llen("queue:default")
|
149
|
-
assert_equal 1, conn.llen("queue:super")
|
150
|
-
end
|
119
|
+
@poller.poll
|
151
120
|
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
121
|
+
Sidekiq.redis do |conn|
|
122
|
+
assert_equal 0, conn.llen("queue:default")
|
123
|
+
assert_equal 0, conn.llen("queue:super")
|
124
|
+
end
|
125
|
+
|
126
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 20, 1)
|
127
|
+
Time.stubs(:now).returns(enqueued_time)
|
128
|
+
@poller.poll false
|
129
|
+
Sidekiq.redis do |conn|
|
130
|
+
assert_equal 1, conn.llen("queue:default")
|
131
|
+
assert_equal 1, conn.llen("queue:super")
|
132
|
+
end
|
133
|
+
|
134
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 20, 2)
|
135
|
+
Time.stubs(:now).returns(enqueued_time)
|
136
|
+
@poller.poll false
|
137
|
+
Sidekiq.redis do |conn|
|
138
|
+
assert_equal 1, conn.llen("queue:default")
|
139
|
+
assert_equal 1, conn.llen("queue:super")
|
159
140
|
end
|
160
141
|
|
142
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 20, 20)
|
143
|
+
Time.stubs(:now).returns(enqueued_time)
|
144
|
+
@poller.poll false
|
145
|
+
Sidekiq.redis do |conn|
|
146
|
+
assert_equal 1, conn.llen("queue:default")
|
147
|
+
assert_equal 1, conn.llen("queue:super")
|
148
|
+
end
|
149
|
+
|
150
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour + 1, 20, 50)
|
151
|
+
Time.stubs(:now).returns(enqueued_time)
|
152
|
+
@poller.poll false
|
153
|
+
Sidekiq.redis do |conn|
|
154
|
+
assert_equal 1, conn.llen("queue:default")
|
155
|
+
assert_equal 1, conn.llen("queue:super")
|
156
|
+
end
|
161
157
|
end
|
162
|
-
end
|
158
|
+
end
|
@@ -1,94 +1,89 @@
|
|
1
1
|
require './test/test_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
Sidekiq::Web
|
7
|
-
end
|
3
|
+
def app
|
4
|
+
Sidekiq::Web
|
5
|
+
end
|
8
6
|
|
9
|
-
|
10
|
-
|
7
|
+
describe 'Cron web' do
|
8
|
+
include Rack::Test::Methods
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
before do
|
11
|
+
Sidekiq.redis = REDIS
|
12
|
+
Sidekiq.redis {|c| c.flushdb }
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
14
|
+
#clear all previous saved data from redis
|
15
|
+
Sidekiq.redis do |conn|
|
16
|
+
conn.keys("cron_job*").each do |key|
|
17
|
+
conn.del(key)
|
21
18
|
end
|
22
|
-
|
23
|
-
@args = {
|
24
|
-
name: "TestNameOfCronJob",
|
25
|
-
cron: "*/2 * * * *",
|
26
|
-
klass: "CronTestClass"
|
27
|
-
}
|
28
|
-
|
29
19
|
end
|
30
20
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
21
|
+
@args = {
|
22
|
+
name: "TestNameOfCronJob",
|
23
|
+
cron: "*/2 * * * *",
|
24
|
+
klass: "CronTestClass"
|
25
|
+
}
|
35
26
|
|
36
|
-
|
37
|
-
get '/cron'
|
38
|
-
assert last_response.body.include?('No cron jobs found')
|
39
|
-
end
|
27
|
+
end
|
40
28
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
refute last_response.body.include?('No cron jobs found')
|
46
|
-
assert last_response.body.include?('table')
|
47
|
-
assert last_response.body.include?("TestNameOfCronJob")
|
48
|
-
end
|
29
|
+
it 'display cron web' do
|
30
|
+
get '/cron'
|
31
|
+
assert_equal 200, last_response.status
|
32
|
+
end
|
49
33
|
|
50
|
-
|
34
|
+
it 'display cron web with message - no cron jobs' do
|
35
|
+
get '/cron'
|
36
|
+
assert last_response.body.include?('No cron jobs found')
|
37
|
+
end
|
51
38
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
39
|
+
it 'display cron web with cron jobs table' do
|
40
|
+
Sidekiq::Cron::Job.create(@args)
|
41
|
+
get '/cron'
|
42
|
+
assert_equal 200, last_response.status
|
43
|
+
refute last_response.body.include?('No cron jobs found')
|
44
|
+
assert last_response.body.include?('table')
|
45
|
+
assert last_response.body.include?("TestNameOfCronJob")
|
46
|
+
end
|
57
47
|
|
58
|
-
|
59
|
-
post "/cron/#{@name}/disable"
|
60
|
-
assert_equal Sidekiq::Cron::Job.find(@name).status, "disabled"
|
48
|
+
describe "work with cron job" do
|
61
49
|
|
62
|
-
|
63
|
-
|
64
|
-
|
50
|
+
before do
|
51
|
+
@job = Sidekiq::Cron::Job.new(@args.merge(status: "enabled"))
|
52
|
+
@job.save
|
53
|
+
@name = "TestNameOfCronJob"
|
54
|
+
end
|
65
55
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
56
|
+
it "disable and enable cron job" do
|
57
|
+
post "/cron/#{@name}/disable"
|
58
|
+
assert_equal Sidekiq::Cron::Job.find(@name).status, "disabled"
|
70
59
|
|
71
|
-
|
60
|
+
post "/cron/#{@name}/enable"
|
61
|
+
assert_equal Sidekiq::Cron::Job.find(@name).status, "enabled"
|
62
|
+
end
|
72
63
|
|
73
|
-
|
74
|
-
|
75
|
-
|
64
|
+
it "enqueue job" do
|
65
|
+
Sidekiq.redis do |conn|
|
66
|
+
assert_equal 0, conn.llen("queue:default"), "Queue should have no jobs"
|
67
|
+
end
|
76
68
|
|
77
|
-
|
78
|
-
post "/cron/#{@name}/enque"
|
69
|
+
post "/cron/#{@name}/enque"
|
79
70
|
|
80
|
-
|
81
|
-
|
82
|
-
end
|
71
|
+
Sidekiq.redis do |conn|
|
72
|
+
assert_equal 1, conn.llen("queue:default"), "Queue should have 1 job"
|
83
73
|
end
|
84
74
|
|
85
|
-
should
|
86
|
-
|
87
|
-
post "/cron/#{@name}/delete"
|
88
|
-
assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
|
89
|
-
end
|
75
|
+
#should enqueue more times
|
76
|
+
post "/cron/#{@name}/enque"
|
90
77
|
|
78
|
+
Sidekiq.redis do |conn|
|
79
|
+
assert_equal 2, conn.llen("queue:default"), "Queue should have 2 job"
|
80
|
+
end
|
81
|
+
end
|
91
82
|
|
83
|
+
it "destroy job" do
|
84
|
+
assert_equal Sidekiq::Cron::Job.all.size, 1, "Should have 1 job"
|
85
|
+
post "/cron/#{@name}/delete"
|
86
|
+
assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
|
92
87
|
end
|
93
88
|
end
|
94
89
|
end
|
metadata
CHANGED
@@ -1,270 +1,251 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ondrej Bartas
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-06-26 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: tilt
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - <
|
17
|
+
- - "<"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - <
|
24
|
+
- - "<"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.0.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: sidekiq
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 2.17.3
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 2.17.3
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rufus-scheduler
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: 2.0.24
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: 2.0.24
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: bundler
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: simplecov
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - ">="
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - ">="
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: shoulda-context
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ">="
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ">="
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
98
|
+
name: rack
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - ">="
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
|
-
name: rack
|
112
|
+
name: rack-test
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - ">="
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - ">="
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
|
-
name:
|
126
|
+
name: jeweler
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.8.3
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.8.3
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: minitest
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
148
144
|
- !ruby/object:Gem::Version
|
149
145
|
version: '0'
|
150
146
|
type: :development
|
151
147
|
prerelease: false
|
152
148
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
149
|
requirements:
|
155
|
-
- -
|
150
|
+
- - ">="
|
156
151
|
- !ruby/object:Gem::Version
|
157
152
|
version: '0'
|
158
153
|
- !ruby/object:Gem::Dependency
|
159
|
-
name:
|
154
|
+
name: test-unit
|
160
155
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
156
|
requirements:
|
163
|
-
- -
|
157
|
+
- - ">="
|
164
158
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
159
|
+
version: '0'
|
166
160
|
type: :development
|
167
161
|
prerelease: false
|
168
162
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
163
|
requirements:
|
171
|
-
- -
|
164
|
+
- - ">="
|
172
165
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
166
|
+
version: '0'
|
174
167
|
- !ruby/object:Gem::Dependency
|
175
168
|
name: sdoc
|
176
169
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
170
|
requirements:
|
179
|
-
- -
|
171
|
+
- - ">="
|
180
172
|
- !ruby/object:Gem::Version
|
181
173
|
version: '0'
|
182
174
|
type: :development
|
183
175
|
prerelease: false
|
184
176
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
177
|
requirements:
|
187
|
-
- -
|
178
|
+
- - ">="
|
188
179
|
- !ruby/object:Gem::Version
|
189
180
|
version: '0'
|
190
181
|
- !ruby/object:Gem::Dependency
|
191
182
|
name: slim
|
192
183
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
184
|
requirements:
|
195
|
-
- -
|
185
|
+
- - ">="
|
196
186
|
- !ruby/object:Gem::Version
|
197
187
|
version: '0'
|
198
188
|
type: :development
|
199
189
|
prerelease: false
|
200
190
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
191
|
requirements:
|
203
|
-
- -
|
192
|
+
- - ">="
|
204
193
|
- !ruby/object:Gem::Version
|
205
194
|
version: '0'
|
206
195
|
- !ruby/object:Gem::Dependency
|
207
196
|
name: sinatra
|
208
197
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
198
|
requirements:
|
211
|
-
- -
|
199
|
+
- - ">="
|
212
200
|
- !ruby/object:Gem::Version
|
213
201
|
version: '0'
|
214
202
|
type: :development
|
215
203
|
prerelease: false
|
216
204
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
205
|
requirements:
|
219
|
-
- -
|
206
|
+
- - ">="
|
220
207
|
- !ruby/object:Gem::Version
|
221
208
|
version: '0'
|
222
209
|
- !ruby/object:Gem::Dependency
|
223
210
|
name: mocha
|
224
211
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
212
|
requirements:
|
227
|
-
- -
|
213
|
+
- - ">="
|
228
214
|
- !ruby/object:Gem::Version
|
229
215
|
version: '0'
|
230
216
|
type: :development
|
231
217
|
prerelease: false
|
232
218
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
219
|
requirements:
|
235
|
-
- -
|
220
|
+
- - ">="
|
236
221
|
- !ruby/object:Gem::Version
|
237
222
|
version: '0'
|
238
223
|
- !ruby/object:Gem::Dependency
|
239
224
|
name: coveralls
|
240
225
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
226
|
requirements:
|
243
|
-
- -
|
227
|
+
- - ">="
|
244
228
|
- !ruby/object:Gem::Version
|
245
229
|
version: '0'
|
246
230
|
type: :development
|
247
231
|
prerelease: false
|
248
232
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
233
|
requirements:
|
251
|
-
- -
|
234
|
+
- - ">="
|
252
235
|
- !ruby/object:Gem::Version
|
253
236
|
version: '0'
|
254
237
|
- !ruby/object:Gem::Dependency
|
255
238
|
name: shotgun
|
256
239
|
requirement: !ruby/object:Gem::Requirement
|
257
|
-
none: false
|
258
240
|
requirements:
|
259
|
-
- -
|
241
|
+
- - ">="
|
260
242
|
- !ruby/object:Gem::Version
|
261
243
|
version: '0'
|
262
244
|
type: :development
|
263
245
|
prerelease: false
|
264
246
|
version_requirements: !ruby/object:Gem::Requirement
|
265
|
-
none: false
|
266
247
|
requirements:
|
267
|
-
- -
|
248
|
+
- - ">="
|
268
249
|
- !ruby/object:Gem::Version
|
269
250
|
version: '0'
|
270
251
|
description: Enables to set jobs to be run in specified time (using CRON notation)
|
@@ -275,8 +256,8 @@ extra_rdoc_files:
|
|
275
256
|
- LICENSE.txt
|
276
257
|
- README.md
|
277
258
|
files:
|
278
|
-
- .document
|
279
|
-
- .travis.yml
|
259
|
+
- ".document"
|
260
|
+
- ".travis.yml"
|
280
261
|
- Changes.md
|
281
262
|
- Gemfile
|
282
263
|
- LICENSE.txt
|
@@ -294,6 +275,7 @@ files:
|
|
294
275
|
- lib/sidekiq/cron/poller.rb
|
295
276
|
- lib/sidekiq/cron/views/cron.erb
|
296
277
|
- lib/sidekiq/cron/views/cron.slim
|
278
|
+
- lib/sidekiq/cron/web.rb
|
297
279
|
- lib/sidekiq/cron/web_extension.rb
|
298
280
|
- sidekiq-cron.gemspec
|
299
281
|
- test/test_helper.rb
|
@@ -303,29 +285,25 @@ files:
|
|
303
285
|
homepage: http://github.com/ondrejbartas/sidekiq-cron
|
304
286
|
licenses:
|
305
287
|
- MIT
|
288
|
+
metadata: {}
|
306
289
|
post_install_message:
|
307
290
|
rdoc_options: []
|
308
291
|
require_paths:
|
309
292
|
- lib
|
310
293
|
required_ruby_version: !ruby/object:Gem::Requirement
|
311
|
-
none: false
|
312
294
|
requirements:
|
313
|
-
- -
|
295
|
+
- - ">="
|
314
296
|
- !ruby/object:Gem::Version
|
315
297
|
version: '0'
|
316
|
-
segments:
|
317
|
-
- 0
|
318
|
-
hash: -1703053486073250500
|
319
298
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
320
|
-
none: false
|
321
299
|
requirements:
|
322
|
-
- -
|
300
|
+
- - ">="
|
323
301
|
- !ruby/object:Gem::Version
|
324
302
|
version: '0'
|
325
303
|
requirements: []
|
326
304
|
rubyforge_project:
|
327
|
-
rubygems_version:
|
305
|
+
rubygems_version: 2.4.5
|
328
306
|
signing_key:
|
329
|
-
specification_version:
|
307
|
+
specification_version: 4
|
330
308
|
summary: Sidekiq Cron helps to add repeated scheduled jobs
|
331
309
|
test_files: []
|