say_when 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/say_when/scheduler.rb +6 -8
- data/lib/say_when/version.rb +1 -1
- data/test/say_when/scheduler_test.rb +4 -4
- 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: 659f1d92ff0ba2e4ca3c162ab36255868cfa4f1e
|
4
|
+
data.tar.gz: fd29bc29fbf787899ce18dcf91b165a684c205cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a7c57379229dc78237034625d3cbbb75089c35aef118976b0b2252e7d58a8a214c98f7018aa5584c868c8d74d34dbe46c9003c725d7a34502a67d2668d3e5f2
|
7
|
+
data.tar.gz: c31787d123c46fd1892291ed1d5f96d2859f8c76d7e7f18588d440c98b5fc55425243390348c7a614386177cefd43efe92658f163f6daf646856a63e35258cdc
|
data/lib/say_when/scheduler.rb
CHANGED
@@ -46,12 +46,16 @@ module SayWhen
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def job_options(job)
|
49
|
-
{
|
49
|
+
opts = {
|
50
50
|
scheduled: extract_scheduled(job),
|
51
51
|
job_class: extract_job_class(job),
|
52
52
|
job_method: extract_job_method(job),
|
53
53
|
data: extract_data(job)
|
54
54
|
}
|
55
|
+
unless opts[:scheduled] || opts[:job_class]
|
56
|
+
raise "No job class or scheduled option: #{job.inspect}\nopts: #{opts.inspect}"
|
57
|
+
end
|
58
|
+
opts
|
55
59
|
end
|
56
60
|
|
57
61
|
def extract_scheduled(job)
|
@@ -59,19 +63,13 @@ module SayWhen
|
|
59
63
|
end
|
60
64
|
|
61
65
|
def extract_job_class(job)
|
62
|
-
|
66
|
+
if job.is_a?(Hash)
|
63
67
|
job[:class] || job[:job_class]
|
64
68
|
elsif job.is_a?(Class)
|
65
69
|
job.name
|
66
70
|
elsif job.is_a?(String)
|
67
71
|
job
|
68
72
|
end
|
69
|
-
|
70
|
-
if !job_class
|
71
|
-
raise "Could not identify job class from: #{job}"
|
72
|
-
end
|
73
|
-
|
74
|
-
job_class
|
75
73
|
end
|
76
74
|
|
77
75
|
def extract_job_method(job)
|
data/lib/say_when/version.rb
CHANGED
@@ -26,16 +26,16 @@ describe SayWhen::Scheduler do
|
|
26
26
|
scheduler.extract_job_class(class: 'foo').must_equal 'foo'
|
27
27
|
scheduler.extract_job_class(SayWhen::Test::TestTask).must_equal 'SayWhen::Test::TestTask'
|
28
28
|
scheduler.extract_job_class('SayWhen::Test::TestTask').must_equal 'SayWhen::Test::TestTask'
|
29
|
-
|
30
|
-
lambda do
|
31
|
-
scheduler.extract_job_class(bar: 'foo')
|
32
|
-
end.must_raise RuntimeError
|
33
29
|
end
|
34
30
|
|
35
31
|
it 'gets job options' do
|
36
32
|
keys = [:job_class, :job_method, :data]
|
37
33
|
opts = scheduler.job_options(keys.inject({}) { |s, k| s[k] = k.to_s; s } )
|
38
34
|
keys.each{|k| opts[k].must_equal k.to_s }
|
35
|
+
|
36
|
+
lambda do
|
37
|
+
scheduler.job_options(bar: 'foo')
|
38
|
+
end.must_raise RuntimeError
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'can schedule a new job' do
|