appsignal 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ module Appsignal
2
+ module CarefulLogger
3
+ def carefully_log_error(message)
4
+ if @logger.respond_to?(:important)
5
+ @logger.important(message)
6
+ else
7
+ @logger.error(message)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,9 @@
1
+ require 'appsignal/careful_logger'
2
+
1
3
  module Appsignal
2
4
  class Config
5
+ include Appsignal::CarefulLogger
6
+
3
7
  attr_accessor :root_path, :rails_env
4
8
 
5
9
  def initialize(root_path, rails_env, logger=Appsignal.logger)
@@ -11,13 +15,13 @@ module Appsignal
11
15
  def load
12
16
  file = File.join(@root_path, 'config/appsignal.yml')
13
17
  unless File.exists?(file)
14
- @logger.error "config not found at: #{file}"
18
+ carefully_log_error "config not found at: #{file}"
15
19
  return
16
20
  end
17
21
 
18
22
  config = YAML.load_file(file)[@rails_env]
19
23
  unless config
20
- @logger.error "config for '#{@rails_env}' not found"
24
+ carefully_log_error "config for '#{@rails_env}' not found"
21
25
  return
22
26
  end
23
27
 
@@ -26,5 +30,6 @@ module Appsignal
26
30
  :slow_request_threshold => 200
27
31
  }.merge(config.symbolize_keys)
28
32
  end
33
+
29
34
  end
30
35
  end
@@ -1,5 +1,9 @@
1
+ require 'appsignal/careful_logger'
2
+
1
3
  module Appsignal
2
4
  class Marker
5
+ include Appsignal::CarefulLogger
6
+
3
7
  attr_reader :marker_data, :config, :logger
4
8
  ACTION = 'markers'
5
9
 
@@ -23,12 +27,7 @@ module Appsignal
23
27
  end
24
28
  rescue Exception => e
25
29
  message = "Something went wrong while trying to notify Appsignal: #{e}"
26
- if @logger.respond_to?(:important)
27
- # This is a Capistrano logger
28
- @logger.important message
29
- else
30
- @logger.error message
31
- end
30
+ carefully_log_error message
32
31
  end
33
32
  end
34
33
  end
@@ -1,3 +1,3 @@
1
1
  module Appsignal
2
- VERSION = '0.4.6'
2
+ VERSION = '0.4.7'
3
3
  end
@@ -1,7 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Appsignal::Config do
4
- subject { Appsignal::Config.new(Dir.pwd, 'test').load }
4
+ let(:logger_parameter) { [] }
5
+ subject { Appsignal::Config.new(Dir.pwd, 'test', *logger_parameter).load }
5
6
 
