resque_coalmine 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+
13
+ # Ignore all logfiles and tempfiles.
14
+ /log/*.log
15
+ /tmp
16
+ .DS_Store
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :test, :development do
6
+ gem 'rake', '0.9.2.2'
7
+ gem 'rspec', '2.11.0'
8
+ gem 'mocha', '0.12.0'
9
+ gem 'guard', '1.4.0'
10
+ gem 'guard-rspec', '2.1.0'
11
+ gem 'rb-fsevent', '0.9.1'
12
+ end
@@ -0,0 +1,73 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ resque_coalmine (0.0.1)
5
+ builder (= 3.0.4)
6
+ coalmine (= 0.5.3)
7
+ resque (= 1.23.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activesupport (3.2.9)
13
+ i18n (~> 0.6)
14
+ multi_json (~> 1.0)
15
+ builder (3.0.4)
16
+ coalmine (0.5.3)
17
+ jsonbuilder
18
+ diff-lcs (1.1.3)
19
+ guard (1.4.0)
20
+ listen (>= 0.4.2)
21
+ thor (>= 0.14.6)
22
+ guard-rspec (2.1.0)
23
+ guard (>= 1.1)
24
+ rspec (~> 2.11)
25
+ i18n (0.6.1)
26
+ jsonbuilder (0.3.1)
27
+ activesupport (>= 2.3.2)
28
+ listen (0.6.0)
29
+ metaclass (0.0.1)
30
+ mocha (0.12.0)
31
+ metaclass (~> 0.0.1)
32
+ multi_json (1.5.0)
33
+ rack (1.4.1)
34
+ rack-protection (1.3.1)
35
+ rack
36
+ rake (0.9.2.2)
37
+ rb-fsevent (0.9.1)
38
+ redis (3.0.2)
39
+ redis-namespace (1.2.1)
40
+ redis (~> 3.0.0)
41
+ resque (1.23.0)
42
+ multi_json (~> 1.0)
43
+ redis-namespace (~> 1.0)
44
+ sinatra (>= 0.9.2)
45
+ vegas (~> 0.1.2)
46
+ rspec (2.11.0)
47
+ rspec-core (~> 2.11.0)
48
+ rspec-expectations (~> 2.11.0)
49
+ rspec-mocks (~> 2.11.0)
50
+ rspec-core (2.11.1)
51
+ rspec-expectations (2.11.3)
52
+ diff-lcs (~> 1.1.3)
53
+ rspec-mocks (2.11.3)
54
+ sinatra (1.3.3)
55
+ rack (~> 1.3, >= 1.3.6)
56
+ rack-protection (~> 1.2)
57
+ tilt (~> 1.3, >= 1.3.3)
58
+ thor (0.16.0)
59
+ tilt (1.3.3)
60
+ vegas (0.1.11)
61
+ rack (>= 1.0.0)
62
+
63
+ PLATFORMS
64
+ ruby
65
+
66
+ DEPENDENCIES
67
+ guard (= 1.4.0)
68
+ guard-rspec (= 2.1.0)
69
+ mocha (= 0.12.0)
70
+ rake (= 0.9.2.2)
71
+ rb-fsevent (= 0.9.1)
72
+ resque_coalmine!
73
+ rspec (= 2.11.0)
@@ -0,0 +1,5 @@
1
+ guard 'rspec', :all_on_start => true, :all_after_pass => false, :cli => "--require spec_helper.rb --color --format documentation --fail-fast --backtrace" do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/resque_coalmine/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
@@ -0,0 +1,48 @@
1
+ # Resque Coalmine
2
+
3
+ Resque failure backend that sends exceptions to [coalmineapp.com](http://coalmineapp.com).
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'resque_coalmine'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install resque_coalmine
18
+
19
+ ## Usage
20
+
21
+ Resque::Failure::Coalmine.configure do |config|
22
+ config.signature = 'my_secret_signature'
23
+ end
24
+
25
+ Resque::Failure.backend = Resque::Failure::Coalmine
26
+
27
+ If you are already using coalmineapp.com gem, you just need
28
+
29
+ Resque::Failure.backend = Resque::Failure::Coalmine
30
+
31
+ If you've not yet configured Coalmine in your project, visit the project page for installation instructions.
32
+
33
+ ## Notes
34
+
35
+ In development mode you need to configure Coalmine to send exceptions, default is `['production', 'staging']`
36
+
37
+ Coalmine.configure do |config|
38
+ ....
39
+ config.enabled_environments += %w( development ) if Rails.env.development?
40
+ end
41
+
42
+ ## Contributing
43
+
44
+ 1. Fork it
45
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
46
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
47
+ 4. Push to the branch (`git push origin my-new-feature`)
48
+ 5. Create new Pull Request
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ namespace :test do
5
+
6
+ task :all do
7
+ exec('bundle exec guard -c')
8
+ end
9
+
10
+ end
11
+
12
+ task :default => 'test:all'
@@ -0,0 +1,3 @@
1
+ module ResqueCoalmine
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,21 @@
1
+ module Resque
2
+ module Failure
3
+ class Coalmine < Base
4
+ def self.configure(&block)
5
+ ::Coalmine.configure(&block)
6
+ end
7
+
8
+ def self.count
9
+ # We can't get the total # of errors from Coalmine so we fake it
10
+ # by asking Resque how many errors it has seen.
11
+ Stat[:failed]
12
+ end
13
+
14
+ def save
15
+ ::Coalmine.custom_variables[:payload_class] = payload['class']
16
+ ::Coalmine.custom_variables[:payload_args] = payload['args'].inspect
17
+ ::Coalmine.notify(exception)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ require 'resque'
2
+ require 'coalmine'
3
+
4
+ require 'coalmine/version'
5
+ require 'resque/failure/coalmine'
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/coalmine/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Luqman Amjad"]
6
+ gem.email = ["luqman.amjad@fatsoma.com"]
7
+ gem.description = 'Sends exceptions to coalmineapp.com'
8
+ gem.summary = 'Resque failure backend for coalmine'
9
+ gem.homepage = "http://www.fatsoma.com"
10
+ gem.files = `git ls-files`.split($\)
11
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
+ gem.name = "resque_coalmine"
14
+ gem.require_paths = ["lib"]
15
+ gem.version = ResqueCoalmine::VERSION
16
+
17
+ gem.add_dependency('coalmine', '0.5.3')
18
+ gem.add_dependency('resque', '1.23.0')
19
+ gem.add_dependency('builder', '3.0.4')
20
+ end
@@ -0,0 +1,46 @@
1
+ describe Resque::Failure::Coalmine do
2
+
3
+ describe '.configure block' do
4
+ let(:signature) { 'my_secret_signature' }
5
+ before do
6
+ Resque::Failure::Coalmine.configure do |config|
7
+ config.signature = signature
8
+ end
9
+ end
10
+ it 'sets signature to "my_secret_signature"' do
11
+ expect(Coalmine.config.signature).to eql signature
12
+ end
13
+ end
14
+
15
+ describe "#count" do
16
+ let(:failed) { 0 }
17
+ before { Resque::Stat.expects(:[]).with(:failed).returns(failed) }
18
+ it 'should be zero' do
19
+ expect(Resque::Failure::Coalmine.count).to eq failed
20
+ end
21
+ end
22
+
23
+ describe "#save" do
24
+ let(:exception) { StandardError.new("ka boom") }
25
+ let(:worker) { Resque::Worker.new(:coalmine) }
26
+ let(:queue) { "coalmine" }
27
+ let(:klass) { Object }
28
+ let(:args) { 2012 }
29
+ let(:payload) { {'class' => klass, 'args' => args } }
30
+ let(:backend) { Resque::Failure::Coalmine.new(exception, worker, queue, payload) }
31
+
32
+ it "notifies coaline with exception" do
33
+ Coalmine.expects(:notify).with(exception)
34
+ backend.save
35
+ end
36
+
37
+ describe Coalmine do
38
+ subject { Coalmine.custom_variables }
39
+ it 'has custom variables set "payload_class: Object", "payload_args: 2012"' do
40
+ expect(subject[:payload_class]).to eq payload['class']
41
+ expect(subject[:payload_args]).to eq payload['args'].inspect
42
+ end
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,8 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require "bundler/setup"
4
+ require 'resque_coalmine'
5
+
6
+ RSpec.configure do |config|
7
+ config.mock_with :mocha
8
+ end
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: resque_coalmine
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Luqman Amjad
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: coalmine
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.5.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: resque
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - '='
36
+ - !ruby/object:Gem::Version
37
+ version: 1.23.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.23.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: builder
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
53
+ version: 3.0.4
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.4
62
+ description: Sends exceptions to coalmineapp.com
63
+ email:
64
+ - luqman.amjad@fatsoma.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .rspec
71
+ - Gemfile
72
+ - Gemfile.lock
73
+ - Guardfile
74
+ - README.md
75
+ - Rakefile
76
+ - lib/coalmine/version.rb
77
+ - lib/resque/failure/coalmine.rb
78
+ - lib/resque_coalmine.rb
79
+ - resque_coalmine.gemspec
80
+ - spec/resque/failure/coalmine_spec.rb
81
+ - spec/spec_helper.rb
82
+ homepage: http://www.fatsoma.com
83
+ licenses: []
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 1.8.24
103
+ signing_key:
104
+ specification_version: 3
105
+ summary: Resque failure backend for coalmine
106
+ test_files:
107
+ - spec/resque/failure/coalmine_spec.rb
108
+ - spec/spec_helper.rb