airbrake 3.0.4 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,7 +14,7 @@ require 'rails/init'
14
14
  fail "Please supply an API Key as the first argument" if ARGV.empty?
15
15
 
16
16
  host = ARGV[1]
17
- host ||= "airbrakeapp.com"
17
+ host ||= "airbrake.io"
18
18
 
19
19
  secure = (ARGV[2] == "secure")
20
20
 
@@ -39,15 +39,19 @@ class AirbrakeTasksTest < Test::Unit::TestCase
39
39
 
40
40
  context "given an optional HTTP proxy and valid options" do
41
41
  setup do
42
- @response = stub("response", :body => "stub body")
43
- @http_proxy = stub("proxy", :post_form => @response)
42
+ @response = stub("response", :body => "stub body")
43
+ @http_proxy = stub("proxy", :request => @response)
44
+ @http_proxy_class = stub("proxy_class", :new => @http_proxy)
45
+ @post = stub("post", :set_form_data => nil)
44
46
 
47
+ @http_proxy.expects(:use_ssl=).with(Airbrake.configuration.secure)
45
48
  Net::HTTP.expects(:Proxy).
46
49
  with(Airbrake.configuration.proxy_host,
47
50
  Airbrake.configuration.proxy_port,
48
51
  Airbrake.configuration.proxy_user,
49
52
  Airbrake.configuration.proxy_pass).
50
- returns(@http_proxy)
53
+ returns(@http_proxy_class)
54
+ Net::HTTP::Post.expects(:new).with("/deploys.txt").returns(@post)
51
55
 
52
56
  @options = { :rails_env => "staging", :dry_run => false }
53
57
  end
@@ -57,7 +61,7 @@ class AirbrakeTasksTest < Test::Unit::TestCase
57
61
 
58
62
  should "return true without performing any actual request" do
59
63
  assert_equal true, @output
60
- assert_received(@http_proxy, :post_form) do|expects|
64
+ assert_received(@http_proxy, :request) do|expects|
61
65
  expects.never
62
66
  end
63
67
  end
@@ -68,57 +72,54 @@ class AirbrakeTasksTest < Test::Unit::TestCase
68
72
  @output = AirbrakeTasks.deploy(@options)
69
73
  end
70
74
 
71
- before_should "post to http://airbrakeapp.com/deploys.txt" do
72
- URI.stubs(:parse).with('http://airbrakeapp.com/deploys.txt').returns(:uri)
73
- @http_proxy.expects(:post_form).with(:uri, kind_of(Hash)).returns(successful_response)
75
+ before_should "post to http://airbrake.io:80/deploys.txt" do
76
+ @http_proxy_class.expects(:new).with("airbrake.io", 80).returns(@http_proxy)
77
+ @post.expects(:set_form_data).with(kind_of(Hash))
78
+ @http_proxy.expects(:request).with(any_parameters).returns(successful_response)
74
79
  end
75
80
 
76
81
  before_should "use the project api key" do
77
- @http_proxy.expects(:post_form).
78
- with(kind_of(URI), has_entries('api_key' => "1234123412341234")).
79
- returns(successful_response)
82
+ @post.expects(:set_form_data).
83
+ with(has_entries('api_key' => "1234123412341234"))
80
84
  end
81
85
 
82
86
  before_should "use send the rails_env param" do
83
- @http_proxy.expects(:post_form).
84
- with(kind_of(URI), has_entries("deploy[rails_env]" => "staging")).
85
- returns(successful_response)
87
+ @post.expects(:set_form_data).
88
+ with(has_entries("deploy[rails_env]" => "staging"))
86
89
  end
87
90
 
88
91
  [:local_username, :scm_repository, :scm_revision].each do |key|
89
92
  before_should "use send the #{key} param if it's passed in." do
90
93
  @options[key] = "value"
91
- @http_proxy.expects(:post_form).
92
- with(kind_of(URI), has_entries("deploy[#{key}]" => "value")).
93
- returns(successful_response)
94
+ @post.expects(:set_form_data).
95
+ with(has_entries("deploy[#{key}]" => "value"))
94
96
  end
