raygun4ruby 0.0.5 → 0.0.6

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.
data/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # Raygun 4 Ruby [![Build Status](https://travis-ci.org/MindscapeHQ/raygun4ruby.png?branch=master)](https://travis-ci.org/MindscapeHQ/raygun4ruby)
2
+
3
+ This is the Ruby adapter for the Raygun error reporter, http://raygun.io.
4
+
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'raygun4ruby'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install raygun4ruby
19
+
20
+ ## Usage
21
+
22
+ ###Rails 3/4
23
+
24
+ Run:
25
+
26
+ rails g raygun:install YOUR_API_KEY_HERE
27
+
28
+ You can find your API key on your [Raygun Dashboard](https://app.raygun.io/dashboard/)
29
+
30
+ You can then test your Raygun integration by running:
31
+
32
+ rake raygun:test
33
+
34
+ You should see an "ItWorksException" appear in your Raygun dashboard. You're ready to zap those errors!
35
+
36
+ NB: Raygun4Ruby currently requires Ruby >= 1.9
37
+
38
+ Note that the generator will create a file in `config/initializers` called "raygun.rb". If you need to do any further configuration or customization of Raygun, that's the place to do it!
39
+
40
+ ### Rails 2
41
+
42
+ Raygun4Ruby doesn't currently support Rails 2. If you'd like Rails 2 support, [drop us a line](http://raygun.io/forums).
43
+
44
+ ###Standalone / Manual Exception Tracking
45
+
46
+ ```ruby
47
+
48
+ require 'rubygems'
49
+ require 'raygun4ruby'
50
+
51
+ Raygun.setup do |config|
52
+ config.api_key = "YOUR_RAYGUN_API_KEY"
53
+ end
54
+
55
+ begin
56
+ # your lovely code here
57
+ rescue Exception => e
58
+ Raygun.track_exception(e)
59
+ end
60
+
61
+ ```
62
+
63
+ (You can also pass a Hash as the second parameter to `track_exception`. It should look like a [Rack Env Hash](http://rack.rubyforge.org/doc/SPEC.html))
64
+
65
+ ###Ignoring Some Errors
66
+
67
+ You can ignore certain types of Exception using the `ignore` option in the setup block, like so:
68
+
69
+ ```ruby
70
+ Raygun.setup do |config|
71
+ config.api_key = "MY_SWEET_API_KEY"
72
+ config.ignore << [MyApp::AnExceptionIDontCareAbout]
73
+ end
74
+ ```
75
+
76
+ You can also check which [exceptions are ignored by default](https://github.com/MindscapeHQ/raygun4ruby/blob/master/lib/raygun/configuration.rb#L26)
77
+
78
+ ###Resque Error Tracking
79
+
80
+ Raygun4Ruby also includes a Resque failure backend. You should include it inside your Resque initializer (usually something like `config/initializers/load_resque.rb`)
81
+
82
+ ```ruby
83
+ require 'resque/failure/multiple'
84
+ require 'resque/failure/raygun'
85
+ require 'resque/failure/redis'
86
+
87
+ Resque::Failure::Multiple.classes = [Resque::Failure::Redis, Resque::Failure::Raygun]
88
+ Resque::Failure.backend = Resque::Failure::Multiple
89
+ ```
90
+
91
+ ## Found a bug?
92
+
93
+ Oops! Just let us know by opening an Issue on Github.
94
+
95
+ ## Contributing
96
+
97
+ 1. Fork it
98
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
99
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
100
+ 4. Push to the branch (`git push origin my-new-feature`)
101
+ 5. Create new Pull Request
data/lib/raygun/client.rb CHANGED
@@ -7,11 +7,17 @@ module Raygun
7
7
  base_uri "https://api.raygun.io/"
8
8
 
9
9
  def initialize
10
+ @api_key = require_api_key!
11
+
10
12
  @headers = {
11
- "X-ApiKey" => Raygun.configuration.api_key
13
+ "X-ApiKey" => @api_key
12
14
  }
13
15
  end
14
16
 
17
+ def require_api_key!
18
+ Raygun.configuration.api_key || raise(ApiKeyRequired.new("Please specify your Raygun API key using Raygun#setup (find yours at https://app.raygun.io)"))
19
+ end
20
+
15
21
  def track_exception(exception_instance, env = {})
16
22
  create_entry(build_payload_hash(exception_instance, env))
17
23
  end
@@ -53,7 +59,7 @@ module Raygun
53
59
  end
54
60
 
55
61
  def request_information(env)
56
- return {} if env.blank?
62
+ return {} if env.nil? || env.empty?
57
63
 
58
64
  {
59
65
  hostName: env["SERVER_NAME"],
@@ -69,7 +75,7 @@ module Raygun
69
75
 
70
76
  def headers(rack_env)
71
77
  rack_env.select do |k, v|
72
- k.to_s.starts_with?("HTTP_")
78
+ k.to_s.start_with?("HTTP_")
73
79
  end
74
80
  end
75
81
 
@@ -103,4 +109,4 @@ module Raygun
103
109
  end
104
110
 
105
111
  end
106
- end
112
+ end
@@ -1,3 +1,3 @@
1
1
  module Raygun
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/raygun.rb CHANGED
@@ -6,7 +6,6 @@ require "logger"
6
6
  require "json"
7
7
  require "socket"
8
8
  require "rack"
9
- require "active_support/core_ext"
10
9
 
11
10
  require "raygun/version"
12
11
  require "raygun/configuration"
@@ -21,6 +20,9 @@ module Raygun
21
20
  CLIENT_URL = "https://github.com/MindscapeHQ/raygun4ruby"
22
21
  CLIENT_NAME = "Raygun4Ruby Gem"
23
22
 
23
+ # Exceptions
24
+ class ApiKeyRequired < StandardError; end
25
+
24
26
  class << self
25
27
 
26
28
  include Testable
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raygun4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-04 00:00:00.000000000 Z
13
+ date: 2013-09-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -44,22 +44,6 @@ dependencies:
44
44
  - - ! '>='
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
- - !ruby/object:Gem::Dependency
48
- name: activesupport
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
47
  - !ruby/object:Gem::Dependency
64
48
  name: rack
65
49
  requirement: !ruby/object:Gem::Requirement
@@ -190,6 +174,7 @@ files:
190
174
  - lib/raygun/testable.rb
191
175
  - lib/tasks/raygun.tasks
192
176
  - lib/resque/failure/raygun.rb
177
+ - README.md
193
178
  homepage: http://raygun.io
194
179
  licenses:
195
180
  - MIT