exception_notification_sns 0.1.3 → 0.1.4

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.
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