95
97
  end
96
98
 
97
99
  before_should "use the :api_key param if it's passed in." do
98
100
  @options[:api_key] = "value"
99
- @http_proxy.expects(:post_form).
100
- with(kind_of(URI), has_entries("api_key" => "value")).
101
- returns(successful_response)
101
+ @post.expects(:set_form_data).
102
+ with(has_entries("api_key" => "value"))
102
103
  end
103
104
 
104
105
  before_should "puts the response body on success" do
105
106
  AirbrakeTasks.expects(:puts).with("body")
106
- @http_proxy.expects(:post_form).with(any_parameters).returns(successful_response('body'))
107
+ @http_proxy.expects(:request).with(any_parameters).returns(successful_response('body'))
107
108
  end
108
109
 
109
110
  before_should "puts the response body on failure" do
110
111
  AirbrakeTasks.expects(:puts).with("body")
111
- @http_proxy.expects(:post_form).with(any_parameters).returns(unsuccessful_response('body'))
112
+ @http_proxy.expects(:request).with(any_parameters).returns(unsuccessful_response('body'))
112
113
  end
113
114
 
114
115
  should "return false on failure", :before => lambda {
115
- @http_proxy.expects(:post_form).with(any_parameters).returns(unsuccessful_response('body'))
116
+ @http_proxy.expects(:request).with(any_parameters).returns(unsuccessful_response('body'))
116
117
  } do
117
118
  assert !@output
118
119
  end
119
120
 
120
121
  should "return true on success", :before => lambda {
121
- @http_proxy.expects(:post_form).with(any_parameters).returns(successful_response('body'))
122
+ @http_proxy.expects(:request).with(any_parameters).returns(successful_response('body'))
122
123
  } do
123
124
  assert @output
124
125
  end
@@ -138,8 +139,17 @@ class AirbrakeTasksTest < Test::Unit::TestCase
138
139
  setup { @output = AirbrakeTasks.deploy(:rails_env => "staging") }
139
140
 
140
141
  before_should "post to the custom host" do
141
- URI.stubs(:parse).with('http://custom.host/deploys.txt').returns(:uri)
142
- Net::HTTP.expects(:post_form).with(:uri, kind_of(Hash)).returns(successful_response)
142
+ @post = stub("post", :set_form_data => nil)
143
+ @http_proxy = stub("proxy", :request => @response)
144
+ @http_proxy.expects(:use_ssl=).with(Airbrake.configuration.secure)
145
+ @http_proxy_class = stub("proxy_class", :new => @http_proxy)
146
+ @http_proxy_class.expects(:new).with("custom.host", 80).returns(@http_proxy)
147
+ Net::HTTP.expects(:Proxy).with(any_parameters).returns(@http_proxy_class)
148
+ Net::HTTP::Post.expects(:new).with("/deploys.txt").returns(@post)
149
+ # URI.stubs(:parse).with('http://custom.host/deploys.txt').returns(:uri)
150
+ # Net::HTTP.expects(:post_form).with(:uri, kind_of(Hash)).returns(successful_response)
151
+ @post.expects(:set_form_data).with(kind_of(Hash))
152
+ @http_proxy.expects(:request).with(any_parameters).returns(successful_response)
143
153
  end
144
154
  end
145
155
  end
@@ -20,6 +20,7 @@ class CapistranoTest < Test::Unit::TestCase
20
20
  should "log when calling airbrake:deploy task" do
21
21
  @configuration.set(:current_revision, '084505b1c0e0bcf1526e673bb6ac99fbcb18aecc')
22
22
  @configuration.set(:repository, 'repository')
23
+ @configuration.set(:current_release, '/home/deploy/rails_app/hoptoad')
23
24
  io = StringIO.new
24
25
  logger = Capistrano::Logger.new(:output => io)
25
26
  logger.level = Capistrano::Logger::MAX_LEVEL
@@ -30,4 +31,4 @@ class CapistranoTest < Test::Unit::TestCase
30
31
  assert io.string.include?('** Notifying Airbrake of Deploy')
31
32
  assert io.string.include?('** Airbrake Notification Complete')
