exception_notification_sns 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5dfa3cbc2642d58192e77af2ab359fbc91e04380
4
- data.tar.gz: 247a9c6bb41940003843b49e431dee3b7af11698
3
+ metadata.gz: b730222081255bcfaef33ea92cc5e3e2a37837e7
4
+ data.tar.gz: 25631297661da6d0349211265eeb9024eed3c63c
5
5
  SHA512:
6
- metadata.gz: d8179c127b1c723db16ccaad938e5050f54e890c1b0d656bc7efccc64fb7a0646ad215ca450e2af81fdb0f66aa2dbdb91f092f42a4b31463dbd7fb02a61efb5e
7
- data.tar.gz: 5d3da8b0defc545cf15f18543f9e23ba9eff9065aab1d567184b89f6121cc5b86bc1f8536329150ba96cbcb1aaec9acd142e825f29f366c43cd60a54b3a03daa
6
+ metadata.gz: 8909bdc75d1d85431d497336d1b6d5019cb29981548bf46489f428bdac9b8c83384e25a8236b49838844f570916a92865a52dd5ebdb88797bd89d8cf0c003f3d
7
+ data.tar.gz: 0ebbed5b2ea7382fc6fa608d30e1c63984116eeb9afd078b7f190ec741f25c12209b5d720ece092f9d3179fcb2453f812d1ba8083a651b39d6c42bc12a3ac4bd
data/.rubocop.yml ADDED
@@ -0,0 +1,30 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.2.2
3
+
4
+ Style/Documentation:
5
+ Enabled: false
6
+
7
+ Style/FrozenStringLiteralComment:
8
+ Enabled: false
9
+
10
+ Style/Encoding:
11
+ Enabled: false
12
+
13
+ Style/FormatStringToken:
14
+ EnforcedStyle: template
15
+
16
+ Metrics/LineLength:
17
+ Max: 120
18
+
19
+ Metrics/BlockLength:
20
+ CountComments: false # count full line comments?
21
+ Max: 25
22
+ ExcludedMethods: ['describe', 'context', 'it', 'shared_examples', 'class_eval', 'post', 'get']
23
+ Exclude:
24
+ - config/**/*
25
+ - config/routes/*
26
+ - spec/factories/**/*
27
+
28
+ Metrics/AbcSize:
29
+ Exclude:
30
+ - config/**/*
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.2
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gemspec
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- exception_notification_sns (0.1.3)
4
+ exception_notification_sns (0.1.4)
5
5
  aws-sdk-v1 (>= 1, < 3)
6
6
  exception_notification (= 4.2.1)
7
7
 
@@ -44,19 +44,13 @@ GEM
44
44
  thread_safe (~> 0.3, >= 0.3.4)
45
45
  tzinfo (~> 1.1)
46
46
  arel (6.0.4)
47
- aws-sdk-v1 (1.66.0)
47
+ ast (2.4.0)
48
+ aws-sdk-v1 (1.67.0)
48
49
  json (~> 1.4)
49
- nokogiri (>= 1.4.4)
50
+ nokogiri (~> 1)
50
51
  builder (3.2.3)
51
52
  concurrent-ruby (1.0.4)
52
- coveralls (0.8.18)
53
- json (>= 1.8, < 3)
54
- simplecov (~> 0.12.0)
55
- term-ansicolor (~> 1.3)
56
- thor (~> 0.19.1)
57
- tins (~> 1.6)
58
53
  diff-lcs (1.2.5)
59
- docile (1.1.5)
60
54
  erubis (2.7.0)
61
55
  exception_notification (4.2.1)
62
56
  actionmailer (>= 4.0, < 6)
@@ -66,6 +60,7 @@ GEM
66
60
  globalid (0.3.7)
67
61
  activesupport (>= 4.1.0)
68
62
  i18n (0.7.0)
63
+ jaro_winkler (1.5.1)
69
64
  json (1.8.6)
70
65
  loofah (2.0.3)
71
66
  nokogiri (>= 1.5.9)
@@ -81,6 +76,10 @@ GEM
81
76
  metaclass (~> 0.0.1)
82
77
  nokogiri (1.7.0.1)
83
78
  mini_portile2 (~> 2.1.0)
79
+ parallel (1.12.1)
80
+ parser (2.5.1.0)
81
+ ast (~> 2.4.0)
82
+ powerpack (0.1.2)
84
83
  rack (1.6.5)
85
84
  rack-test (0.6.3)
86
85
  rack (>= 1.0)
@@ -108,6 +107,7 @@ GEM
108
107
  activesupport (= 4.2.7.1)
