delayed_job 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+ require 'helper'
2
+
3
+ describe 'Psych::Visitors::ToRuby', :if => defined?(Psych::Visitors::ToRuby) do
4
+ context BigDecimal do
5
+ it 'deserializes correctly' do
6
+ deserialized = YAML.load("--- !ruby/object:BigDecimal 18:0.1337E2\n...\n")
7
+
8
+ expect(deserialized).to be_an_instance_of(BigDecimal)
9
+ expect(deserialized).to eq(BigDecimal('13.37'))
10
+ end
11
+ end
12
+ end
@@ -5,45 +5,73 @@ class NamedJob < Struct.new(:perform)
5
5
  end
6
6
 
7
7
  class SimpleJob
8
- cattr_accessor :runs; self.runs = 0
9
- def perform; @@runs += 1; end
8
+ cattr_accessor :runs
9
+ @runs = 0
10
+ def perform
11
+ self.class.runs += 1
12
+ end
10
13
  end
11
14
 
12
15
  class ErrorJob
13
- cattr_accessor :runs; self.runs = 0
14
- def perform; raise 'did not work'; end
16
+ cattr_accessor :runs
17
+ @runs = 0
18
+ def perform
19
+ raise 'did not work'
20
+ end
15
21
  end
16
22
 
17
23
  class CustomRescheduleJob < Struct.new(:offset)
18
- cattr_accessor :runs; self.runs = 0
19
- def perform; raise 'did not work'; end
20
- def reschedule_at(time, attempts); time + offset; end
24
+ cattr_accessor :runs
25
+ @runs = 0
26
+ def perform
27
+ raise 'did not work'
28
+ end
29
+
30
+ def reschedule_at(time, _attempts)
31
+ time + offset
32
+ end
21
33
  end
22
34
 
23
35
  class LongRunningJob
24
- def perform; sleep 250; end
36
+ def perform
37
+ sleep 250
38
+ end
25
39
  end
26
40
 
27
41
  class OnPermanentFailureJob < SimpleJob
28
- def failure; end
29
- def max_attempts; 1; end
42
+ attr_writer :raise_error
43
+
44
+ def initialize
45
+ @raise_error = false
46
+ end
47
+
48
+ def failure
49
+ raise 'did not work' if @raise_error
50
+ end
51
+
52
+ def max_attempts
53
+ 1
54
+ end
30
55
  end
31
56
 
32
57
  module M
33
58
  class ModuleJob
34
- cattr_accessor :runs; self.runs = 0
35
- def perform; @@runs += 1; end
59
+ cattr_accessor :runs
60
+ @runs = 0
61
+ def perform
62
+ self.class.runs += 1
63
+ end
36
64
  end
37
65
  end
38
66
 
39
67
  class CallbackJob
40
68
  cattr_accessor :messages
41
69
 
42
- def enqueue(job)
70
+ def enqueue(_job)
43
71
  self.class.messages << 'enqueue'
44
72
  end
45
73
 
46
- def before(job)
74
+ def before(_job)
47
75
  self.class.messages << 'before'
48
76
  end
49
77
 
@@ -51,19 +79,19 @@ class CallbackJob
51
79
  self.class.messages << 'perform'
52
80
  end
53
81
 
54
- def after(job)
82
+ def after(_job)
55
83
  self.class.messages << 'after'
56
84
  end
57
85
 
58
- def success(job)
86
+ def success(_job)
59
87
  self.class.messages << 'success'
60
88
  end
61
89
 
62
- def error(job, error)
90
+ def error(_job, error)
63
91
  self.class.messages << "error: #{error.class}"
64
92
  end
65
93
 
66
- def failure(job)
94
+ def failure(_job)
67
95
  self.class.messages << 'failure'
68
96
  end
69
97
  end
@@ -3,9 +3,9 @@ require 'helper'
3
3
  describe Delayed::Backend::Test::Job do
4
4
  it_should_behave_like 'a delayed_job backend'
5
5
 