32
33
  end
33
- end
34
+ end
@@ -14,9 +14,9 @@ class ConfigurationTest < Test::Unit::TestCase
14
14
  assert_config_default :logger, nil
15
15
  assert_config_default :notifier_version, Airbrake::VERSION
16
16
  assert_config_default :notifier_name, 'Airbrake Notifier'
17
- assert_config_default :notifier_url, 'http://airbrakeapp.com'
17
+ assert_config_default :notifier_url, 'http://airbrake.io'
18
18
  assert_config_default :secure, false
19
- assert_config_default :host, 'airbrakeapp.com'
19
+ assert_config_default :host, 'airbrake.io'
20
20
  assert_config_default :http_open_timeout, 2
21
21
  assert_config_default :http_read_timeout, 5
22
22
  assert_config_default :ignore_by_filters, []
@@ -349,6 +349,13 @@ class NoticeTest < Test::Unit::TestCase
349
349
  end
350
350
  end
351
351
 
352
+
353
+ should "ensure #to_ary is called on objects that support it" do
354
+ assert_nothing_raised do
355
+ build_notice(:session => { :object => stub(:to_ary => {}) })
356
+ end
357
+ end
358
+
352
359
  should "extract data from a rack environment hash" do
353
360
  url = "https://subdomain.happylane.com:100/test/file.rb?var=value&var2=value2"
354
361
  parameters = { 'var' => 'value', 'var2' => 'value2' }
@@ -82,6 +82,19 @@ class NotifierTest < Test::Unit::TestCase
82
82
  assert_sent(notice, notice_args)
83
83
  end
84
84
 
85
+ should "create and send a notice for an exception that responds to to_hash" do
86
+ set_public_env
87
+ exception = build_exception
88
+ notice = stub_notice!
89
+ notice_args = { :error_message => 'uh oh' }
90
+ exception.stubs(:to_hash).returns(notice_args)
91
+ stub_sender!
92
+
93
+ Airbrake.notify(exception)
94
+
95
+ assert_sent(notice, notice_args.merge(:exception => exception))
96
+ end
97
+
85
98
  should "create and sent a notice for an exception and hash" do
86
99
  set_public_env
87
100
  exception = build_exception
@@ -39,7 +39,7 @@ class SenderTest < Test::Unit::TestCase
39
39
  proxy = stub(:new => http)
40
40
  Net::HTTP.stubs(:Proxy => proxy)
41
41
 
42
- url = "http://airbrakeapp.com:80#{Airbrake::Sender::NOTICES_URI}"
42
+ url = "http://airbrake.io:80#{Airbrake::Sender::NOTICES_URI}"
43
43
  uri = URI.parse(url)
44
44
 
45
45
  proxy_host = 'some.host'
@@ -98,7 +98,7 @@ class SenderTest < Test::Unit::TestCase
98
98
 
99
99
  should "post to the right url for non-ssl" do
100
100
  http = stub_http
101
- url = "http://airbrakeapp.com:80#{Airbrake::Sender::NOTICES_URI}"
101
+ url = "http://airbrake.io:80#{Airbrake::Sender::NOTICES_URI}"
102
102
  uri = URI.parse(url)
103
103
  send_exception(:secure => false)
104
104
  assert_received(http, :post) {|expect| expect.with(uri.path, anything, Airbrake::HEADERS) }
@@ -111,7 +111,7 @@ class SenderTest < Test::Unit::TestCase
111
111
  end
112
112
 
113
113
  should "verify the SSL peer when the use_ssl option is set to true" do
114
- url = "https://airbrakeapp.com#{Airbrake::Sender::NOTICES_URI}"
114
+ url = "https://airbrake.io#{Airbrake::Sender::NOTICES_URI}"
115
115
  uri = URI.parse(url)
116
116
 
117
117
  real_http = Net::HTTP.new(uri.host, uri.port)
@@ -121,13 +121,13 @@ class SenderTest < Test::Unit::TestCase
121
121
  File.stubs(:exist?).with(OpenSSL::X509::DEFAULT_CERT_FILE).returns(false)
122
122
 
123
123
  send_exception(:secure => true)
124
- assert(real_http.use_ssl)
124
+ assert(real_http.use_ssl?)
125
125
  assert_equal(OpenSSL::SSL::VERIFY_PEER, real_http.verify_mode)
126
- assert_nil real_http.ca_file
126
+ assert_equal(Airbrake::Sender.local_cert_path, real_http.ca_file)
127
127
  end
128
128
 
129
129
  should "verify the SSL peer when the use_ssl option is set to true and the default cert exists" do
130
- url = "https://airbrakeapp.com#{Airbrake::Sender::NOTICES_URI}"
130
+ url = "https://airbrake.io#{Airbrake::Sender::NOTICES_URI}"
131
131
  uri = URI.parse(url)
132
132
 
133
133
  real_http = Net::HTTP.new(uri.host, uri.port)
@@ -137,7 +137,7 @@ class SenderTest < Test::Unit::TestCase
137
137
  File.stubs(:exist?).with(OpenSSL::X509::DEFAULT_CERT_FILE).returns(true)
138
138
 
139
139
  send_exception(:secure => true)
140
- assert(real_http.use_ssl)
140
+ assert(real_http.use_ssl?)
141
141
  assert_equal(OpenSSL::SSL::VERIFY_PEER, real_http.verify_mode)
142
142
  assert_equal(OpenSSL::X509::DEFAULT_CERT_FILE, real_http.ca_file)
143
143
  end
@@ -169,13 +169,13 @@ class SenderTest < Test::Unit::TestCase
169
169
  should "connect to the right port for ssl" do
170
170
  stub_http
171
171
  send_exception(:secure => true)
172
- assert_received(Net::HTTP, :new) {|expect| expect.with("airbrakeapp.com", 443) }
172
+ assert_received(Net::HTTP, :new) {|expect| expect.with("airbrake.io", 443) }
173
173
  end
174
174
 
175
175
  should "connect to the right port for non-ssl" do
176
176
  stub_http
177
177
  send_exception(:secure => false)
178
- assert_received(Net::HTTP, :new) {|expect| expect.with("airbrakeapp.com", 80) }
178
+ assert_received(Net::HTTP, :new) {|expect| expect.with("airbrake.io", 80) }
179
179
  end
180
180
 
181
181
  should "use ssl if secure" do
metadata CHANGED
@@ -1,235 +1,165 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: airbrake
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.5
5
5
  prerelease:
6
- segments:
7
- - 3
8
- - 0
9
- - 4
10
- version: 3.0.4
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - thoughtbot, inc
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-09-12 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-09 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: builder
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70183356319840 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: activesupport
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70183356319840
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ requirement: &70183356319180 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
46
33
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: actionpack
50
34
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70183356319180
36
+ - !ruby/object:Gem::Dependency
37
+ name: actionpack
38
+ requirement: &70183356318180 !ruby/object:Gem::Requirement
52
39
  none: false
53
- requirements:
40
+ requirements:
54
41
  - - ~>
55
- - !ruby/object:Gem::Version
56
- hash: 19
57
- segments:
58
- - 2
59
- - 3
60
- - 8
42
+ - !ruby/object:Gem::Version
61
43
  version: 2.3.8
62
44
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: activerecord
66
45
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70183356318180
47
+ - !ruby/object:Gem::Dependency
48
+ name: activerecord
49
+ requirement: &70183356317420 !ruby/object:Gem::Requirement
68
50
  none: false
69
- requirements:
51
+ requirements:
70
52
  - - ~>
71
- - !ruby/object:Gem::Version
72
- hash: 19
73
- segments:
74
- - 2
75
- - 3
76
- - 8
53
+ - !ruby/object:Gem::Version
77
54
  version: 2.3.8
78
55
  type: :development
79
- version_requirements: *id004
80
- - !ruby/object:Gem::Dependency
81
- name: activesupport
82
56
  prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70183356317420
58
+ - !ruby/object:Gem::Dependency
59
+ name: activesupport
60
+ requirement: &70183356316420 !ruby/object:Gem::Requirement
84
61
  none: false
85
- requirements:
62
+ requirements:
86
63
  - - ~>
87
- - !ruby/object:Gem::Version
88
- hash: 19
89
- segments:
90
- - 2
91
- - 3
92
- - 8
64
+ - !ruby/object:Gem::Version
93
65
  version: 2.3.8
94
66
  type: :development
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: bourne
98
67
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70183356316420
69
+ - !ruby/object:Gem::Dependency
70
+ name: bourne
71
+ requirement: &70183356312020 !ruby/object:Gem::Requirement
100
72
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: 15
105
- segments:
106
- - 1
107
- - 0
108
- version: "1.0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '1.0'
109
77
  type: :development
110
- version_requirements: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: cucumber
113
78
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70183356312020
80
+ - !ruby/object:Gem::Dependency
81
+ name: cucumber
82
+ requirement: &70183356311240 !ruby/object:Gem::Requirement
115
83
  none: false
116
- requirements:
84
+ requirements:
117
85
  - - ~>
118
- - !ruby/object:Gem::Version
119
- hash: 59
120
- segments:
121
- - 0
122
- - 10
123
- - 6
86
+ - !ruby/object:Gem::Version
124
87
  version: 0.10.6
125
88
  type: :development
126
- version_requirements: *id007
127
- - !ruby/object:Gem::Dependency
128
- name: fakeweb
129
89
  prerelease: false
130
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *70183356311240
91
+ - !ruby/object:Gem::Dependency
92
+ name: fakeweb
93
+ requirement: &70183356310280 !ruby/object:Gem::Requirement
131
94
  none: false
132
- requirements:
95
+ requirements:
133
96
  - - ~>
134
- - !ruby/object:Gem::Version
135
- hash: 27
136
- segments:
137
- - 1
138
- - 3
139
- - 0
97
+ - !ruby/object:Gem::Version
140
98
  version: 1.3.0
141
99
  type: :development
142
- version_requirements: *id008
143
- - !ruby/object:Gem::Dependency
144
- name: nokogiri
145
100
  prerelease: false
146
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *70183356310280
102
+ - !ruby/object:Gem::Dependency
103
+ name: nokogiri
104
+ requirement: &70183356309460 !ruby/object:Gem::Requirement
147
105
  none: false
148
- requirements:
106
+ requirements:
149
107
  - - ~>
150
- - !ruby/object:Gem::Version
151
- hash: 113
152
- segments:
153
- - 1
154
- - 4
155
- - 3
156
- - 1
108
+ - !ruby/object:Gem::Version
157
109
  version: 1.4.3.1
158
110
  type: :development
159
- version_requirements: *id009
160
- - !ruby/object:Gem::Dependency
161
- name: rspec
162
111
  prerelease: false
163
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *70183356309460
113
+ - !ruby/object:Gem::Dependency
114
+ name: rspec
115
+ requirement: &70183356308000 !ruby/object:Gem::Requirement
164
116
  none: false
165
- requirements:
117
+ requirements:
166
118
  - - ~>
167
- - !ruby/object:Gem::Version
168
- hash: 23
169
- segments:
170
- - 2
171
- - 6
172
- - 0
119
+ - !ruby/object:Gem::Version
173
120
  version: 2.6.0
174
121
  type: :development
175
- version_requirements: *id010
176
- - !ruby/object:Gem::Dependency
177
- name: sham_rack
178
122
  prerelease: false
179
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *70183356308000
124
+ - !ruby/object:Gem::Dependency
125
+ name: sham_rack
126
+ requirement: &70183356307040 !ruby/object:Gem::Requirement
180
127
  none: false
181
- requirements:
128
+ requirements:
182
129
  - - ~>
183
- - !ruby/object:Gem::Version
184
- hash: 27
185
- segments:
186
- - 1
187
- - 3
188
- - 0
130
+ - !ruby/object:Gem::Version
189
131
  version: 1.3.0
190
132
  type: :development
191
- version_requirements: *id011
192
- - !ruby/object:Gem::Dependency
193
- name: shoulda
194
133
  prerelease: false