109
108
  rake (>= 0.8.7)
110
109
  thor (>= 0.18.1, < 2.0)
110
+ rainbow (3.0.0)
111
111
  rake (12.0.0)
112
112
  rspec (3.4.0)
113
113
  rspec-core (~> 3.4.0)
@@ -122,11 +122,15 @@ GEM
122
122
  diff-lcs (>= 1.2.0, < 2.0)
123
123
  rspec-support (~> 3.4.0)
124
124
  rspec-support (3.4.1)
125
- simplecov (0.12.0)
126
- docile (~> 1.1.0)
127
- json (>= 1.8, < 3)
128
- simplecov-html (~> 0.10.0)
129
- simplecov-html (0.10.0)
125
+ rubocop (0.57.2)
126
+ jaro_winkler (~> 1.5.1)
127
+ parallel (~> 1.10)
128
+ parser (>= 2.5)
129
+ powerpack (~> 0.1)
130
+ rainbow (>= 2.2.2, < 4.0)
131
+ ruby-progressbar (~> 1.7)
132
+ unicode-display_width (~> 1.0, >= 1.0.1)
133
+ ruby-progressbar (1.9.0)
130
134
  sprockets (3.7.1)
131
135
  concurrent-ruby (~> 1.0)
132
136
  rack (> 1, < 3)
@@ -135,25 +139,23 @@ GEM
135
139
  activesupport (>= 4.0)
136
140
  sprockets (>= 3.0.0)
137
141
  sqlite3 (1.3.10)
138
- term-ansicolor (1.4.0)
139
- tins (~> 1.0)
140
142
  thor (0.19.4)
141
143
  thread_safe (0.3.5)
142
- tins (1.13.0)
143
144
  tzinfo (1.2.2)
144
145
  thread_safe (~> 0.1)
146
+ unicode-display_width (1.4.0)
145
147
 
146
148
  PLATFORMS
147
149
  ruby
148
150
 
149
151
  DEPENDENCIES
150
- coveralls (~> 0.8.2)
151
152
  exception_notification_sns!
152
153
  factory_girl (= 4.5)
153
154
  mocha (~> 0.13.0)
154
155
  rails (>= 4.0.0, < 6)
155
156
  rspec (= 3.4.0)
157
+ rubocop (~> 0.52)
156
158
  sqlite3 (= 1.3.10)
157
159
 
158
160
  BUNDLED WITH
159
- 1.13.7
161
+ 1.16.2
data/README.md CHANGED
@@ -25,7 +25,8 @@ Rails.application.config.middleware.use ExceptionNotification::Rack,
25
25
  access_key_id: 'AWS_ACCESS_KEY_ID',
26
26
  secret_access_key: 'AWS_SECRET_ACCESS_KEY',
27
27
  region: 'AWS_REGION',
28
- topic_arn: 'AWS_SNS_TOPIC_ARN'
28
+ topic_arn: 'AWS_SNS_TOPIC_ARN',
29
+ subject: 'MESSAGE SUBJECT'
29
30
  }