6
7
  it {
7
8
  should == {
@@ -23,11 +24,23 @@ describe Appsignal::Config do
23
24
  )
24
25
  end
25
26
 
27
+ context "when the logger has no #error method" do
28
+ let(:logger) { mock(:logger) }
29
+ let(:logger_parameter) { [logger] }
30
+
31
+ it "should log the error using #important" do
32
+ logger.should_receive(:important).with(
33
+ "config not found at:"\
34
+ " /not/existing/config/appsignal.yml"
35
+ )
36
+ end
37
+ end
38
+
26
39
  after { subject }
27
40
  end
28
41
 
29
42
  context "the env is not in the config" do
30
- subject { Appsignal::Config.new(Dir.pwd, 'staging').load }
43
+ subject { Appsignal::Config.new(Dir.pwd, 'staging', *logger_parameter).load }
31
44
 
32
45
  it "should generate error" do
33
46
  Appsignal.logger.should_receive(:error).with(
@@ -35,6 +48,17 @@ describe Appsignal::Config do
35
48
  )
36
49
  end
37
50
 
51
+ context "when the logger has no #error method" do
52
+ let(:logger) { mock(:logger) }
53
+ let(:logger_parameter) { [logger] }
54
+
55
+ it "should log the error using #important" do
56
+ logger.should_receive(:important).with(
57
+ "config for 'staging' not found"
58
+ )
59
+ end
60
+ end
61
+
38
62
  after { subject }
39
63
  end
40
64
  end
@@ -62,6 +62,7 @@ describe AppsignalGenerator do
62
62
  context "internal failure" do
63
63
  before do
64
64
  prepare_destination
65
+ Appsignal::AuthCheck.should_receive(:new) { raise }
65
66
  run_generator_in_tmp %w(my_app_key)
66
67
  end
67
68
 
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appsignal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
5
4
  prerelease:
5
+ version: 0.4.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Robert Beekman
@@ -13,120 +13,120 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-04-03 00:00:00.000000000 Z
16
+ date: 2013-04-08 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
- name: rails
20
- requirement: !ruby/object:Gem::Requirement
21
- none: false
19
+ version_requirements: !ruby/object:Gem::Requirement
22
20
  requirements:
23
21
  - - ~>
24
22
  - !ruby/object:Gem::Version
25
23
  version: '3'
26
- type: :runtime
27
- prerelease: false
28
- version_requirements: !ruby/object:Gem::Requirement
29
24
  none: false
25
+ prerelease: false
26
+ name: rails
27
+ requirement: !ruby/object:Gem::Requirement
30
28
  requirements:
31
29
  - - ~>
32
30
  - !ruby/object:Gem::Version
33
31
  version: '3'
32
+ none: false
33
+ type: :runtime
34
34
  - !ruby/object:Gem::Dependency
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ none: false
41
+ prerelease: false
35
42
  name: rake
36
43
  requirement: !ruby/object:Gem::Requirement
37
- none: false
38
44
  requirements:
39
45
  - - ! '>='
40
46
  - !ruby/object:Gem::Version
41
47
  version: '0'
48
+ none: false
42
49
  type: :runtime
43
- prerelease: false
50
+ - !ruby/object:Gem::Dependency
44
51
  version_requirements: !ruby/object:Gem::Requirement
45
- none: false
46
52
  requirements:
47
53
  - - ! '>='
48
54
  - !ruby/object:Gem::Version
49
55
  version: '0'
50
- - !ruby/object:Gem::Dependency
56
+ none: false
57
+ prerelease: false
51
58
  name: json
52
59
  requirement: !ruby/object:Gem::Requirement
53
- none: false
54
60
  requirements:
55
61
  - - ! '>='
56
62
  - !ruby/object:Gem::Version
57
63
  version: '0'
64
+ none: false
58
65
  type: :runtime
59
- prerelease: false
66
+ - !ruby/object:Gem::Dependency
60
67
  version_requirements: !ruby/object:Gem::Requirement
61
- none: false
62
68
  requirements:
63
69
  - - ! '>='
64
70
  - !ruby/object:Gem::Version
65
71
  version: '0'
66
- - !ruby/object:Gem::Dependency
72
+ none: false
73
+ prerelease: false
67
74
  name: rack
68
75
  requirement: !ruby/object:Gem::Requirement
69
- none: false
70
76
  requirements:
71
77
  - - ! '>='
72
78
  - !ruby/object:Gem::Version
73
79
  version: '0'
80
+ none: false
74
81
  type: :runtime
75
- prerelease: false
82
+ - !ruby/object:Gem::Dependency
76
83
  version_requirements: !ruby/object:Gem::Requirement
77
- none: false
78
84
  requirements:
79
85
  - - ! '>='
80
86
  - !ruby/object:Gem::Version
81
87
  version: '0'
82
- - !ruby/object:Gem::Dependency
88
+ none: false
89
+ prerelease: false
83
90
  name: rspec
84
91
  requirement: !ruby/object:Gem::Requirement
85
- none: false
86
92
  requirements:
87
93
  - - ! '>='
88
94
  - !ruby/object:Gem::Version
89
95
  version: '0'
96
+ none: false
90
97
  type: :development
91
- prerelease: false
98
+ - !ruby/object:Gem::Dependency
92
99
  version_requirements: !ruby/object:Gem::Requirement
93
- none: false
94
100
  requirements:
95
101
  - - ! '>='
96
102
  - !ruby/object:Gem::Version
97
103
  version: '0'
98
- - !ruby/object:Gem::Dependency
104
+ none: false
105
+ prerelease: false
99
106
  name: capistrano
100
107
  requirement: !ruby/object:Gem::Requirement
101
- none: false
102
108
  requirements:
103
109
  - - ! '>='
104
110
  - !ruby/object:Gem::Version
105
111
  version: '0'
112
+ none: false
106
113
  type: :development
107
- prerelease: false
114
+ - !ruby/object:Gem::Dependency
108
115
  version_requirements: !ruby/object:Gem::Requirement
109
- none: false
110
116
  requirements:
111
117
  - - ! '>='
112
118
  - !ruby/object:Gem::Version
113
119
  version: '0'
114
- - !ruby/object:Gem::Dependency
120
+ none: false
121
+ prerelease: false
115
122
  name: generator_spec
116
123
  requirement: !ruby/object:Gem::Requirement
117
- none: false
118
124
  requirements:
119
125
  - - ! '>='
120
126
  - !ruby/object:Gem::Version
121
127
  version: '0'
122
- type: :development
123
- prerelease: false
124
- version_requirements: !ruby/object:Gem::Requirement
125
128
  none: false
126
- requirements:
127
- - - ! '>='
128
- - !ruby/object:Gem::Version
129
- version: '0'
129
+ type: :development
130
130
  description: The official appsignal.com gem
131
131
  email:
132
132
  - contact@appsignal.com
@@ -153,6 +153,7 @@ files:
153
153
  - lib/appsignal/agent.rb
154
154
  - lib/appsignal/auth_check.rb
155
155
  - lib/appsignal/capistrano.rb
156
+ - lib/appsignal/careful_logger.rb
156
157
  - lib/appsignal/cli.rb
157
158
  - lib/appsignal/config.rb
158
159
  - lib/appsignal/exception_notification.rb
@@ -200,20 +201,26 @@ rdoc_options: []
200
201
  require_paths:
201
202
  - lib
202
203
  required_ruby_version: !ruby/object:Gem::Requirement
203
- none: false
204
204
  requirements:
205
205
  - - ! '>='
206
206
  - !ruby/object:Gem::Version
207
207
  version: '0'
208
- required_rubygems_version: !ruby/object:Gem::Requirement
208
+ segments:
209
+ - 0
210
+ hash: -3341543659726681693
209
211
  none: false
212
+ required_rubygems_version: !ruby/object:Gem::Requirement
210
213
  requirements:
211
214
  - - ! '>='
212
215
  - !ruby/object:Gem::Version
213
216
  version: '0'
217
+ segments:
218
+ - 0
219
+ hash: -3341543659726681693
220
+ none: false
214
221
  requirements: []
215
222
  rubyforge_project:
216
- rubygems_version: 1.8.23
223
+ rubygems_version: 1.8.24
217
224
  signing_key:
218
225
  specification_version: 3
219
226
  summary: Logs performance and exception data from your app toappsignal.com