mrhenry-failtale-reporter 0.0.2 → 0.0.3

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.
@@ -7,6 +7,7 @@ rescue LoadError
7
7
  end
8
8
 
9
9
  require File.dirname(__FILE__)+'/failtale_reporter/error'
10
+ require File.dirname(__FILE__)+'/failtale_reporter/client'
10
11
 
11
12
  module FailtaleReporter
12
13
 
@@ -30,33 +31,19 @@ module FailtaleReporter
30
31
  def api_token(token=nil)
31
32
  @api_token ||= token
32
33
  end
34
+ def default_reporter(reporter=nil)
35
+ @default_reporter = reporter if reporter
36
+ @default_reporter
37
+ end
33
38
  def configure
34
39
  yield self
35
40
  end
36
41
  end
37
42
 
38
- def self.report(error=nil)
39
- error = handle_exception(error)
40
- yield if block_given? and error.nil?
41
- rescue Exception => exception
42
- error = handle_exception(exception)
43
- ensure
44
- post_report(error) unless error.nil?
45
- raise exception unless exception.nil?
46
- end
47
-
48
- def self.handle_exception(exception)
49
- return exception if exception.nil?
50
- return exception if exception.is_a? FailtaleReporter::Error
51
- return nil unless reportable_exceptions.any? {|c| exception.is_a? c }
52
- return nil if ignored_exceptions.any? {|c| exception.is_a? c }
53
- Error.new(exception)
54
- end
43
+ default_reporter 'ruby'
55
44
 
56
- def self.post_report(error)
57
- params = error.to_param
58
- params[:report][:project] = { :api_token => api_token }
59
- self.post('/reports.xml', :body => params)
45
+ def self.report(error=nil, &block)
46
+ Client.new.report(error, &block)
60
47
  end
61
48
 
62
49
  end
@@ -14,6 +14,7 @@ module FailtaleReporter
14
14
 
15
15
  FailtaleReporter.configure do |config|
16
16
  config.ignored_exceptions IGNORED_EXCEPTIONS
17
+ config.default_reporter "rails"
17
18
  end
18
19
  end
19
20
 
@@ -0,0 +1,30 @@
1
+
2
+ module FailtaleReporter
3
+ class Client
4
+
5
+ def report(error=nil)
6
+ error = handle_exception(error)
7
+ yield if block_given? and error.nil?
8
+ rescue Exception => exception
9
+ error = handle_exception(exception)
10
+ ensure
11
+ post_report(error) unless error.nil?
12
+ raise exception unless exception.nil?
13
+ end
14
+
15
+ private
16
+
17
+ def handle_exception(exception)
18
+ return exception if exception.is_a? FailtaleReporter::Error
19
+ return nil if exception.nil?
20
+ return nil unless FailtaleReporter.reportable_exceptions.any? {|c| exception.is_a? c }
21
+ return nil if FailtaleReporter.ignored_exceptions.any? {|c| exception.is_a? c }
22
+ FailtaleReporter::Error.new(exception)
23
+ end
24
+
25
+ def post_report(error)
26
+ response = FailtaleReporter.post('/reports.xml', :body => error.to_param)
27
+ end
28
+
29
+ end
30
+ end
@@ -2,29 +2,37 @@
2
2
  module FailtaleReporter
3
3
  class Error
4
4
 
5
+ attr_accessor :api_token
5
6
  attr_accessor :hash_string
6
7
  attr_accessor :name
8
+ attr_accessor :reporter
7
9
  attr_accessor :description
8
10
  attr_accessor :properties
9
11
  attr_accessor :backtrace
10
12
  attr_accessor :environment
11
13
 
12
14
  def initialize(exception)
15
+ self.api_token = FailtaleReporter.api_token
16
+ self.reporter = FailtaleReporter.default_reporter
17
+
13
18
  self.name = "#{exception.class} #{exception.message}"
14
19
  self.description = exception.message
15
20
  self.backtrace = exception.backtrace.join("\n")
16
- self.environment = { :application => $0 }
21
+ self.environment = ENV.to_hash
17
22
  self.hash_string = Digest::SHA1.hexdigest(
18
- [exception.class, exception.message, exception.backtrace.first].join('--')
23
+ [exception.class, exception.backtrace.first].join('--')
19
24
  )
20
25
  end
21
26
 
22
27
  def to_param
23
28
  { :report =>
24
- { :error => {
29
+ { :project => {
30
+ :api_token => self.api_token
31
+ },:error => {
25
32
  :hash_string => self.hash_string
26
33
  },:occurence => {
27
34
  :name => self.name,
35
+ :reporter => self.reporter,
28
36
  :description => self.description,
29
37
  :backtrace => self.backtrace,
30
38
  :properties => self.environment
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mrhenry-failtale-reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-30 00:00:00 -08:00
12
+ date: 2009-02-09 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.2.6
22
+ version: 0.3.0
23
23
  version:
24
24
  - !ruby/object:Gem::Dependency
25
25
  name: httparty
@@ -28,7 +28,7 @@ dependencies:
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 0.2.6
31
+ version: 0.3.0
32
32
  version:
33
33
  description:
34
34
  email: simon.menke@gmail.com
@@ -39,15 +39,16 @@ extensions: []
39
39
  extra_rdoc_files: []
40
40
 
41
41
  files:
42
- - rails/init.rb
43
- - spec/error_reporter_spec.rb
44
- - spec/error_spec.rb
45
- - README.textile
46
42
  - lib/failtale-reporter.rb
47
43
  - lib/failtale_reporter/adapters/rails.rb
44
+ - lib/failtale_reporter/client.rb
48
45
  - lib/failtale_reporter/error.rb
49
46
  - lib/failtale_reporter.rb
50
47
  - lib/mrhenry-failtale-reporter.rb
48
+ - rails/init.rb
49
+ - spec/error_reporter_spec.rb
50
+ - spec/error_spec.rb
51
+ - README.textile
51
52
  has_rdoc: false
52
53
  homepage: http://github.com/mrhenry
53
54
  post_install_message: