delayed_job_honeybadger 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/Gemfile.lock +84 -0
- data/Guardfile +6 -0
- data/README.md +4 -1
- data/Rakefile +112 -0
- data/delayed_job_honeybadger.gemspec +23 -4
- data/lib/delayed/plugins/honeybadger.rb +6 -6
- data/lib/delayed_job_honeybadger.rb +3 -0
- data/spec/delayed/backend/test.rb +112 -0
- data/spec/delayed/serialization/test.rb +0 -0
- data/spec/lib/delayed_job_honeybadger_spec.rb +14 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/support/cobra_job.rb +9 -0
- metadata +70 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 965afa1735cae2da416d846214a076921234a8a0
|
4
|
+
data.tar.gz: f27762eb4bc9a0b4f0047afe882aa877de55c23a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6205291fa407d383f7c0835cc1273783396fe7f47593c3fa57e8f05599293c60e74591832ef0474f713de0967acdf76a8c3b46881f69f9cdf7d1ba244d01f74a
|
7
|
+
data.tar.gz: a8e5aabeae56fe4014d7559cadc5c141c1930cdfb5895cb8f6d3430e8614449127869f067b2c26362c906afcefe6e411813206f39d30f01fd59f891e81f2ec01
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
delayed_job_honeybadger (0.0.2)
|
5
|
+
delayed_job
|
6
|
+
honeybadger
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activesupport (4.0.0)
|
12
|
+
i18n (~> 0.6, >= 0.6.4)
|
13
|
+
minitest (~> 4.2)
|
14
|
+
multi_json (~> 1.3)
|
15
|
+
thread_safe (~> 0.1)
|
16
|
+
tzinfo (~> 0.3.37)
|
17
|
+
atomic (1.1.14)
|
18
|
+
coderay (1.0.9)
|
19
|
+
delayed_job (4.0.0)
|
20
|
+
activesupport (>= 3.0, < 4.1)
|
21
|
+
diff-lcs (1.2.4)
|
22
|
+
ffi (1.9.0)
|
23
|
+
formatador (0.2.4)
|
24
|
+
fuubar (1.2.1)
|
25
|
+
rspec (~> 2.0)
|
26
|
+
rspec-instafail (~> 0.2.0)
|
27
|
+
ruby-progressbar (~> 1.0)
|
28
|
+
guard (1.8.2)
|
29
|
+
formatador (>= 0.2.4)
|
30
|
+
listen (>= 1.0.0)
|
31
|
+
lumberjack (>= 1.0.2)
|
32
|
+
pry (>= 0.9.10)
|
33
|
+
thor (>= 0.14.6)
|
34
|
+
guard-rspec (3.0.3)
|
35
|
+
guard (>= 1.8)
|
36
|
+
rspec (~> 2.13)
|
37
|
+
honeybadger (1.8.0)
|
38
|
+
json
|
39
|
+
i18n (0.6.5)
|
40
|
+
json (1.8.0)
|
41
|
+
listen (1.3.1)
|
42
|
+
rb-fsevent (>= 0.9.3)
|
43
|
+
rb-inotify (>= 0.9)
|
44
|
+
rb-kqueue (>= 0.2)
|
45
|
+
lumberjack (1.0.4)
|
46
|
+
method_source (0.8.2)
|
47
|
+
minitest (4.7.5)
|
48
|
+
multi_json (1.8.0)
|
49
|
+
pry (0.9.12.2)
|
50
|
+
coderay (~> 1.0.5)
|
51
|
+
method_source (~> 0.8)
|
52
|
+
slop (~> 3.4)
|
53
|
+
rake (10.1.0)
|
54
|
+
rb-fsevent (0.9.3)
|
55
|
+
rb-inotify (0.9.2)
|
56
|
+
ffi (>= 0.5.0)
|
57
|
+
rb-kqueue (0.2.0)
|
58
|
+
ffi (>= 0.5.0)
|
59
|
+
rspec (2.14.1)
|
60
|
+
rspec-core (~> 2.14.0)
|
61
|
+
rspec-expectations (~> 2.14.0)
|
62
|
+
rspec-mocks (~> 2.14.0)
|
63
|
+
rspec-core (2.14.5)
|
64
|
+
rspec-expectations (2.14.2)
|
65
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
66
|
+
rspec-instafail (0.2.4)
|
67
|
+
rspec-mocks (2.14.3)
|
68
|
+
ruby-progressbar (1.2.0)
|
69
|
+
slop (3.4.6)
|
70
|
+
thor (0.18.1)
|
71
|
+
thread_safe (0.1.3)
|
72
|
+
atomic
|
73
|
+
tzinfo (0.3.37)
|
74
|
+
|
75
|
+
PLATFORMS
|
76
|
+
ruby
|
77
|
+
|
78
|
+
DEPENDENCIES
|
79
|
+
delayed_job_honeybadger!
|
80
|
+
fuubar
|
81
|
+
guard
|
82
|
+
guard-rspec
|
83
|
+
rake
|
84
|
+
rspec
|
data/Guardfile
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
guard :rspec, cli: '--format Fuubar --fail-fast', all_after_pass: false, all_on_start: false do
|
2
|
+
watch(%r{^spec/.+_spec\.rb$})
|
3
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
4
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/delayed_job_honeybadger_spec.rb" }
|
5
|
+
watch('spec/spec_helper.rb') { "spec" }
|
6
|
+
end
|
data/README.md
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
Delayed Job
|
1
|
+
Delayed Job Honeybadger
|
2
2
|
-----------------------
|
3
3
|
|
4
|
+
[![Build Status](https://secure.travis-ci.org/honeybadger-io/delayed_job_honeybadger.png?branch=master)](http://travis-ci.org/honeybadger-io/delayed_job_honeybadger)
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/delayed_job_honeybadger.png)](http://badge.fury.io/rb/delayed_job_honeybadger)
|
6
|
+
|
4
7
|
Notify Honeybadger of errors in Delayed Job workers.
|
5
8
|
|
6
9
|
Adapted from [this](http://stackoverflow.com/a/14172132/1332687) and
|
data/Rakefile
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
require 'rake'
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
#############################################################################
|
7
|
+
#
|
8
|
+
# Helper functions
|
9
|
+
#
|
10
|
+
#############################################################################
|
11
|
+
|
12
|
+
def name
|
13
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
14
|
+
end
|
15
|
+
|
16
|
+
def version
|
17
|
+
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
18
|
+
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
19
|
+
end
|
20
|
+
|
21
|
+
def date
|
22
|
+
Date.today.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
def gemspec_file
|
26
|
+
"#{name}.gemspec"
|
27
|
+
end
|
28
|
+
|
29
|
+
def gem_file
|
30
|
+
"#{name}-#{version}.gem"
|
31
|
+
end
|
32
|
+
|
33
|
+
def replace_header(head, header_name)
|
34
|
+
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
35
|
+
end
|
36
|
+
|
37
|
+
#############################################################################
|
38
|
+
#
|
39
|
+
# Standard tasks
|
40
|
+
#
|
41
|
+
#############################################################################
|
42
|
+
|
43
|
+
require 'rspec/core/rake_task'
|
44
|
+
RSpec::Core::RakeTask.new(:spec)
|
45
|
+
task :default => :spec
|
46
|
+
task :test => :spec
|
47
|
+
|
48
|
+
#############################################################################
|
49
|
+
#
|
50
|
+
# Packaging tasks
|
51
|
+
#
|
52
|
+
#############################################################################
|
53
|
+
|
54
|
+
desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
|
55
|
+
task :release => :build do
|
56
|
+
unless `git branch` =~ /^\* master$/
|
57
|
+
puts "You must be on the master branch to release!"
|
58
|
+
exit!
|
59
|
+
end
|
60
|
+
sh "git commit --allow-empty -a -m 'Release #{version}'"
|
61
|
+
sh "git tag v#{version}"
|
62
|
+
sh "git push origin master"
|
63
|
+
sh "git push origin v#{version}"
|
64
|
+
sh "gem push pkg/#{name}-#{version}.gem"
|
65
|
+
end
|
66
|
+
|
67
|
+
desc "Build #{gem_file} into the pkg directory"
|
68
|
+
task :build => :gemspec do
|
69
|
+
sh "mkdir -p pkg"
|
70
|
+
sh "gem build #{gemspec_file}"
|
71
|
+
sh "mv #{gem_file} pkg"
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Generate #{gemspec_file}"
|
75
|
+
task :gemspec => :validate do
|
76
|
+
# read spec file and split out manifest section
|
77
|
+
spec = File.read(gemspec_file)
|
78
|
+
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
79
|
+
|
80
|
+
# replace name version and date
|
81
|
+
replace_header(head, :name)
|
82
|
+
replace_header(head, :version)
|
83
|
+
replace_header(head, :date)
|
84
|
+
|
85
|
+
# determine file list from git ls-files
|
86
|
+
files = `git ls-files`.
|
87
|
+
split("\n").
|
88
|
+
sort.
|
89
|
+
reject { |file| file =~ /^\./ }.
|
90
|
+
reject { |file| file =~ /^(rdoc|pkg)/ }.
|
91
|
+
map { |file| " #{file}" }.
|
92
|
+
join("\n")
|
93
|
+
|
94
|
+
# piece file back together and write
|
95
|
+
manifest = " s.files = %w[\n#{files}\n ]\n"
|
96
|
+
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
97
|
+
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
98
|
+
puts "Updated #{gemspec_file}"
|
99
|
+
end
|
100
|
+
|
101
|
+
desc "Validate #{gemspec_file}"
|
102
|
+
task :validate do
|
103
|
+
libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}", "lib/delayed"]
|
104
|
+
unless libfiles.empty?
|
105
|
+
puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
|
106
|
+
exit!
|
107
|
+
end
|
108
|
+
unless Dir['VERSION*'].empty?
|
109
|
+
puts "A `VERSION` file at root level violates Gem best practices."
|
110
|
+
exit!
|
111
|
+
end
|
112
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'delayed_job_honeybadger'
|
3
|
-
s.version = '0.0.
|
4
|
-
s.date = '2013-
|
3
|
+
s.version = '0.0.2'
|
4
|
+
s.date = '2013-10-01'
|
5
5
|
|
6
6
|
s.summary = "Honeybadger plugin for Delayed Job"
|
7
7
|
s.description = "Notifies Honeybadger of errors in Delayed Job workers."
|
@@ -15,11 +15,30 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.add_dependency('honeybadger')
|
16
16
|
s.add_dependency('delayed_job')
|
17
17
|
|
18
|
+
s.add_development_dependency('rspec')
|
19
|
+
s.add_development_dependency('guard')
|
20
|
+
s.add_development_dependency('guard-rspec')
|
21
|
+
s.add_development_dependency('fuubar')
|
22
|
+
|
23
|
+
## Leave this section as-is. It will be automatically generated from the
|
24
|
+
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
25
|
+
## THE MANIFEST COMMENTS, they are used as delimiters by the task.
|
26
|
+
# = MANIFEST =
|
18
27
|
s.files = %w[
|
19
|
-
|
28
|
+
Gemfile
|
29
|
+
Gemfile.lock
|
30
|
+
Guardfile
|
20
31
|
LICENSE
|
21
32
|
README.md
|
22
|
-
|
33
|
+
Rakefile
|
34
|
+
delayed_job_honeybadger.gemspec
|
23
35
|
lib/delayed/plugins/honeybadger.rb
|
36
|
+
lib/delayed_job_honeybadger.rb
|
37
|
+
spec/delayed/backend/test.rb
|
38
|
+
spec/delayed/serialization/test.rb
|
39
|
+
spec/lib/delayed_job_honeybadger_spec.rb
|
40
|
+
spec/spec_helper.rb
|
41
|
+
spec/support/cobra_job.rb
|
24
42
|
]
|
43
|
+
# = MANIFEST =
|
25
44
|
end
|
@@ -1,8 +1,3 @@
|
|
1
|
-
# Notify Honeybadger of errors in DelayedJob workers
|
2
|
-
# in /config/initializers/
|
3
|
-
#
|
4
|
-
# modified
|
5
|
-
|
6
1
|
module Delayed
|
7
2
|
module Plugins
|
8
3
|
class Honeybadger < Plugin
|
@@ -11,8 +6,13 @@ module Delayed
|
|
11
6
|
::Honeybadger.notify_or_ignore(
|
12
7
|
:error_class => error.class.name,
|
13
8
|
:error_message => "#{ error.class.name }: #{ error.message }",
|
9
|
+
:backtrace => error.backtrace,
|
14
10
|
:context => {
|
15
|
-
:
|
11
|
+
:job_id => job.id,
|
12
|
+
:handler => job.handler,
|
13
|
+
:last_error => job.last_error,
|
14
|
+
:attempts => job.attempts,
|
15
|
+
:queue => job.queue
|
16
16
|
}
|
17
17
|
)
|
18
18
|
super if defined?(super)
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
# An in-memory backend suitable only for testing. Tries to behave as if it were an ORM.
|
4
|
+
module Delayed
|
5
|
+
module Backend
|
6
|
+
module Test
|
7
|
+
class Job
|
8
|
+
attr_accessor :id
|
9
|
+
attr_accessor :priority
|
10
|
+
attr_accessor :attempts
|
11
|
+
attr_accessor :handler
|
12
|
+
attr_accessor :last_error
|
13
|
+
attr_accessor :run_at
|
14
|
+
attr_accessor :locked_at
|
15
|
+
attr_accessor :locked_by
|
16
|
+
attr_accessor :failed_at
|
17
|
+
attr_accessor :queue
|
18
|
+
|
19
|
+
include Delayed::Backend::Base
|
20
|
+
|
21
|
+
cattr_accessor :id
|
22
|
+
self.id = 0
|
23
|
+
|
24
|
+
def initialize(hash = {})
|
25
|
+
self.attempts = 0
|
26
|
+
self.priority = 0
|
27
|
+
self.id = (self.class.id += 1)
|
28
|
+
hash.each{|k,v| send(:"#{k}=", v)}
|
29
|
+
end
|
30
|
+
|
31
|
+
@jobs = []
|
32
|
+
def self.all
|
33
|
+
@jobs
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.count
|
37
|
+
all.size
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.delete_all
|
41
|
+
all.clear
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.create(attrs = {})
|
45
|
+
new(attrs).tap do |o|
|
46
|
+
o.save
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.create!(*args); create(*args); end
|
51
|
+
|
52
|
+
def self.clear_locks!(worker_name)
|
53
|
+
all.select{|j| j.locked_by == worker_name}.each {|j| j.locked_by = nil; j.locked_at = nil}
|
54
|
+
end
|
55
|
+
|
56
|
+
# Find a few candidate jobs to run (in case some immediately get locked by others).
|
57
|
+
def self.find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
|
58
|
+
jobs = all.select do |j|
|
59
|
+
j.run_at <= db_time_now &&
|
60
|
+
(j.locked_at.nil? || j.locked_at < db_time_now - max_run_time || j.locked_by == worker_name) &&
|
61
|
+
!j.failed?
|
62
|
+
end
|
63
|
+
|
64
|
+
jobs = jobs.select{|j| Worker.queues.include?(j.queue)} if Worker.queues.any?
|
65
|
+
jobs = jobs.select{|j| j.priority >= Worker.min_priority} if Worker.min_priority
|
66
|
+
jobs = jobs.select{|j| j.priority <= Worker.max_priority} if Worker.max_priority
|
67
|
+
jobs.sort_by{|j| [j.priority, j.run_at]}[0..limit-1]
|
68
|
+
end
|
69
|
+
|
70
|
+
# Lock this job for this worker.
|
71
|
+
# Returns true if we have the lock, false otherwise.
|
72
|
+
def lock_exclusively!(max_run_time, worker)
|
73
|
+
now = self.class.db_time_now
|
74
|
+
if locked_by != worker
|
75
|
+
# We don't own this job so we will update the locked_by name and the locked_at
|
76
|
+
self.locked_at = now
|
77
|
+
self.locked_by = worker
|
78
|
+
end
|
79
|
+
|
80
|
+
return true
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.db_time_now
|
84
|
+
Time.current
|
85
|
+
end
|
86
|
+
|
87
|
+
def update_attributes(attrs = {})
|
88
|
+
attrs.each{|k,v| send(:"#{k}=", v)}
|
89
|
+
save
|
90
|
+
end
|
91
|
+
|
92
|
+
def destroy
|
93
|
+
self.class.all.delete(self)
|
94
|
+
end
|
95
|
+
|
96
|
+
def save
|
97
|
+
self.run_at ||= Time.current
|
98
|
+
|
99
|
+
self.class.all << self unless self.class.all.include?(self)
|
100
|
+
true
|
101
|
+
end
|
102
|
+
|
103
|
+
def save!; save; end
|
104
|
+
|
105
|
+
def reload
|
106
|
+
reset
|
107
|
+
self
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Delayed job integration' do
|
4
|
+
it 'sends notice to honeybadger' do
|
5
|
+
Delayed::Job.enqueue CobraJob.new
|
6
|
+
Honeybadger.should_receive(:notify_or_ignore).with(hash_including({
|
7
|
+
error_class: 'RuntimeError',
|
8
|
+
error_message: 'RuntimeError: cobras!',
|
9
|
+
backtrace: kind_of(Array),
|
10
|
+
context: kind_of(Hash)
|
11
|
+
}))
|
12
|
+
expect { Delayed::Worker.new.work_off(1) }.not_to raise_error
|
13
|
+
end
|
14
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'delayed_job'
|
3
|
+
require 'delayed_job_honeybadger'
|
4
|
+
|
5
|
+
# Require files in spec/support/ and its subdirectories.
|
6
|
+
Dir[File.expand_path('../../spec/support/**/*.rb', __FILE__)].each {|f| require f}
|
7
|
+
|
8
|
+
# Use test backend
|
9
|
+
Delayed::Worker.backend = :test
|
10
|
+
|
11
|
+
RSpec.configure do |c|
|
12
|
+
c.mock_with :rspec
|
13
|
+
c.color_enabled = true
|
14
|
+
c.tty = true
|
15
|
+
|
16
|
+
c.treat_symbols_as_metadata_keys_with_true_values = true
|
17
|
+
c.filter_run :focus => true
|
18
|
+
c.run_all_when_everything_filtered = true
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_job_honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Wood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: honeybadger
|
@@ -38,17 +38,82 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: fuubar
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
41
97
|
description: Notifies Honeybadger of errors in Delayed Job workers.
|
42
98
|
email: josh@honeybadger.io
|
43
99
|
executables: []
|
44
100
|
extensions: []
|
45
101
|
extra_rdoc_files: []
|
46
102
|
files:
|
47
|
-
-
|
103
|
+
- Gemfile
|
104
|
+
- Gemfile.lock
|
105
|
+
- Guardfile
|
48
106
|
- LICENSE
|
49
107
|
- README.md
|
50
|
-
-
|
108
|
+
- Rakefile
|
109
|
+
- delayed_job_honeybadger.gemspec
|
51
110
|
- lib/delayed/plugins/honeybadger.rb
|
111
|
+
- lib/delayed_job_honeybadger.rb
|
112
|
+
- spec/delayed/backend/test.rb
|
113
|
+
- spec/delayed/serialization/test.rb
|
114
|
+
- spec/lib/delayed_job_honeybadger_spec.rb
|
115
|
+
- spec/spec_helper.rb
|
116
|
+
- spec/support/cobra_job.rb
|
52
117
|
homepage: https://github.com/honeybadger-io/delayed_job_honeybadger
|
53
118
|
licenses: []
|
54
119
|
metadata: {}
|
@@ -68,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
68
133
|
version: '0'
|
69
134
|
requirements: []
|
70
135
|
rubyforge_project:
|
71
|
-
rubygems_version: 2.0.
|
136
|
+
rubygems_version: 2.0.3
|
72
137
|
signing_key:
|
73
138
|
specification_version: 4
|
74
139
|
summary: Honeybadger plugin for Delayed Job
|