6
- describe "#reload" do
7
- it "causes the payload object to be reloaded" do
8
- job = "foo".delay.length
6
+ describe '#reload' do
7
+ it 'causes the payload object to be reloaded' do
8
+ job = 'foo'.delay.length
9
9
  o = job.payload_object
10
10
  expect(o.object_id).not_to eq(job.reload.payload_object.object_id)
11
11
  end
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
 
3
3
  describe Delayed::Worker do
4
- describe "backend=" do
4
+ describe 'backend=' do
5
5
  before do
6
6
  @clazz = Class.new
7
7
  Delayed::Worker.backend = @clazz
@@ -11,30 +11,30 @@ describe Delayed::Worker do
11
11
  Delayed::Worker.backend = :test
12
12
  end
13
13
 
14
- it "sets the Delayed::Job constant to the backend" do
14
+ it 'sets the Delayed::Job constant to the backend' do
15
15
  expect(Delayed::Job).to eq(@clazz)
16
16
  end
17
17
 
18
- it "sets backend with a symbol" do
18
+ it 'sets backend with a symbol' do
19
19
  Delayed::Worker.backend = :test
20
20
  expect(Delayed::Worker.backend).to eq(Delayed::Backend::Test::Job)
21
21
  end
22
22
  end
23
23
 
24
- describe "job_say" do
24
+ describe 'job_say' do
25
25
  before do
26
26
  @worker = Delayed::Worker.new
27
27
  @job = double('job', :id => 123, :name => 'ExampleJob')
28
28
  end
29
29
 
30
- it "logs with job name and id" do
30
+ it 'logs with job name and id' do
31
31
  expect(@worker).to receive(:say).
32
32
  with('Job ExampleJob (id=123) message', Delayed::Worker::DEFAULT_LOG_LEVEL)
33
33
  @worker.job_say(@job, 'message')
34
34
  end
35
35
  end
36
36
 
37
- context "worker read-ahead" do
37
+ context 'worker read-ahead' do
38
38
  before do
39
39
  @read_ahead = Delayed::Worker.read_ahead
40
40
  end
@@ -43,19 +43,19 @@ describe Delayed::Worker do
43
43
  Delayed::Worker.read_ahead = @read_ahead
44
44
  end
45
45
 
46
- it "reads five jobs" do
46
+ it 'reads five jobs' do
47
47
  expect(Delayed::Job).to receive(:find_available).with(anything, 5, anything).and_return([])
48
48
  Delayed::Job.reserve(Delayed::Worker.new)
49
49
  end
50
50
 
51
- it "reads a configurable number of jobs" do
51
+ it 'reads a configurable number of jobs' do
52
52
  Delayed::Worker.read_ahead = 15
53
53
  expect(Delayed::Job).to receive(:find_available).with(anything, Delayed::Worker.read_ahead, anything).and_return([])
54
54
  Delayed::Job.reserve(Delayed::Worker.new)
55
55
  end
56
56
  end
57
57
 
58
- context "worker exit on complete" do
58
+ context 'worker exit on complete' do
59
59
  before do
60
60
  Delayed::Worker.exit_on_complete = true
61
61
  end
@@ -64,15 +64,15 @@ describe Delayed::Worker do
64
64
  Delayed::Worker.exit_on_complete = false
65
65
  end
66
66
 
67
- it "exits the loop when no jobs are available" do
67
+ it 'exits the loop when no jobs are available' do
68
68
  worker = Delayed::Worker.new
69
- Timeout::timeout(2) do
69
+ Timeout.timeout(2) do
70
70
  worker.start
71
71
  end
72
72
  end
73
73
  end
74
74
 
75
- context "worker job reservation" do
75
+ context 'worker job reservation' do
76
76
  before do
77
77
  Delayed::Worker.exit_on_complete = true
78
78
  end
@@ -81,34 +81,34 @@ describe Delayed::Worker do
81
81
  Delayed::Worker.exit_on_complete = false
82
82
  end
83
83
 
84
- it "handles error during job reservation" do
84
+ it 'handles error during job reservation' do
85
85
  expect(Delayed::Job).to receive(:reserve).and_raise(Exception)
86
86
  Delayed::Worker.new.work_off
87
87
  end
88
88
 