195
- requirement: &id012 !ruby/object:Gem::Requirement
134
+ version_requirements: *70183356307040
135
+ - !ruby/object:Gem::Dependency
136
+ name: shoulda
137
+ requirement: &70183356306320 !ruby/object:Gem::Requirement
196
138
  none: false
197
- requirements:
139
+ requirements:
198
140
  - - ~>
199
- - !ruby/object:Gem::Version
200
- hash: 37
201
- segments:
202
- - 2
203
- - 11
204
- - 3
141
+ - !ruby/object:Gem::Version
205
142
  version: 2.11.3
206
143
  type: :development
207
- version_requirements: *id012
208
- - !ruby/object:Gem::Dependency
209
- name: capistrano
210
144
  prerelease: false
211
- requirement: &id013 !ruby/object:Gem::Requirement
145
+ version_requirements: *70183356306320
146
+ - !ruby/object:Gem::Dependency
147
+ name: capistrano
148
+ requirement: &70183356305220 !ruby/object:Gem::Requirement
212
149
  none: false
213
- requirements:
150
+ requirements:
214
151
  - - ~>
215
- - !ruby/object:Gem::Version
216
- hash: 47
217
- segments:
218
- - 2
219
- - 8
220
- - 0
152
+ - !ruby/object:Gem::Version
221
153
  version: 2.8.0
222
154
  type: :development
223
- version_requirements: *id013
155
+ prerelease: false
156
+ version_requirements: *70183356305220
224
157
  description:
225
- email: support@airbrakeapp.com
158
+ email: support@airbrake.io
226
159
  executables: []
227
-
228
160
  extensions: []
229
-
230
161
  extra_rdoc_files: []
231
-
232
- files:
162
+ files:
233
163
  - .gitignore
234
164
  - .yardopts
235
165
  - CHANGELOG
@@ -292,6 +222,8 @@ files:
292
222
  - lib/templates/javascript_notifier.erb
293
223
  - lib/templates/rescue.erb
294
224
  - rails/init.rb
225
+ - resources/README.md
226
+ - resources/ca-bundle.crt
295
227
  - script/integration_test.rb
296
228
  - test/airbrake_2_2.xsd
297
229
  - test/airbrake_tasks_test.rb
@@ -309,40 +241,37 @@ files:
309
241
  - test/recursion_test.rb
310
242
  - test/sender_test.rb
311
243
  - test/user_informer_test.rb
312
- homepage: http://www.airbrakeapp.com
244
+ homepage: http://www.airbrake.io
313
245
  licenses: []
314
-
315
246
  post_install_message:
316
247
  rdoc_options: []
317
-
318
- require_paths:
248
+ require_paths:
319
249
  - lib
320
- required_ruby_version: !ruby/object:Gem::Requirement
250
+ required_ruby_version: !ruby/object:Gem::Requirement
321
251
  none: false
322
- requirements:
323
- - - ">="
324
- - !ruby/object:Gem::Version
325
- hash: 3
326
- segments:
252
+ requirements:
253
+ - - ! '>='
254
+ - !ruby/object:Gem::Version
255
+ version: '0'
256
+ segments:
327
257
  - 0
328
- version: "0"
329
- required_rubygems_version: !ruby/object:Gem::Requirement
258
+ hash: 3313650858108623652
259
+ required_rubygems_version: !ruby/object:Gem::Requirement
330
260
  none: false
331
- requirements:
332
- - - ">="
333
- - !ruby/object:Gem::Version
334
- hash: 3
335
- segments:
261
+ requirements:
262
+ - - ! '>='
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ segments:
336
266
  - 0
337
- version: "0"
267
+ hash: 3313650858108623652
338
268
  requirements: []
339
-
340
269
  rubyforge_project:
341
- rubygems_version: 1.8.6
270
+ rubygems_version: 1.8.11
342
271
  signing_key:
343
272
  specification_version: 3
344
273
  summary: Send your application errors to our hosted service and reclaim your inbox.
345
- test_files:
274
+ test_files:
346
275
  - features/metal.feature
347
276
  - features/rack.feature
348
277
  - features/rails.feature