crashlog 0.0.2 → 1.0.0.rc1
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/Gemfile.lock +2 -2
- data/INSTALL +3 -4
- data/README.md +2 -0
- data/Rakefile +1 -2
- data/lib/crash_log/configuration.rb +13 -7
- data/lib/crash_log/payload.rb +4 -1
- data/lib/crash_log/rails.rb +1 -1
- data/lib/crash_log/railtie.rb +3 -3
- data/lib/crash_log/reporter.rb +9 -15
- data/lib/crash_log/version.rb +1 -1
- data/lib/crash_log.rb +22 -9
- data/lib/faraday/request/hmac_authentication.rb +1 -6
- data/script/integration_test +40 -0
- data/spec/crash_log/configuration_spec.rb +37 -0
- data/spec/crash_log/reporter_spec.rb +13 -5
- data/spec/crash_log_spec.rb +1 -1
- data/spec/dummy/config/initializers/crashlog.rb +1 -0
- data/spec/requests/rails_controller_rescue_spec.rb +4 -0
- data/spec/spec_helper.rb +1 -3
- metadata +22 -19
data/Gemfile.lock
CHANGED
@@ -8,7 +8,7 @@ GIT
|
|
8
8
|
PATH
|
9
9
|
remote: .
|
10
10
|
specs:
|
11
|
-
crashlog (0.0.
|
11
|
+
crashlog (1.0.0.rc1)
|
12
12
|
activesupport
|
13
13
|
crashlog-auth-hmac (~> 1.1.5)
|
14
14
|
faraday
|
@@ -86,7 +86,7 @@ GEM
|
|
86
86
|
multipart-post (1.1.5)
|
87
87
|
pg (0.14.0)
|
88
88
|
polyglot (0.3.3)
|
89
|
-
rabl (0.7.
|
89
|
+
rabl (0.7.1)
|
90
90
|
activesupport (>= 2.3.14)
|
91
91
|
multi_json (~> 1.0)
|
92
92
|
rack (1.4.1)
|
data/INSTALL
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
You should have something like this in config/initializers/crashlog.rb.
|
4
4
|
|
5
5
|
CrashLog.configure do |config|
|
6
|
-
config.api_key = '
|
7
|
-
config.
|
6
|
+
config.api_key = 'API_KEY'
|
7
|
+
config.secret = 'SECRET'
|
8
8
|
end
|
9
9
|
|
10
10
|
(Please note that this configuration should be in a global configuration, and
|
@@ -18,5 +18,4 @@ this rake task (from RAILS_ROOT):
|
|
18
18
|
rake crashlog:test
|
19
19
|
|
20
20
|
If everything is configured properly, that task will send a notice to CrashLog
|
21
|
-
which will be visible immediately.
|
22
|
-
|
21
|
+
which will be visible immediately.
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# CrashLog
|
2
2
|
|
3
|
+
[](http://travis-ci.org/crashlog/crashlog)
|
4
|
+
|
3
5
|
CrashLog is a exception tracking and notification service that gives you unparalleled
|
4
6
|
insight into issues occurring within your production applications, in realtime.
|
5
7
|
|
data/Rakefile
CHANGED
@@ -39,14 +39,14 @@ module CrashLog
|
|
39
39
|
#
|
40
40
|
# Get this from your projects configuration page within http://CrashLog.io
|
41
41
|
:api_key => nil,
|
42
|
-
:
|
42
|
+
:secret => nil,
|
43
43
|
|
44
44
|
# Stages (environments) which we consider to be in a production environment
|
45
45
|
# and thus you want to be sent notifications for.
|
46
46
|
:release_stages => ['staging', 'production'],
|
47
47
|
|
48
48
|
# The name of the current stage
|
49
|
-
:stage => '
|
49
|
+
:stage => 'production',
|
50
50
|
|
51
51
|
# Project Root directory
|
52
52
|
:project_root => nil,
|
@@ -127,7 +127,9 @@ module CrashLog
|
|
127
127
|
|
128
128
|
# Internal
|
129
129
|
# Do not change unless you know what this does.
|
130
|
-
:service_name => 'CrashLog'
|
130
|
+
:service_name => 'CrashLog',
|
131
|
+
|
132
|
+
:json_parser => :yajl
|
131
133
|
|
132
134
|
def root
|
133
135
|
fetch(:project_root)
|
@@ -147,7 +149,7 @@ module CrashLog
|
|
147
149
|
|
148
150
|
# Release stages are stages which send exceptions
|
149
151
|
def release_stage?
|
150
|
-
release_stages.include?(stage)
|
152
|
+
Array(release_stages).include?(stage)
|
151
153
|
end
|
152
154
|
|
153
155
|
# Set the current stage
|
@@ -159,9 +161,13 @@ module CrashLog
|
|
159
161
|
#
|
160
162
|
# Returns true if all required keys are provided, otherwise false
|
161
163
|
def valid?
|
162
|
-
|
163
|
-
|
164
|
-
|
164
|
+
invalid_keys.empty?
|
165
|
+
end
|
166
|
+
|
167
|
+
def invalid_keys
|
168
|
+
[:api_key, :secret, :host, :port].map do |key|
|
169
|
+
key if send(key).nil?
|
170
|
+
end.compact
|
165
171
|
end
|
166
172
|
|
167
173
|
def ignored?(exception)
|
data/lib/crash_log/payload.rb
CHANGED
@@ -36,7 +36,10 @@ module CrashLog
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def deliver
|
39
|
-
Reporter.new(config)
|
39
|
+
reporter = Reporter.new(config)
|
40
|
+
if reporter.notify(self.body)
|
41
|
+
reporter.result
|
42
|
+
end
|
40
43
|
end
|
41
44
|
|
42
45
|
attr_reader :event, :backtrace, :exception_object, :environment, :context
|
data/lib/crash_log/rails.rb
CHANGED
@@ -21,7 +21,7 @@ module CrashLog
|
|
21
21
|
|
22
22
|
CrashLog.configure do |config|
|
23
23
|
config.logger = rails_logger
|
24
|
-
config.
|
24
|
+
config.stage = RAILS_ENV if defined?(RAILS_ENV)
|
25
25
|
config.project_root = RAILS_ROOT if defined?(RAILS_ROOT)
|
26
26
|
config.framework = "Rails: #{::Rails::VERSION::STRING}" if defined?(::Rails::VERSION)
|
27
27
|
end
|
data/lib/crash_log/railtie.rb
CHANGED
@@ -7,9 +7,9 @@ module CrashLog
|
|
7
7
|
|
8
8
|
config.after_initialize do
|
9
9
|
CrashLog.configure do |config|
|
10
|
-
config.logger
|
11
|
-
config.stage
|
12
|
-
config.project_root
|
10
|
+
config.logger = ::Rails.logger
|
11
|
+
config.stage = ::Rails.env
|
12
|
+
config.project_root = ::Rails.root
|
13
13
|
config.framework = "Rails: #{::Rails::VERSION::STRING}"
|
14
14
|
end
|
15
15
|
|
data/lib/crash_log/reporter.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'faraday/request/hmac_authentication'
|
3
3
|
require 'uuid'
|
4
|
+
require 'multi_json'
|
4
5
|
require 'yajl'
|
5
6
|
|
6
7
|
module CrashLog
|
@@ -18,11 +19,12 @@ module CrashLog
|
|
18
19
|
@endpoint = config.endpoint
|
19
20
|
@announce_endpoint = config.announce == true ?
|
20
21
|
config.announce_endpoint : nil
|
22
|
+
MultiJson.use(config.json_parser || :yajl)
|
21
23
|
end
|
22
24
|
|
23
25
|
def notify(payload)
|
24
|
-
|
25
|
-
|
26
|
+
return if dry_run?
|
27
|
+
|
26
28
|
response = post(endpoint, MultiJson.encode({:payload => payload}))
|
27
29
|
@response = response
|
28
30
|
report_result(response.body)
|
@@ -30,6 +32,7 @@ module CrashLog
|
|
30
32
|
rescue => e
|
31
33
|
log_exception e
|
32
34
|
error("Sending exception failed due to a connectivity issue")
|
35
|
+
nil
|
33
36
|
end
|
34
37
|
|
35
38
|
def announce
|
@@ -38,13 +41,11 @@ module CrashLog
|
|
38
41
|
|
39
42
|
response = post(config.announce_endpoint, JSON.dump(identification_hash))
|
40
43
|
if response.status == 201
|
41
|
-
JSON.load(response.body).symbolize_keys.fetch(:
|
44
|
+
JSON.load(response.body).symbolize_keys.fetch(:application_name, 'Default')
|
42
45
|
else
|
43
|
-
|
46
|
+
nil
|
44
47
|
end
|
45
48
|
rescue => e
|
46
|
-
# We only want to log our mess when testing
|
47
|
-
log_exception(e) # if respond_to?(:should)
|
48
49
|
error("Failed to announce application launch")
|
49
50
|
nil
|
50
51
|
end
|
@@ -54,7 +55,7 @@ module CrashLog
|
|
54
55
|
end
|
55
56
|
|
56
57
|
def url
|
57
|
-
URI.parse("#{scheme}://#{host}:#{port}")
|
58
|
+
URI.parse("#{scheme}://#{host}:#{port}").to_s
|
58
59
|
end
|
59
60
|
|
60
61
|
def identification_hash
|
@@ -64,10 +65,6 @@ module CrashLog
|
|
64
65
|
}
|
65
66
|
end
|
66
67
|
|
67
|
-
def print_result
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
68
|
def dry_run?
|
72
69
|
config.dry_run == true
|
73
70
|
end
|
@@ -75,18 +72,15 @@ module CrashLog
|
|
75
72
|
def post(endpoint, body)
|
76
73
|
connection.post do |req|
|
77
74
|
req.url(endpoint)
|
78
|
-
# req.sign!(config.project_id, config.api_key)
|
79
75
|
req.headers['Content-Type'] = 'application/json'
|
80
76
|
req.body = body
|
81
77
|
end
|
82
78
|
end
|
83
79
|
|
84
|
-
# private
|
85
|
-
|
86
80
|
def connection
|
87
81
|
@connection ||= begin
|
88
82
|
Faraday.new(:url => url) do |faraday|
|
89
|
-
faraday.request :hmac_authentication, config.
|
83
|
+
faraday.request :hmac_authentication, config.api_key, config.secret, {:service_id => config.service_name}
|
90
84
|
faraday.adapter(adapter)
|
91
85
|
faraday.request :url_encoded
|
92
86
|
# faraday.request :token_auth, config.api_key
|
data/lib/crash_log/version.rb
CHANGED
data/lib/crash_log.rb
CHANGED
@@ -53,7 +53,15 @@ module CrashLog
|
|
53
53
|
#
|
54
54
|
# Returns true if successful, otherwise false
|
55
55
|
def notify(exception, context = {})
|
56
|
-
send_notification(exception, context)
|
56
|
+
send_notification(exception, context).tap do |notification|
|
57
|
+
if notification
|
58
|
+
info "Event sent to CrashLog.io"
|
59
|
+
info "Event URL: http://crashlog.io/locate/#{notification[:location_id]}" if notification.has_key?(:location_id)
|
60
|
+
else
|
61
|
+
error "Failed to send event to CrashLog.io"
|
62
|
+
log_exception(exception)
|
63
|
+
end
|
64
|
+
end
|
57
65
|
end
|
58
66
|
|
59
67
|
# Sends the notice unless it is one of the default ignored exceptions.
|
@@ -66,7 +74,7 @@ module CrashLog
|
|
66
74
|
application = CrashLog::Reporter.new(configuration).announce
|
67
75
|
|
68
76
|
if application
|
69
|
-
info("
|
77
|
+
info("Configured correctly and ready to handle exceptions for '#{application}'")
|
70
78
|
else
|
71
79
|
error("Failed to report for duty, your application failed to authenticate correctly with stdin.crashlog.io")
|
72
80
|
end
|
@@ -74,12 +82,15 @@ module CrashLog
|
|
74
82
|
|
75
83
|
# Configure the gem to send notifications, at the very least an api_key is
|
76
84
|
# required.
|
77
|
-
def configure
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
85
|
+
def configure(&block)
|
86
|
+
if block_given?
|
87
|
+
yield(configuration)
|
88
|
+
|
89
|
+
if configuration.valid?
|
90
|
+
report_for_duty!
|
91
|
+
elsif !configuration.invalid_keys.include?(:api_key)
|
92
|
+
error("Not configured correctly. Missing the following keys: #{configuration.invalid_keys.join(', ')}")
|
93
|
+
end
|
83
94
|
end
|
84
95
|
end
|
85
96
|
|
@@ -111,7 +122,9 @@ module CrashLog
|
|
111
122
|
private
|
112
123
|
|
113
124
|
def send_notification(exception, context = {})
|
114
|
-
|
125
|
+
if live?
|
126
|
+
build_payload(exception, context).deliver!
|
127
|
+
end
|
115
128
|
end
|
116
129
|
|
117
130
|
def build_payload(exception, context = {})
|
@@ -26,10 +26,6 @@ module Faraday
|
|
26
26
|
request[:body]
|
27
27
|
end
|
28
28
|
|
29
|
-
# def request_path(request)
|
30
|
-
# URI.parse(request[:url]).path
|
31
|
-
# end
|
32
|
-
|
33
29
|
def request_path(request)
|
34
30
|
URI.parse(request[:url].to_s).path
|
35
31
|
end
|
@@ -53,8 +49,7 @@ module Faraday
|
|
53
49
|
|
54
50
|
# Public
|
55
51
|
def call(env)
|
56
|
-
env[:request_headers][KEY] ||= hmac_auth_header(env).to_s
|
57
|
-
puts env[:request_headers]
|
52
|
+
env[:request_headers][KEY] ||= hmac_auth_header(env).to_s if sign_request?
|
58
53
|
@app.call(env)
|
59
54
|
end
|
60
55
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
RAILS_ENV = "production"
|
7
|
+
RAILS_ROOT = FileUtils.pwd
|
8
|
+
RAILS_DEFAULT_LOGGER = Logger.new(STDOUT)
|
9
|
+
|
10
|
+
$: << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
+
require 'crashlog'
|
12
|
+
require File.expand_path('../../rails/init', __FILE__)
|
13
|
+
|
14
|
+
fail "Please supply an API Key as the first argument" if ARGV.empty?
|
15
|
+
|
16
|
+
host = ARGV[3]
|
17
|
+
host ||= "stdin.crashlog.io"
|
18
|
+
|
19
|
+
secure = (ARGV[2] == "secure")
|
20
|
+
|
21
|
+
exception = begin
|
22
|
+
raise "Testing crashlog notifier with secure = #{secure}. If you can see this, it works."
|
23
|
+
rescue => foo
|
24
|
+
foo
|
25
|
+
end
|
26
|
+
|
27
|
+
CrashLog.configure do |config|
|
28
|
+
config.api_key = ARGV[0]
|
29
|
+
config.secret = ARGV[1]
|
30
|
+
config.scheme = secure ? 'https' : 'http'
|
31
|
+
config.host = host
|
32
|
+
config.service_name = 'Staging'
|
33
|
+
end
|
34
|
+
|
35
|
+
puts "Configuration:"
|
36
|
+
CrashLog.configuration.each do |key, value|
|
37
|
+
puts sprintf("%25s: %s", key.to_s, value.inspect.slice(0, 55))
|
38
|
+
end
|
39
|
+
puts "Sending #{secure ? "" : "in"}secure notification to project with key #{ARGV.first}"
|
40
|
+
CrashLog.notify(exception)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CrashLog::Configuration do
|
4
|
+
context 'release stage' do
|
5
|
+
it 'includes production' do
|
6
|
+
subject.release_stages.should include 'production'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'includes staging' do
|
10
|
+
subject.release_stages.should include 'staging'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'is true if production' do
|
14
|
+
subject.stage = 'production'
|
15
|
+
subject.release_stage?.should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'is true if staging' do
|
19
|
+
subject.stage = 'staging'
|
20
|
+
subject.release_stage?.should be_true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'is false in development' do
|
24
|
+
subject.stage = 'development'
|
25
|
+
subject.release_stage?.should be_false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'valid?' do
|
30
|
+
it 'is valid if api_key and secret are present' do
|
31
|
+
subject.should_not be_valid
|
32
|
+
subject.api_key = 'API_KEY'
|
33
|
+
subject.secret = 'SECRET'
|
34
|
+
subject.should be_valid
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -5,7 +5,7 @@ describe CrashLog::Reporter do
|
|
5
5
|
|
6
6
|
let(:config) {
|
7
7
|
CrashLog::Configuration.new.tap do |config|
|
8
|
-
config.
|
8
|
+
config.secret = 'SECRET'
|
9
9
|
config.api_key = 'API_KEY'
|
10
10
|
# config.adapter = test_adapter
|
11
11
|
config.scheme = 'http'
|
@@ -44,7 +44,7 @@ describe CrashLog::Reporter do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
let(:announce_response) do
|
47
|
-
{:
|
47
|
+
{:application_name=> "CrashLog Test"}
|
48
48
|
end
|
49
49
|
|
50
50
|
let(:positive_response_json) { positive_response.to_json }
|
@@ -66,7 +66,7 @@ describe CrashLog::Reporter do
|
|
66
66
|
before do
|
67
67
|
test_connection = Faraday.new(:url => subject.url) do |builder|
|
68
68
|
builder.adapter :test, stubs
|
69
|
-
builder.request :hmac_authentication, '
|
69
|
+
builder.request :hmac_authentication, 'API_KEY', 'SECRET', {:service_id => 'CrashLog'}
|
70
70
|
builder.request :url_encoded
|
71
71
|
end
|
72
72
|
|
@@ -84,14 +84,22 @@ describe CrashLog::Reporter do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'makes a post request' do
|
87
|
-
|
87
|
+
response = double("Post", success?: true)
|
88
|
+
response.stub(:body).and_return(positive_response_json)
|
89
|
+
subject.send(:connection).should_receive(:post).once.and_return(response)
|
88
90
|
subject.notify(payload)
|
89
91
|
end
|
90
92
|
|
91
93
|
it 'authenticates request with HMAC' do
|
94
|
+
time_travel_to "2012-08-01 00:00:00 UTC"
|
95
|
+
|
92
96
|
subject.notify(payload).should be_true
|
97
|
+
|
93
98
|
subject.response.env[:request_headers]['Authorization'].should ==
|
94
|
-
CrashLog::AuthHMAC.new({}, {
|
99
|
+
CrashLog::AuthHMAC.new({}, {
|
100
|
+
:service_id => 'CrashLog',
|
101
|
+
:signature => Faraday::Request::HMACAuthentication::CanonicalString
|
102
|
+
}).authorization(subject.response.env, 'API_KEY', 'SECRET')
|
95
103
|
stubs.verify_stubbed_calls
|
96
104
|
end
|
97
105
|
|
data/spec/crash_log_spec.rb
CHANGED
@@ -96,7 +96,7 @@ describe CrashLog do
|
|
96
96
|
CrashLog::Reporter.any_instance.stub(:announce).and_return("Test Application")
|
97
97
|
logger = stub('Logger')
|
98
98
|
logger.should_receive(:info).
|
99
|
-
with("** [CrashLog]
|
99
|
+
with("** [CrashLog] Configured correctly and ready to handle exceptions for 'Test Application'")
|
100
100
|
|
101
101
|
CrashLog.stub(:logger).and_return(logger)
|
102
102
|
CrashLog.report_for_duty!
|
@@ -5,6 +5,10 @@ describe 'Rescue from within a Rails 3.x controller' do
|
|
5
5
|
include RSpec::Rails::RequestExampleGroup
|
6
6
|
include Rack::Test::Methods
|
7
7
|
|
8
|
+
it 'is testing tails 3.x' do
|
9
|
+
Rails.version.should =~ /^3\./
|
10
|
+
end
|
11
|
+
|
8
12
|
describe 'dummy app' do
|
9
13
|
it 'should response nicely to index' do
|
10
14
|
get '/'
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crashlog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0.rc1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- TestPilot CI
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70309383792940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70309383792940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: faraday
|
27
|
-
requirement: &
|
27
|
+
requirement: &70309383792280 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70309383792280
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: crashlog-auth-hmac
|
38
|
-
requirement: &
|
38
|
+
requirement: &70309383791780 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.1.5
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70309383791780
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yajl-ruby
|
49
|
-
requirement: &
|
49
|
+
requirement: &70309383791260 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70309383791260
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rabl
|
60
|
-
requirement: &
|
60
|
+
requirement: &70309383806820 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.6.14
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70309383806820
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: uuid
|
71
|
-
requirement: &
|
71
|
+
requirement: &70309383806220 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70309383806220
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: hashr
|
82
|
-
requirement: &
|
82
|
+
requirement: &70309383805760 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70309383805760
|
91
91
|
description: CrashLog Exception reporter
|
92
92
|
email:
|
93
93
|
- support@crashlog.io
|
@@ -129,7 +129,9 @@ files:
|
|
129
129
|
- lib/faraday/request/hmac_authentication.rb
|
130
130
|
- lib/rails/generators/crashlog/crashlog_generator.rb
|
131
131
|
- rails/init.rb
|
132
|
+
- script/integration_test
|
132
133
|
- spec/crash_log/backtrace_spec.rb
|
134
|
+
- spec/crash_log/configuration_spec.rb
|
133
135
|
- spec/crash_log/initializer_spec.rb
|
134
136
|
- spec/crash_log/payload_spec.rb
|
135
137
|
- spec/crash_log/reporter_spec.rb
|
@@ -188,9 +190,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
191
|
none: false
|
190
192
|
requirements:
|
191
|
-
- - ! '
|
193
|
+
- - ! '>'
|
192
194
|
- !ruby/object:Gem::Version
|
193
|
-
version:
|
195
|
+
version: 1.3.1
|
194
196
|
requirements: []
|
195
197
|
rubyforge_project:
|
196
198
|
rubygems_version: 1.8.15
|
@@ -199,6 +201,7 @@ specification_version: 3
|
|
199
201
|
summary: CrashLog is an exception handler for production applications
|
200
202
|
test_files:
|
201
203
|
- spec/crash_log/backtrace_spec.rb
|
204
|
+
- spec/crash_log/configuration_spec.rb
|
202
205
|
- spec/crash_log/initializer_spec.rb
|
203
206
|
- spec/crash_log/payload_spec.rb
|
204
207
|
- spec/crash_log/reporter_spec.rb
|