sweet_notifications 0.2.0 → 0.2.1
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 +4 -4
- data/.rubocop.yml +10 -0
- data/.travis.yml +12 -2
- data/Appraisals +10 -0
- data/CHANGELOG.md +7 -0
- data/README.md +3 -2
- data/gemfiles/rails_4.2.gemfile +7 -0
- data/gemfiles/rails_head.gemfile +9 -0
- data/lib/sweet_notifications/controller_runtime.rb +2 -1
- data/lib/sweet_notifications/log_subscriber.rb +2 -1
- data/lib/sweet_notifications/version.rb +1 -1
- data/sweet_notifications.gemspec +6 -6
- data/test/controller_runtime_test.rb +17 -7
- data/test/log_subscriber_test.rb +1 -2
- data/test/sweet_notifications_test.rb +10 -5
- data/test/test_helper.rb +7 -2
- metadata +36 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 313330fe1e88bea48a41438d6a59bdd87d84a486
|
4
|
+
data.tar.gz: c50418d1bff9d94602e99760c7f88758556362ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb9591a334961e3fa5ee4c0a41f5e9992f698a7acb40ea0c3d1806df365d886635325ed0789f765d32da3f211d0940f3da6ad4569416151b87630e03de47ca66
|
7
|
+
data.tar.gz: 97b08cdc255d9162edc4f0650129bd5d5d0255d1ac346229cfc73d567d751bcd623c3e10be2414e10dab40187c90ee0a3173f6b85ca8319bf3e984b2eb2ea853
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
AllCops:
|
2
|
+
RunRailsCops: true
|
2
3
|
Exclude:
|
3
4
|
- sweet_notifications.gemspec
|
4
5
|
- lib/sweet_notifications/version.rb
|
6
|
+
- "vendor/**/*"
|
7
|
+
- "gemfiles/vendor/**/*"
|
5
8
|
|
6
9
|
ClassAndModuleChildren:
|
7
10
|
Exclude:
|
@@ -17,3 +20,10 @@ MethodLength:
|
|
17
20
|
|
18
21
|
ModuleFunction:
|
19
22
|
Enabled: false
|
23
|
+
|
24
|
+
Metrics/AbcSize:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Style/StringLiterals:
|
28
|
+
Enabled: true
|
29
|
+
EnforcedStyle: single_quotes
|
data/.travis.yml
CHANGED
@@ -1,12 +1,22 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
3
|
+
cache: bundler
|
2
4
|
gemfile:
|
3
5
|
- gemfiles/rails_4.0.gemfile
|
4
6
|
- gemfiles/rails_4.1.gemfile
|
7
|
+
- gemfiles/rails_4.2.gemfile
|
5
8
|
rvm:
|
6
9
|
- 2.0.0
|
7
|
-
- 2.1.
|
10
|
+
- 2.1.7
|
11
|
+
- 2.2.3
|
12
|
+
- jruby-9.0.1.0
|
13
|
+
- rbx-2.5
|
8
14
|
matrix:
|
9
15
|
include:
|
10
16
|
- rvm: jruby
|
11
|
-
gemfile: gemfiles/rails_4.
|
17
|
+
gemfile: gemfiles/rails_4.2.gemfile
|
12
18
|
env: JRUBY_OPTS="--2.0"
|
19
|
+
- rvm: 2.2.3
|
20
|
+
gemfile: gemfiles/rails_head.gemfile
|
21
|
+
allow_failures:
|
22
|
+
- gemfile: gemfiles/rails_head.gemfile
|
data/Appraisals
CHANGED
@@ -5,3 +5,13 @@ end
|
|
5
5
|
appraise "rails-4.1" do
|
6
6
|
gem 'rails', '~> 4.1.0'
|
7
7
|
end
|
8
|
+
|
9
|
+
appraise "rails-4.2" do
|
10
|
+
gem 'rails', '~> 4.2.0'
|
11
|
+
end
|
12
|
+
|
13
|
+
appraise "rails-head" do
|
14
|
+
gem 'rails', github: 'rails'
|
15
|
+
gem 'arel', github: 'rails/arel'
|
16
|
+
gem 'rack', github: 'rack'
|
17
|
+
end
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -3,7 +3,8 @@
|
|
3
3
|
Syntactic sugar for ActiveSupport::LogSubscriber for easy instrumentation and
|
4
4
|
logging from third-party libraries.
|
5
5
|
|
6
|
-
This gem
|
6
|
+
This gem requires Ruby 2.0 or newer. Compatible versions of JRuby and Rubinius
|
7
|
+
are also supported.
|
7
8
|
|
8
9
|
## Installation
|
9
10
|
|
@@ -43,7 +44,7 @@ Then, subscribe to these notifications using SweetNotifications in an initialize
|
|
43
44
|
SweetNotifications.subscribe :candies do
|
44
45
|
color ActiveSupport::LogSubscriber::GREEN
|
45
46
|
event :list, runtime: true do |event|
|
46
|
-
|
47
|
+
next unless logger.debug? # Use next in blocks
|
47
48
|
debug message(event, 'Candy', "listing candies: #{event.payload[:candies]}")
|
48
49
|
end
|
49
50
|
end
|
@@ -39,7 +39,8 @@ module SweetNotifications
|
|
39
39
|
|
40
40
|
const_set(:ClassMethods, Module.new do
|
41
41
|
define_method :log_process_action do |payload|
|
42
|
-
messages
|
42
|
+
messages = super(payload)
|
43
|
+
runtime = payload[runtime_attr]
|
43
44
|
if runtime && runtime != 0
|
44
45
|
messages << format("#{name}: %.1fms", runtime.to_f)
|
45
46
|
end
|
data/sweet_notifications.gemspec
CHANGED
@@ -20,15 +20,15 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.required_ruby_version = '~> 2.0'
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "activesupport", "
|
23
|
+
spec.add_runtime_dependency "activesupport", ">= 4.0", "< 6"
|
24
24
|
spec.add_runtime_dependency "request_store", "~> 1.0"
|
25
|
-
spec.add_runtime_dependency "railties", "
|
26
|
-
spec.add_development_dependency "actionpack", "
|
25
|
+
spec.add_runtime_dependency "railties", ">= 4.0", "< 6"
|
26
|
+
spec.add_development_dependency "actionpack", ">= 4.0", "< 6"
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.6"
|
28
28
|
spec.add_development_dependency "minitest"
|
29
29
|
spec.add_development_dependency "rake", "~> 10.3"
|
30
30
|
spec.add_development_dependency "yard", "~> 0.8.7"
|
31
|
-
spec.add_development_dependency "appraisal", "~>
|
32
|
-
spec.add_development_dependency "simplecov", "~> 0.
|
33
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
31
|
+
spec.add_development_dependency "appraisal", "~> 2.0"
|
32
|
+
spec.add_development_dependency "simplecov", "~> 0.10.0"
|
33
|
+
spec.add_development_dependency "rubocop", "~> 0.34.0"
|
34
34
|
end
|
@@ -11,18 +11,28 @@ describe SweetNotifications::ControllerRuntime do
|
|
11
11
|
class LogSubscribersController < ActionController::Base
|
12
12
|
def create
|
13
13
|
TestLogSubscriber.runtime += 100
|
14
|
-
|
14
|
+
render_text '100'
|
15
15
|
end
|
16
16
|
|
17
17
|
def show
|
18
|
-
|
18
|
+
render_text '0'
|
19
19
|
end
|
20
20
|
|
21
21
|
def destroy
|
22
22
|
TestLogSubscriber.runtime += 50
|
23
|
-
|
23
|
+
render_text 'OK'
|
24
24
|
TestLogSubscriber.runtime += 5
|
25
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def render_text(text)
|
30
|
+
if Gem.loaded_specs['rails'].version < Gem::Version.new('4.2')
|
31
|
+
render text: text
|
32
|
+
else
|
33
|
+
render plain: text
|
34
|
+
end
|
35
|
+
end
|
26
36
|
end
|
27
37
|
|
28
38
|
include ActiveSupport::LogSubscriber::TestHelper
|
@@ -53,13 +63,13 @@ describe SweetNotifications::ControllerRuntime do
|
|
53
63
|
|
54
64
|
describe 'runtime logging' do
|
55
65
|
it 'does not append runtime when it is 0' do
|
56
|
-
get :show, id: 1
|
66
|
+
get :show, params: { id: 1 }
|
57
67
|
wait
|
58
68
|
assert_no_match(/Test:/, @logger.logged(:info)[2])
|
59
69
|
end
|
60
70
|
|
61
71
|
it 'appends non-zero runtime' do
|
62
|
-
post :create, test: 1
|
72
|
+
post :create, params: { test: 1 }
|
63
73
|
wait
|
64
74
|
expected_message = /\(Views: [\d.]+ms \| Test: 100.0ms\)/
|
65
75
|
assert_match(expected_message, @logger.logged(:info)[2])
|
@@ -67,14 +77,14 @@ describe SweetNotifications::ControllerRuntime do
|
|
67
77
|
|
68
78
|
it 'resets runtime before request' do
|
69
79
|
TestLogSubscriber.runtime += 1000
|
70
|
-
post :create, test: 1
|
80
|
+
post :create, params: { test: 1 }
|
71
81
|
wait
|
72
82
|
expected_message = /\(Views: [\d.]+ms \| Test: 100.0ms\)/
|
73
83
|
assert_match(expected_message, @logger.logged(:info)[2])
|
74
84
|
end
|
75
85
|
|
76
86
|
it 'includes runtime after render' do
|
77
|
-
post :destroy, id: 1
|
87
|
+
post :destroy, params: { id: 1 }
|
78
88
|
wait
|
79
89
|
expected_message = /\(Views: [\d.]+ms \| Test: 55.0ms\)/
|
80
90
|
assert_match(expected_message, @logger.logged(:info)[2])
|
data/test/log_subscriber_test.rb
CHANGED
@@ -5,7 +5,7 @@ describe SweetNotifications::LogSubscriber do
|
|
5
5
|
|
6
6
|
def event(name: 'Test', duration: 1, transaction_id: SecureRandom.hex,
|
7
7
|
payload: {})
|
8
|
-
now = Time.
|
8
|
+
now = Time.current
|
9
9
|
ActiveSupport::Notifications::Event.new(name,
|
10
10
|
now,
|
11
11
|
now + duration,
|
@@ -144,6 +144,5 @@ describe SweetNotifications::LogSubscriber do
|
|
144
144
|
message = subject.message(event, 'Label', 'body')
|
145
145
|
assert !message.include?(ActiveSupport::LogSubscriber::CYAN)
|
146
146
|
end
|
147
|
-
|
148
147
|
end
|
149
148
|
end
|
@@ -5,7 +5,12 @@ class SweetNotificationsController < ActionController::Base
|
|
5
5
|
ActiveSupport::Notifications.instrument 'test.controller' do
|
6
6
|
'ok'
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
|
+
if Gem.loaded_specs['rails'].version < Gem::Version.new('4.2')
|
10
|
+
render text: 'ok'
|
11
|
+
else
|
12
|
+
render plain: 'ok'
|
13
|
+
end
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
@@ -15,7 +20,7 @@ describe SweetNotifications do
|
|
15
20
|
|
16
21
|
describe '.subscribe' do
|
17
22
|
it 'creates a railtie' do
|
18
|
-
railtie,
|
23
|
+
railtie, = SweetNotifications.subscribe 'railtie_create' do
|
19
24
|
end
|
20
25
|
assert railtie < Rails::Railtie
|
21
26
|
end
|
@@ -29,7 +34,7 @@ describe SweetNotifications do
|
|
29
34
|
end
|
30
35
|
|
31
36
|
it 'binds log subscriber to notifications' do
|
32
|
-
railtie,
|
37
|
+
railtie, = SweetNotifications.subscribe 'sweet' do
|
33
38
|
event :test do |event|
|
34
39
|
info message(event, 'Test', 'blah blah')
|
35
40
|
end
|
@@ -49,7 +54,7 @@ describe SweetNotifications do
|
|
49
54
|
end
|
50
55
|
end
|
51
56
|
|
52
|
-
railtie,
|
57
|
+
railtie, = SweetNotifications.subscribe 'sweet' do
|
53
58
|
event :direct do |event|
|
54
59
|
info message(event, 'Direct', 'foo bar')
|
55
60
|
end
|
@@ -68,7 +73,7 @@ describe SweetNotifications do
|
|
68
73
|
end
|
69
74
|
|
70
75
|
it 'logs to Rails logger' do
|
71
|
-
railtie,
|
76
|
+
railtie, = SweetNotifications.subscribe 'controller', label: 'Label' do
|
72
77
|
event :test, runtime: true do |event|
|
73
78
|
info message(event, 'Test', 'logging')
|
74
79
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,7 +3,7 @@ require 'simplecov'
|
|
3
3
|
|
4
4
|
SimpleCov.start do
|
5
5
|
add_filter 'test'
|
6
|
-
command_name '
|
6
|
+
command_name 'Minitest'
|
7
7
|
end
|
8
8
|
|
9
9
|
require 'minitest/autorun'
|
@@ -13,11 +13,12 @@ require 'sweet_notifications'
|
|
13
13
|
require 'active_support/test_case'
|
14
14
|
require 'action_controller'
|
15
15
|
require 'active_support/log_subscriber/test_helper'
|
16
|
+
require 'active_support/core_ext/string'
|
16
17
|
require 'securerandom'
|
17
18
|
|
18
19
|
class ActiveSupport::TestCase
|
19
20
|
class << self
|
20
|
-
remove_method :describe
|
21
|
+
remove_method :describe if method_defined? :describe
|
21
22
|
end
|
22
23
|
|
23
24
|
extend MiniTest::Spec::DSL
|
@@ -26,6 +27,10 @@ class ActiveSupport::TestCase
|
|
26
27
|
register_spec_type(self)
|
27
28
|
end
|
28
29
|
|
30
|
+
if ActiveSupport::TestCase.respond_to?(:test_order=)
|
31
|
+
ActiveSupport::TestCase.test_order = :random
|
32
|
+
end
|
33
|
+
|
29
34
|
module ActionController
|
30
35
|
TestRoutes = ActionDispatch::Routing::RouteSet.new
|
31
36
|
TestRoutes.draw do
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sweet_notifications
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ville Lautanala
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '6'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '4.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '6'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: request_store
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,30 +48,42 @@ dependencies:
|
|
42
48
|
name: railties
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '4.0'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '6'
|
48
57
|
type: :runtime
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
|
-
- - "
|
61
|
+
- - ">="
|
53
62
|
- !ruby/object:Gem::Version
|
54
63
|
version: '4.0'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '6'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: actionpack
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - ">="
|
60
72
|
- !ruby/object:Gem::Version
|
61
73
|
version: '4.0'
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '6'
|
62
77
|
type: :development
|
63
78
|
prerelease: false
|
64
79
|
version_requirements: !ruby/object:Gem::Requirement
|
65
80
|
requirements:
|
66
|
-
- - "
|
81
|
+
- - ">="
|
67
82
|
- !ruby/object:Gem::Version
|
68
83
|
version: '4.0'
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '6'
|
69
87
|
- !ruby/object:Gem::Dependency
|
70
88
|
name: bundler
|
71
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,42 +146,42 @@ dependencies:
|
|
128
146
|
requirements:
|
129
147
|
- - "~>"
|
130
148
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
149
|
+
version: '2.0'
|
132
150
|
type: :development
|
133
151
|
prerelease: false
|
134
152
|
version_requirements: !ruby/object:Gem::Requirement
|
135
153
|
requirements:
|
136
154
|
- - "~>"
|
137
155
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
156
|
+
version: '2.0'
|
139
157
|
- !ruby/object:Gem::Dependency
|
140
158
|
name: simplecov
|
141
159
|
requirement: !ruby/object:Gem::Requirement
|
142
160
|
requirements:
|
143
161
|
- - "~>"
|
144
162
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
163
|
+
version: 0.10.0
|
146
164
|
type: :development
|
147
165
|
prerelease: false
|
148
166
|
version_requirements: !ruby/object:Gem::Requirement
|
149
167
|
requirements:
|
150
168
|
- - "~>"
|
151
169
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
170
|
+
version: 0.10.0
|
153
171
|
- !ruby/object:Gem::Dependency
|
154
172
|
name: rubocop
|
155
173
|
requirement: !ruby/object:Gem::Requirement
|
156
174
|
requirements:
|
157
175
|
- - "~>"
|
158
176
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
177
|
+
version: 0.34.0
|
160
178
|
type: :development
|
161
179
|
prerelease: false
|
162
180
|
version_requirements: !ruby/object:Gem::Requirement
|
163
181
|
requirements:
|
164
182
|
- - "~>"
|
165
183
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
184
|
+
version: 0.34.0
|
167
185
|
description: Syntactic sugar for ActiveSupport::LogSubscriber for easy instrumentation
|
168
186
|
and logging from third-party libraries.
|
169
187
|
email:
|
@@ -176,6 +194,7 @@ files:
|
|
176
194
|
- ".rubocop.yml"
|
177
195
|
- ".travis.yml"
|
178
196
|
- Appraisals
|
197
|
+
- CHANGELOG.md
|
179
198
|
- CONTRIBUTING.md
|
180
199
|
- Gemfile
|
181
200
|
- LICENSE.txt
|
@@ -183,6 +202,8 @@ files:
|
|
183
202
|
- Rakefile
|
184
203
|
- gemfiles/rails_4.0.gemfile
|
185
204
|
- gemfiles/rails_4.1.gemfile
|
205
|
+
- gemfiles/rails_4.2.gemfile
|
206
|
+
- gemfiles/rails_head.gemfile
|
186
207
|
- lib/sweet_notifications.rb
|
187
208
|
- lib/sweet_notifications/controller_runtime.rb
|
188
209
|
- lib/sweet_notifications/log_subscriber.rb
|
@@ -214,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
235
|
version: '0'
|
215
236
|
requirements: []
|
216
237
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
238
|
+
rubygems_version: 2.4.5.1
|
218
239
|
signing_key:
|
219
240
|
specification_version: 4
|
220
241
|
summary: Syntactic sugar for ActiveSupport::LogSubscriber.
|