89
- it "gives up after 10 backend failures" do
89
+ it 'gives up after 10 backend failures' do
90
90
  expect(Delayed::Job).to receive(:reserve).exactly(10).times.and_raise(Exception)
91
91
  worker = Delayed::Worker.new
92
92
  9.times { worker.work_off }
93
93
  expect(lambda { worker.work_off }).to raise_exception Delayed::FatalBackendError
94
94
  end
95
95
 
96
- it "allows the backend to attempt recovery from reservation errors" do
96
+ it 'allows the backend to attempt recovery from reservation errors' do
97
97
  expect(Delayed::Job).to receive(:reserve).and_raise(Exception)
98
98
  expect(Delayed::Job).to receive(:recover_from).with(instance_of(Exception))
99
99
  Delayed::Worker.new.work_off
100
100
  end
101
101
  end
102
102
 
103
- context "#say" do
103
+ context '#say' do
104
104
  before(:each) do
105
105
  @worker = Delayed::Worker.new
106
106
  @worker.name = 'ExampleJob'
107
107
  @worker.logger = double('job')
108
108
  time = Time.now
109
109
  allow(Time).to receive(:now).and_return(time)
110
- @text = "Job executed"
111
- @worker_name = "[Worker(ExampleJob)]"
110
+ @text = 'Job executed'
111
+ @worker_name = '[Worker(ExampleJob)]'
112
112
  @expected_time = time.strftime('%FT%T%z')
113
113
  end
114
114
 
@@ -116,7 +116,7 @@ describe Delayed::Worker do
116
116
  @worker.logger = nil
117
117
  end
118
118
 
119
- shared_examples_for "a worker which logs on the correct severity" do |severity|
119
+ shared_examples_for 'a worker which logs on the correct severity' do |severity|
120
120
  it "logs a message on the #{severity[:level].upcase} level given a string" do
121
121
  expect(@worker.logger).to receive(:send).
122
122
  with(severity[:level], "#{@expected_time}: #{@worker_name} #{@text}")
@@ -130,19 +130,19 @@ describe Delayed::Worker do
130
130
  end
131
131
  end
132
132
 
133
- severities = [ { index: 0, level: "debug" },
134
- { index: 1, level: "info" },
135
- { index: 2, level: "warn" },
136
- { index: 3, level: "error" },
137
- { index: 4, level: "fatal" },
138
- { index: 5, level: "unknown" } ]
133
+ severities = [{:index => 0, :level => 'debug'},
134
+ {:index => 1, :level => 'info'},
135
+ {:index => 2, :level => 'warn'},
136
+ {:index => 3, :level => 'error'},
137
+ {:index => 4, :level => 'fatal'},
138
+ {:index => 5, :level => 'unknown'}]
139
139
  severities.each do |severity|
140
- it_behaves_like "a worker which logs on the correct severity", severity
140
+ it_behaves_like 'a worker which logs on the correct severity', severity
141
141
  end
142
142
 
143
143
  it "logs a message on the default log's level" do
144
144
  expect(@worker.logger).to receive(:send).
145
- with("info", "#{@expected_time}: #{@worker_name} #{@text}")
145
+ with('info', "#{@expected_time}: #{@worker_name} #{@text}")
146
146
  @worker.say(@text, Delayed::Worker::DEFAULT_LOG_LEVEL)
147
147
  end
148
148
  end
@@ -1,35 +1,35 @@
1
1
  require 'helper'
2
2
 
3
- describe "YAML" do
4
- it "autoloads classes" do
5
- expect {
3
+ describe 'YAML' do
4
+ it 'autoloads classes' do
5
+ expect do
6
6
  yaml = "--- !ruby/class Autoloaded::Clazz\n"
7
7
  expect(YAML.load(yaml)).to eq(Autoloaded::Clazz)
8
- }.not_to raise_error
8
+ end.not_to raise_error
9
9
  end
10
10
 
11
- it "autoloads the class of a struct" do
12
- expect {
11
+ it 'autoloads the class of a struct' do
12
+ expect do
13
13
  yaml = "--- !ruby/class Autoloaded::Struct\n"
14
14
  expect(YAML.load(yaml)).to eq(Autoloaded::Struct)
15
- }.not_to raise_error
15
+ end.not_to raise_error
16
16
  end