30
31
  ```
31
32
 
@@ -55,14 +56,16 @@ AWS region
55
56
 
56
57
  AWS SNS topic arn
57
58
 
58
- ## Extras
59
-
60
- For more information about exception_notification gem on which this gem was built, visit [exception_notification](https://github.com/smartinez87/exception_notification).
59
+ ##### subject
61
60
 
62
- ## License
61
+ *String*
63
62
 
64
- Copyright (c) 2017 Matej Minažek, released under the [MIT license](http://www.opensource.org/licenses/MIT).
63
+ Notification subject
65
64
 
65
+ ## Extras
66
66
 
67
+ For more information about exception_notification gem on which this gem was built, visit [exception_notification](https://github.com/smartinez87/exception_notification).
67
68
 
69
+ ## License
68
70
 
71
+ Copyright (c) 2019 Matej Minažek, released under the [MIT license](http://www.opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -5,11 +5,11 @@ require 'appraisal'
5
5
 
6
6
  require 'rake/testtask'
7
7
 
8
- task :default => [:test]
8
+ task default: [:test]
9
9
 
10
10
  Rake::TestTask.new(:test) do |t|
11
11
  t.libs << 'lib'
12
12
  t.libs << 'test'
13
13
  t.pattern = 'test/**/*_test.rb'
14
14
  t.verbose = true
15
- end
15
+ end
@@ -1,11 +1,12 @@
1
- # encoding: UTF-8
2
1
  Gem::Specification.new do |s|
3
2
  s.platform = Gem::Platform::RUBY
4
3
  s.name = 'exception_notification_sns'
5
- s.version = '0.1.3'
4
+ s.version = '0.1.4'
6
5
  s.summary = 'exception_notification extension for aws sns v1'
7
- s.description = 'exception_notification_sns gem is used for sending application extensions to aws sns. It extends exception_notification gem, uses aws-sdk-v1 gem to push exception notificatons to amazon sns'
8
- s.required_ruby_version = '>= 2.2.0'
6
+ s.description = 'exception_notification_sns gem is used for sending application extensions to aws sns.
7
+ It extends exception_notification gem, uses aws-sdk-v1 gem to push exception notificatons
8
+ to amazon sns'
9
+ s.required_ruby_version = '>= 2.2.2'
9
10
 
10
11
  s.author = 'Matej Minažek'
11
12
  s.email = 'matej.minazek@ingemark.com'
@@ -15,14 +16,13 @@ Gem::Specification.new do |s|
15
16
  s.files = `git ls-files`.split("\n")
16
17
  s.require_path = 'lib'
17
18
 
18
- s.add_runtime_dependency 'exception_notification', '4.2.1'
19
19
  s.add_runtime_dependency 'aws-sdk-v1', '>= 1', '< 3'
20
+ s.add_runtime_dependency 'exception_notification', '4.2.1'
20
21
 
21
- s.add_development_dependency 'rails', '>= 4.0.0', '< 6'
22
22
  s.add_development_dependency 'factory_girl', '4.5'
23
- s.add_development_dependency 'rspec', '3.4.0'
24
23
  s.add_development_dependency 'mocha', '~> 0.13.0'
24
+ s.add_development_dependency 'rails', '>= 4.0.0', '< 6'
25
+ s.add_development_dependency 'rspec', '3.4.0'
26
+ s.add_development_dependency 'rubocop', '~> 0.52'
25
27
  s.add_development_dependency 'sqlite3', '1.3.10'
26
- s.add_development_dependency 'coveralls', '~> 0.8.2'
27
-
28
28
  end
@@ -1,4 +1,4 @@
1
1
  require 'exception_notification'
2
2
  require 'aws-sdk-v1'
3
3
 
4
- require 'exception_notifier/sns_notifier'
4
+ require 'exception_notifier/sns_notifier'
@@ -6,16 +6,20 @@ module ExceptionNotifier
6
6
 
7
7
  def initialize(options)
8
8
  super
9
+
9
10
  access_key_id = options.delete(:access_key_id)
10
11
  secret_access_key = options.delete(:secret_access_key)
11
12
  region = options.delete(:region)
12
13
 
13
- @sns_client = AWS::SNS::Client.new(access_key_id: access_key_id, secret_access_key: secret_access_key, region: region)
14
+ @sns_client = AWS::SNS::Client.new(access_key_id: access_key_id,
15
+ secret_access_key: secret_access_key,
16
+ region: region)
14
17
  @topic_arn = options.delete(:topic_arn)
18
+ @subject = options.delete(:subject)
15
19
  end
16
20
 
17
- def call(exception, options={})
18
- return if !active?
21
+ def call(exception, options = {})
22
+ return unless active?
19
23
 
20
24
  env = options[:env] || {}
21
25
  @options = options
@@ -24,10 +28,7 @@ module ExceptionNotifier
24
28
  @kontroller = env['action_controller.instance']
25
29
  @request = ::ActionDispatch::Request.new(env) if @kontroller
26
30
 
27
- @sns_client.publish({
28
- topic_arn: @topic_arn,
29
- message: compose_message.to_json
30
- })
31
+ @sns_client.publish(topic_arn: @topic_arn, message: compose_message.to_json, subject: @subject)
31
32
  end
32
33
 
33
34
  def active?
@@ -42,21 +43,22 @@ module ExceptionNotifier
42
43
 
43
44
  def compose_message
44
45
  message = {
45
- info: compose_info,
46
- backtrace: @backtrace.to_s,
47
- default: compose_info
46
+ info: compose_info,
47
+ backtrace: @backtrace.to_s,
48
+ default: compose_info
48
49
  }
49
-
50
- message[:request] = {
51
- url: @request.url,
52
- method: @request.request_method,
53
- remote_ip: @request.remote_ip,
54
- parameters: @request.filtered_parameters.inspect
55
- } if @request
50
+ message[:request] = request_data if @request
56
51
 
57
52
  message
58
53
  end
54
+
55
+ def request_data
56
+ {
57
+ url: @request.url,
58
+ method: @request.request_method,
59
+ remote_ip: @request.remote_ip,
60
+ parameters: @request.filtered_parameters.inspect
61
+ }
62
+ end
59
63
  end
60
64
  end
61
-
62
-
@@ -1,30 +1,30 @@
1
1
  require 'spec_helper'
2
2
  require 'exception_notifier/sns_notifier'
3
3
 
4
- describe 'SNS Notifer' do
5
-
6
- before(:each) do
7
- options = {
8
- access_key_id: 'acces_key',
9
- secret_access_key: 'secret_access_key',
10
- topic_arn: 'topic_arn',
11
- region: 'region'
4
+ describe 'SNS Notifier' do
5
+ let(:options) do
6
+ {
7
+ access_key_id: 'acces_key',
8
+ secret_access_key: 'secret_access_key',
9
+ topic_arn: 'topic_arn',
10
+ region: 'region',
11
+ subject: 'notification_subject'
12
12
  }
13
-
14
- @sns = ExceptionNotifier::SnsNotifier.new(options)
15
13
  end
16
14
 
15
+ subject { ExceptionNotifier::SnsNotifier.new(options) }
16
+
17
17
  it 'should send exception notification to sns if properly configured' do
18
- @sns.call(fake_exception)
18
+ subject.call(fake_exception)
19
19
  end
20
20
 
21
- it 'should compose correct message and subject' do
22
- @sns.call(fake_exception)
21
+ it 'should compose correct message' do
22
+ subject.call(fake_exception)
23
23
 
24
- composed_info = @sns.compose_info
24
+ composed_info = subject.compose_info
25
25
  expect(composed_info).to eq fake_info
26
26
 
27
- composed_message = @sns.compose_message
27
+ composed_message = subject.compose_message
28
28
  expect(composed_message[:backtrace]).not_to be_nil
29
29
  expect(composed_message[:default]).not_to be_nil
30
30
  end
@@ -33,8 +33,8 @@ describe 'SNS Notifer' do
33
33
 
34
34
  def fake_message
35
35
  {
36
- backtrace: fake_exception.backtrace.to_s,
37
- default: fake_subject
36
+ backtrace: fake_exception.backtrace.to_s,
37
+ default: fake_subject
38
38
  }
39
39
  end
40
40
 
@@ -43,14 +43,9 @@ describe 'SNS Notifer' do
43
43
  info << " #{fake_exception.message.inspect}"
44
44
  end
45
45
 
46
-
47
46
  def fake_exception
48
- begin
49
- 5/0
50
- rescue Exception => e
51
- e
52
- end
47
+ 5 / 0
48
+ rescue StandardError => e
49
+ e
53
50
  end
54
-
55
-
56
- end
51
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # load lib in LOAD_PATH
2
- $:<< File.join(File.dirname(__FILE__), '../lib')
2
+ $LOAD_PATH << File.join(File.dirname(__FILE__), '../lib')
3
3
 
4
4
  # Configure Rails Environment
5
- ENV["RAILS_ENV"] = "test"
5
+ ENV['RAILS_ENV'] = 'test'
6
6
 
7
7
  require 'rspec'
8
8
 
@@ -14,5 +14,4 @@ ExceptionNotifier.testing_mode!
14
14
  AWS.stub!
15
15
 
16
16
  RSpec.configure do |config|
17
-
18
- end
17
+ end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exception_notification_sns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matej Minažek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-19 00:00:00.000000000 Z
11
+ date: 2019-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: exception_notification
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '='
18
- - !ruby/object:Gem::Version
19
- version: 4.2.1
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '='
25
- - !ruby/object:Gem::Version
26
- version: 4.2.1
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: aws-sdk-v1
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -45,25 +31,19 @@ dependencies:
45
31
  - !ruby/object:Gem::Version
46
32
  version: '3'
47
33
  - !ruby/object:Gem::Dependency
48
- name: rails
34
+ name: exception_notification
49
35
  requirement: !ruby/object:Gem::Requirement
50
36
  requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 4.0.0
54
- - - "<"
37
+ - - '='
55
38
  - !ruby/object:Gem::Version
56
- version: '6'
57
- type: :development
39
+ version: 4.2.1
40
+ type: :runtime
58
41
  prerelease: false
59
42
  version_requirements: !ruby/object:Gem::Requirement
60
43
  requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 4.0.0
64
- - - "<"
44
+ - - '='
65
45
  - !ruby/object:Gem::Version
66
- version: '6'
46
+ version: 4.2.1
67
47
  - !ruby/object:Gem::Dependency
68
48
  name: factory_girl
69
49
  requirement: !ruby/object:Gem::Requirement
@@ -79,72 +59,94 @@ dependencies:
79
59
  - !ruby/object:Gem::Version
80
60
  version: '4.5'
81
61
  - !ruby/object:Gem::Dependency
82
- name: rspec
62
+ name: mocha
83
63
  requirement: !ruby/object:Gem::Requirement
84
64
  requirements:
85
- - - '='
65
+ - - "~>"
86
66
  - !ruby/object:Gem::Version
87
- version: 3.4.0
67
+ version: 0.13.0
88
68
  type: :development
89
69
  prerelease: false
90
70
  version_requirements: !ruby/object:Gem::Requirement
91
71
  requirements:
92
- - - '='
72
+ - - "~>"
93
73
  - !ruby/object:Gem::Version
94
- version: 3.4.0
74
+ version: 0.13.0
95
75
  - !ruby/object:Gem::Dependency
96
- name: mocha
76
+ name: rails
97
77
  requirement: !ruby/object:Gem::Requirement
98
78
  requirements:
99
- - - "~>"
79
+ - - ">="
100
80
  - !ruby/object:Gem::Version
101
- version: 0.13.0
81
+ version: 4.0.0
82
+ - - "<"
83
+ - !ruby/object:Gem::Version
84
+ version: '6'
102
85
  type: :development
103
86
  prerelease: false
104
87
  version_requirements: !ruby/object:Gem::Requirement
105
88
  requirements:
106
- - - "~>"
89
+ - - ">="
107
90
  - !ruby/object:Gem::Version
108
- version: 0.13.0
91
+ version: 4.0.0
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: '6'
109
95
  - !ruby/object:Gem::Dependency
110
- name: sqlite3
96
+ name: rspec
111
97
  requirement: !ruby/object:Gem::Requirement
112
98
  requirements:
113
99
  - - '='
114
100
  - !ruby/object:Gem::Version
115
- version: 1.3.10
101
+ version: 3.4.0
116
102
  type: :development
117
103
  prerelease: false
118
104
  version_requirements: !ruby/object:Gem::Requirement
119
105
  requirements:
120
106
  - - '='
121
107
  - !ruby/object:Gem::Version
122
- version: 1.3.10
108
+ version: 3.4.0
123
109
  - !ruby/object:Gem::Dependency
124
- name: coveralls
110
+ name: rubocop
125
111
  requirement: !ruby/object:Gem::Requirement
126
112
  requirements:
127
113
  - - "~>"
128
114
  - !ruby/object:Gem::Version
129
- version: 0.8.2
115
+ version: '0.52'
130
116
  type: :development
131
117
  prerelease: false
132
118
  version_requirements: !ruby/object:Gem::Requirement
133
119
  requirements:
134
120
  - - "~>"
135
121
  - !ruby/object:Gem::Version
136
- version: 0.8.2
137
- description: exception_notification_sns gem is used for sending application extensions
138
- to aws sns. It extends exception_notification gem, uses aws-sdk-v1 gem to push exception
139
- notificatons to amazon sns
122
+ version: '0.52'
123
+ - !ruby/object:Gem::Dependency
124
+ name: sqlite3
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - '='
128
+ - !ruby/object:Gem::Version
129
+ version: 1.3.10
130
+ type: :development
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '='
135
+ - !ruby/object:Gem::Version
136
+ version: 1.3.10
137
+ description: |-
138
+ exception_notification_sns gem is used for sending application extensions to aws sns.
139
+ It extends exception_notification gem, uses aws-sdk-v1 gem to push exception notificatons
140
+ to amazon sns
140
141
  email: matej.minazek@ingemark.com
141
142
  executables: []
142
143
  extensions: []
143
144
  extra_rdoc_files: []
144
145
  files:
145
146
  - ".gitignore"
147
+ - ".rubocop.yml"
146
148
  - ".ruby-gemset"
147
- - ".ruby-verson"
149
+ - ".ruby-version"
148
150
  - Gemfile
149
151
  - Gemfile.lock
150
152
  - LICENSE
@@ -167,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
167
169
  requirements:
168
170
  - - ">="
169
171
  - !ruby/object:Gem::Version
170
- version: 2.2.0
172
+ version: 2.2.2
171
173
  required_rubygems_version: !ruby/object:Gem::Requirement
172
174
  requirements:
173
175
  - - ">="
data/.ruby-verson DELETED
@@ -1 +0,0 @@
1
- 2.2.0