17
17
 
18
- it "autoloads the class for the instance of a struct" do
19
- expect {
20
- yaml = "--- !ruby/struct:Autoloaded::InstanceStruct {}"
18
+ it 'autoloads the class for the instance of a struct' do
19
+ expect do
20
+ yaml = '--- !ruby/struct:Autoloaded::InstanceStruct {}'
21
21
  expect(YAML.load(yaml).class).to eq(Autoloaded::InstanceStruct)
22
- }.not_to raise_error
22
+ end.not_to raise_error
23
23
  end
24
24
 
25
- it "autoloads the class for the instance" do
26
- expect {
25
+ it 'autoloads the class for the instance' do
26
+ expect do
27
27
  yaml = "--- !ruby/object:Autoloaded::InstanceClazz {}\n"
28
28
  expect(YAML.load(yaml).class).to eq(Autoloaded::InstanceClazz)
29
- }.not_to raise_error
29
+ end.not_to raise_error
30
30
  end
31
31
 
32
- it "does not throw an uninitialized constant Syck::Syck when using YAML.load with poorly formed yaml" do
33
- expect{ YAML.load(YAML.dump("foo: *bar"))}.not_to raise_error
32
+ it 'does not throw an uninitialized constant Syck::Syck when using YAML.load with poorly formed yaml' do
33
+ expect { YAML.load(YAML.dump('foo: *bar')) }.not_to raise_error
34
34
  end
35
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Keepers
@@ -15,26 +15,26 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2014-06-24 00:00:00.000000000 Z
18
+ date: 2014-09-04 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activesupport
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
- - - <
27
+ - - "<"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '4.2'
30
30
  type: :runtime
31
31
  prerelease: false
32
32
  version_requirements: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - ! '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: '3.0'
37
- - - <
37
+ - - "<"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '4.2'
40
40
  description: Delayed_job (or DJ) encapsulates the common pattern of asynchronously
@@ -85,12 +85,14 @@ files:
85
85
  - spec/autoloaded/instance_struct.rb
86
86
  - spec/autoloaded/struct.rb
87
87
  - spec/delayed/backend/test.rb
88
+ - spec/delayed/command_spec.rb
88
89
  - spec/delayed/serialization/test.rb
89
90
  - spec/helper.rb
90
91
  - spec/lifecycle_spec.rb
91
92
  - spec/message_sending_spec.rb
92
93
  - spec/performable_mailer_spec.rb
93
94
  - spec/performable_method_spec.rb
95
+ - spec/psych_ext_spec.rb
94
96
  - spec/sample_jobs.rb
95
97
  - spec/test_backend_spec.rb
96
98
  - spec/worker_spec.rb
@@ -105,12 +107,12 @@ require_paths:
105
107
  - lib
106
108
  required_ruby_version: !ruby/object:Gem::Requirement
107
109
  requirements:
108
- - - ! '>='
110
+ - - ">="
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  required_rubygems_version: !ruby/object:Gem::Requirement
112
114
  requirements:
113
- - - ! '>='
115
+ - - ">="
114
116
  - !ruby/object:Gem::Version
115
117
  version: '0'
116
118
  requirements: []
@@ -125,12 +127,14 @@ test_files:
125
127
  - spec/autoloaded/instance_struct.rb
126
128
  - spec/autoloaded/struct.rb
127
129
  - spec/delayed/backend/test.rb
130
+ - spec/delayed/command_spec.rb
128
131
  - spec/delayed/serialization/test.rb
129
132
  - spec/helper.rb
130
133
  - spec/lifecycle_spec.rb
131
134
  - spec/message_sending_spec.rb
132
135
  - spec/performable_mailer_spec.rb
133
136
  - spec/performable_method_spec.rb
137
+ - spec/psych_ext_spec.rb
134
138
  - spec/sample_jobs.rb
135
139
  - spec/test_backend_spec.rb
136
140
  - spec/worker_spec.rb