logged 0.0.3 → 0.1.0

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: e1310ea50fa310d62926eaae95e14a43d10a6ef1
4
- data.tar.gz: d0534cb21b89cb1ed6541acf6900f80b3ad2a82c
3
+ metadata.gz: 9a294551c9c1d8f611c79fa771132e57b586db5c
4
+ data.tar.gz: 82cad862705898fe8429960241e81b33b9394f04
5
5
  SHA512:
6
- metadata.gz: 3cd4a66ffaa38f73b68f58118945efd6d1e8b006b0094780ccb1b0951c74e2175def1fa6c95281aab9d041238be5ed1e92b2b0fc38a0282a0696a6e3bc257a2a
7
- data.tar.gz: 16a667469a85584ba4656e37441d21396535ee3da00945e0a6ca3bc2fbe5f16ac24b210f08f97860d60aedda7fbc045e6ce2e1d58c814630fd34e5c47e1d0e3a
6
+ metadata.gz: 8c071f8408c92af3756ba5249da9b6b35eb630f3aefb2cd338f13df6b1457b508280cf913538e407205c317e049f1fd063d47ef27c48d4190626d2365883f1e6
7
+ data.tar.gz: 680ed90a1eb0aa9da95580dafe52b347b62296f40dc313c496833e0d26b717dfd6fb8b83f1b871a87526fd3ba1f0b6f3bbc897f5dbafbf259bbcbd28e947f0e0
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /log/
10
11
  *.bundle
11
12
  *.so
12
13
  *.o
data/.rubocop.yml CHANGED
@@ -9,3 +9,6 @@ LineLength:
9
9
 
10
10
  Metrics/MethodLength:
11
11
  Max: 16
12
+
13
+ Metrics/CyclomaticComplexity:
14
+ Max: 8
data/.travis.yml CHANGED
@@ -1,3 +1,5 @@
1
+ sudo: false
2
+
1
3
  language: ruby
2
4
 
3
5
  rvm:
@@ -8,3 +10,6 @@ gemfile:
8
10
  - Gemfile
9
11
 
10
12
  script: bundle exec rake spec
13
+
14
+ before_install:
15
+ - gem install bundler -v '~> 1.9'
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Change Log
2
+
3
+ ## 0.1.0 (2015-08-13)
4
+ ### Changes
5
+ - Allow to disable/enable logger
data/README.md CHANGED
@@ -29,12 +29,11 @@ Or install it yourself as:
29
29
 
30
30
  ## Usage
31
31
 
32
- ### Overview
32
+ ### Configuration overview
33
33
 
34
34
  ```ruby
35
35
  # config/environments/*.rb or config/application.rb
36
36
  Rails.application.configure do
37
-
38
37
  # Enabling it
39
38
  config.logged.enabled = true
40
39
 
@@ -75,6 +74,28 @@ Rails.application.configure do
75
74
  end
76
75
  ```
77
76
 
77
+ ### Logging
78
+
79
+ Get wrapping logger:
80
+ ```ruby
81
+ logger = Logged.logger_by_component(:foo)
82
+ ```
83
+
84
+ Actual logging:
85
+ ```ruby
86
+ logger = Logged.logger_by_component(:foo)
87
+ logger.info('bar')
88
+ ```
89
+
90
+ Disable/Enable logger:
91
+ ```ruby
92
+ logger = Logged.logger_by_component(:foo)
93
+ logger.disable!
94
+ logger.info('bar') # doesn't get logged
95
+ logger.enable!
96
+ ```
97
+
98
+
78
99
  ### Lograge
79
100
 
80
101
  You can replicate the output of lograge by using the following configuration:
data/lib/logged/logger.rb CHANGED
@@ -12,9 +12,12 @@ module Logged
12
12
  @loggers = loggers
13
13
  @component = component
14
14
  @formatter = formatter
15
+ @enabled = true
15
16
  end
16
17
 
17
18
  def add(severity, message = nil, progname = nil)
19
+ return unless enabled?
20
+
18
21
  message = yield if block_given? && message.blank?
19
22
  message = progname if message.blank?
20
23
 
@@ -56,6 +59,22 @@ module Logged
56
59
 
57
60
  def <<(_msg); end
58
61
 
62
+ def enabled?
63
+ @enabled
64
+ end
65
+
66
+ def enabled=(enable)
67
+ @enabled = !!enable
68
+ end
69
+
70
+ def enable!
71
+ self.enabled = true
72
+ end
73
+
74
+ def disable!
75
+ self.enabled = false
76
+ end
77
+
59
78
  private
60
79
 
61
80
  def prepare_data(event, data, options)
@@ -14,8 +14,6 @@ module Logged
14
14
 
15
15
  request = ActionDispatch::Request.new(env)
16
16
 
17
- loggers = Logged.components.map { |c| Logged.logger_by_component(c) }.compact.uniq
18
-
19
17
  if loggers.length > 0
20
18
  loggers_tagged(loggers, request) { @app.call(env) }
21
19
  else
@@ -27,6 +25,10 @@ module Logged
27
25
 
28
26
  private
29
27
 
28
+ def loggers
29
+ @loggers ||= Logged.components.map { |c| Logged.logger_by_component(c) }.compact.uniq
30
+ end
31
+
30
32
  def loggers_tagged(loggers, request, &block)
31
33
  logger = loggers.shift
32
34
  tags = tags_for_component(logger.component, request)
@@ -0,0 +1,56 @@
1
+ module Logged
2
+ # Railtie for logged
3
+ module Subscriptions
4
+ # remove rails log subscriber by component name
5
+ def remove_rails_subscriber(component)
6
+ subscriber = rails_subscriber(component)
7
+
8
+ return unless subscriber
9
+
10
+ unsubscribe(component, subscriber)
11
+ end
12
+
13
+ # try to guess and get rails log subscriber by component name
14
+ def rails_subscriber(component)
15
+ class_name = "::#{component.to_s.camelize}::LogSubscriber"
16
+
17
+ return unless Object.const_defined?(class_name)
18
+
19
+ clazz = class_name.constantize
20
+
21
+ ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
22
+ return subscriber if subscriber.is_a?(clazz)
23
+ end
24
+
25
+ nil
26
+ end
27
+
28
+ # unsubscribe a subscriber from a component
29
+ def unsubscribe(component, subscriber)
30
+ events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' }
31
+
32
+ events.each do |event|
33
+ ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
34
+ if listener.instance_variable_get('@delegate') == subscriber
35
+ ActiveSupport::Notifications.unsubscribe listener
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ # register log subscriber with logged
42
+ def register(component, subscriber)
43
+ return if @subscribers[component].include?(subscriber)
44
+
45
+ @subscribers[component] << subscriber
46
+ end
47
+
48
+ # require log subscribers for rails frameworks
49
+ def require_rails_subscribers
50
+ require 'logged/log_subscriber/action_controller' if defined?(ActionController)
51
+ require 'logged/log_subscriber/action_view' if defined?(ActionView)
52
+ require 'logged/log_subscriber/active_record' if defined?(ActiveRecord)
53
+ require 'logged/log_subscriber/action_mailer' if defined?(ActionMailer)
54
+ end
55
+ end
56
+ end
@@ -1,4 +1,4 @@
1
1
  module Logged
2
2
  # Version
3
- VERSION = '0.0.3'
3
+ VERSION = '0.1.0'
4
4
  end
data/lib/logged.rb CHANGED
@@ -8,10 +8,12 @@ require 'logged/formatter/single_key'
8
8
  require 'logged/formatter/logstash'
9
9
  require 'logged/railtie'
10
10
  require 'logged/rack/logger'
11
+ require 'logged/subscriptions'
11
12
 
12
13
  # logged
13
14
  module Logged
14
15
  extend Logged::LevelConversion
16
+ extend Logged::Subscriptions
15
17
 
16
18
  # special keys which not represent a component
17
19
  CONFIG_KEYS = Configuration::DEFAULT_VALUES.keys + [:loggers, :disable_rails_logging]
@@ -19,7 +21,6 @@ module Logged
19
21
  mattr_accessor :app, :config
20
22
 
21
23
  class << self
22
-
23
24
  # setup logged
24
25
  def setup(app)
25
26
  self.app = app
@@ -27,13 +28,7 @@ module Logged
27
28
 
28
29
  app.config.middleware.insert_after ::Rails::Rack::Logger, Logged::Rack::Logger
29
30
 
30
- components.each do |component|
31
- remove_rails_subscriber(component) if config[component].disable_rails_logging
32
-
33
- next unless config[component].enabled
34
-
35
- enable_component(component)
36
- end
31
+ setup_components
37
32
  end
38
33
 
39
34
  # default log level
@@ -66,7 +61,7 @@ module Logged
66
61
 
67
62
  @component_loggers[key] = Logger.new(loggers, component, formatter)
68
63
  end
69
- alias :'[]' :logger_by_component
64
+ alias_method :'[]', :logger_by_component
70
65
 
71
66
  # loggers for component
72
67
  def loggers_for(component)
@@ -111,6 +106,8 @@ module Logged
111
106
  def enable_component(component)
112
107
  loggers = loggers_for(component)
113
108
 
109
+ return unless loggers.any?
110
+
114
111
  loggers.each do |logger, options|
115
112
  level = options[:level] || config[component].level || default_level
116
113
 
@@ -118,10 +115,8 @@ module Logged
118
115
  end
119
116
 
120
117
  # only attach subscribers with loggers
121
- if loggers.any?
122
- @subscribers[component].each do |subscriber|
123
- subscriber.attach_to(component)
124
- end
118
+ @subscribers[component].each do |subscriber|
119
+ subscriber.attach_to(component)
125
120
  end
126
121
  end
127
122
 
@@ -130,13 +125,9 @@ module Logged
130
125
  return false unless event
131
126
  return false unless conf.enabled
132
127
 
133
- if !event.is_a?(String) && conf.ignore.is_a?(Array)
134
- return true if conf.ignore.include?(event.name)
135
- end
128
+ return true if !event.is_a?(String) && conf.ignore.is_a?(Array) && conf.ignore.include?(event.name)
136
129
 
137
- if conf.custom_ignore.respond_to?(:call)
138
- return conf.custom_ignore.call(event)
139
- end
130
+ return conf.custom_ignore.call(event) if conf.custom_ignore.respond_to?(:call)
140
131
 
141
132
  false
142
133
  end
@@ -154,67 +145,30 @@ module Logged
154
145
  config.keys - CONFIG_KEYS
155
146
  end
156
147
 
157
- # remove rails log subscriber by component name
158
- def remove_rails_subscriber(component)
159
- subscriber = rails_subscriber(component)
160
-
161
- return unless subscriber
162
-
163
- unsubscribe(component, subscriber)
148
+ # rack request environment
149
+ def request_env
150
+ Thread.current[:logged_request_env]
164
151
  end
165
152
 
166
- # try to guess and get rails log subscriber by component name
167
- def rails_subscriber(component)
168
- class_name = "::#{component.to_s.camelize}::LogSubscriber"
169
-
170
- return unless Object.const_defined?(class_name)
171
-
172
- clazz = class_name.constantize
173
-
174
- ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
175
- return subscriber if subscriber.is_a?(clazz)
176
- end
153
+ private
177
154
 
178
- nil
179
- end
155
+ def setup_components
156
+ components.each do |component|
157
+ remove_rails_subscriber(component) if config[component].disable_rails_logging
180
158
 
181
- # unsubscribe a subscriber from a component
182
- def unsubscribe(component, subscriber)
183
- events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' }
159
+ next unless config[component].enabled
184
160
 
185
- events.each do |event|
186
- ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
187
- if listener.instance_variable_get('@delegate') == subscriber
188
- ActiveSupport::Notifications.unsubscribe listener
189
- end
190
- end
161
+ enable_component(component)
191
162
  end
192
163
  end
193
164
 
194
- # register log subscriber with logged
195
- def register(component, subscriber)
196
- return if @subscribers[component].include?(subscriber)
197
-
198
- @subscribers[component] << subscriber
199
- end
200
-
201
- def request_env
202
- Thread.current[:logged_request_env]
203
- end
204
-
205
- private
206
-
207
165
  def init
208
- @subscribers ||= Hash.new { |hash, key| hash[key] = [] }
166
+ @subscribers ||= Hash.new { |hash, key| hash[key] = [] }
167
+ @component_loggers = {}
209
168
 
210
- @component_loggers = {}
169
+ require_rails_subscribers
211
170
  end
212
171
  end
213
172
 
214
173
  init
215
174
  end
216
-
217
- require 'logged/log_subscriber/action_controller' if defined?(ActionController)
218
- require 'logged/log_subscriber/action_view' if defined?(ActionView)
219
- require 'logged/log_subscriber/active_record' if defined?(ActiveRecord)
220
- require 'logged/log_subscriber/action_mailer' if defined?(ActionMailer)
data/logged.gemspec CHANGED
@@ -19,9 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_development_dependency 'bundler', '~> 1.7'
23
- spec.add_development_dependency 'rake', '~> 10.0'
24
- spec.add_development_dependency 'rspec', '~> 3.1'
22
+ spec.add_development_dependency 'bundler', '~> 1.9'
23
+ spec.add_development_dependency 'rake', '~> 10.4'
24
+ spec.add_development_dependency 'rspec', '~> 3.2'
25
+ spec.add_development_dependency 'rails', rails_version
25
26
  spec.add_development_dependency 'actionpack', rails_version
26
27
  spec.add_development_dependency 'actionview', rails_version
27
28
  spec.add_development_dependency 'actionmailer', rails_version
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'logged'
3
+ require 'rails'
4
+
5
+ RSpec.describe 'Logged Configuration' do
6
+ before do
7
+ class Application < Rails::Application
8
+ config.eager_load = true
9
+
10
+ config.logged.enabled = true
11
+ end
12
+
13
+ Rails.application.initialize!
14
+ end
15
+
16
+ it 'enables logged' do
17
+ expect(Logged.config.enabled).to eq(true)
18
+ end
19
+ end
@@ -5,6 +5,10 @@ RSpec.describe Logged::Formatter::KeyValue do
5
5
  subject { described_class.new }
6
6
 
7
7
  it 'serializes data' do
8
- expect(subject.call(foo: 'bar')).to eq("foo='bar'")
8
+ expect(subject.call(foo: 'bar', bar: 3.123)).to eq("foo='bar' bar=3.12")
9
+ end
10
+
11
+ it 'ignores nil values' do
12
+ expect(subject.call(foo: 'bar', bar: nil)).to eq("foo='bar'")
9
13
  end
10
14
  end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+ require 'logged'
3
+
4
+ RSpec.describe Logged::Formatter::SingleKey do
5
+ subject { described_class.new(:foo) }
6
+
7
+ it 'serializes data' do
8
+ expect(subject.call(foo: 'bar', bar: 'foo')).to eq('bar')
9
+ end
10
+ end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+ require 'logged'
3
+ require 'active_support/notifications'
4
+ require 'active_support/log_subscriber'
5
+ require 'action_controller/log_subscriber'
6
+ require 'action_view/log_subscriber'
7
+ require 'action_mailer/log_subscriber'
8
+ require 'active_record/log_subscriber'
9
+
10
+ RSpec.describe 'Rails log subscriber' do
11
+ after do
12
+ log_subscribers = []
13
+
14
+ ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
15
+ events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' }
16
+ events.each do |event|
17
+ ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{subscriber.class.to_s.split('::').first.underscore}").each do |listener|
18
+ delegate = listener.instance_variable_get('@delegate')
19
+ log_subscribers << subscriber.class if delegate == subscriber
20
+ end
21
+ end
22
+ end
23
+
24
+ ActionController::LogSubscriber.attach_to :action_controller unless log_subscribers.include?(ActionController::LogSubscriber)
25
+ ActionView::LogSubscriber.attach_to :action_view unless log_subscribers.include?(ActionView::LogSubscriber)
26
+ ActionMailer::LogSubscriber.attach_to :action_mailer unless log_subscribers.include?(ActionMailer::LogSubscriber)
27
+ ActiveRecord::LogSubscriber.attach_to :active_record unless log_subscribers.include?(ActiveRecord::LogSubscriber)
28
+ end
29
+
30
+ it 'is removed for action_controller events' do
31
+ expect {
32
+ Logged.remove_rails_subscriber(:action_controller)
33
+ }.to change {
34
+ ActiveSupport::Notifications.notifier.listeners_for('process_action.action_controller')
35
+ }
36
+ end
37
+
38
+ it 'is removed for action_view events' do
39
+ expect {
40
+ Logged.remove_rails_subscriber(:action_view)
41
+ }.to change {
42
+ ActiveSupport::Notifications.notifier.listeners_for('render_template.action_view')
43
+ }
44
+ end
45
+
46
+ it 'is removed for action_mailer events' do
47
+ expect {
48
+ Logged.remove_rails_subscriber(:action_mailer)
49
+ }.to change {
50
+ ActiveSupport::Notifications.notifier.listeners_for('deliver.action_mailer')
51
+ }
52
+ end
53
+
54
+ it 'is removed for active_record events' do
55
+ expect {
56
+ Logged.remove_rails_subscriber(:active_record)
57
+ }.to change {
58
+ ActiveSupport::Notifications.notifier.listeners_for('sql.active_record')
59
+ }
60
+ end
61
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logged
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Schwab
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,62 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '1.9'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '1.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '10.4'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '10.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
47
+ version: '3.2'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.1'
54
+ version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '5.0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '4.0'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: actionpack
57
77
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +183,7 @@ files:
163
183
  - ".rspec"
164
184
  - ".rubocop.yml"
165
185
  - ".travis.yml"
186
+ - CHANGELOG.md
166
187
  - Gemfile
167
188
  - LICENSE.txt
168
189
  - README.md
@@ -184,13 +205,16 @@ files:
184
205
  - lib/logged/logger.rb
185
206
  - lib/logged/rack/logger.rb
186
207
  - lib/logged/railtie.rb
208
+ - lib/logged/subscriptions.rb
187
209
  - lib/logged/tagged_logging.rb
188
210
  - lib/logged/version.rb
189
211
  - logged.gemspec
212
+ - spec/config_spec.rb
190
213
  - spec/formatter/json_spec.rb
191
214
  - spec/formatter/key_value_spec.rb
192
215
  - spec/formatter/raw_spec.rb
193
- - spec/logged_spec.rb
216
+ - spec/formatter/single_key_spec.rb
217
+ - spec/removes_rails_log_subscribers_spec.rb
194
218
  - spec/spec_helper.rb
195
219
  homepage: https://github.com/ydkn/logged
196
220
  licenses:
@@ -212,14 +236,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
236
  version: '0'
213
237
  requirements: []
214
238
  rubyforge_project:
215
- rubygems_version: 2.4.6
239
+ rubygems_version: 2.4.8
216
240
  signing_key:
217
241
  specification_version: 4
218
242
  summary: Better logging for rails
219
243
  test_files:
244
+ - spec/config_spec.rb
220
245
  - spec/formatter/json_spec.rb
221
246
  - spec/formatter/key_value_spec.rb
222
247
  - spec/formatter/raw_spec.rb
223
- - spec/logged_spec.rb
248
+ - spec/formatter/single_key_spec.rb
249
+ - spec/removes_rails_log_subscribers_spec.rb
224
250
  - spec/spec_helper.rb
225
251
  has_rdoc:
data/spec/logged_spec.rb DELETED
@@ -1,63 +0,0 @@
1
- require 'spec_helper'
2
- require 'logged'
3
- require 'active_support/notifications'
4
- require 'active_support/log_subscriber'
5
- require 'action_controller/log_subscriber'
6
- require 'action_view/log_subscriber'
7
- require 'action_mailer/log_subscriber'
8
- require 'active_record/log_subscriber'
9
-
10
- RSpec.describe Logged do
11
- context 'when removing Rails log subscribers' do
12
- after do
13
- log_subscribers = []
14
-
15
- ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
16
- events = subscriber.public_methods(false).reject { |method| method.to_s == 'call' }
17
- events.each do |event|
18
- ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{subscriber.class.to_s.split('::').first.underscore}").each do |listener|
19
- delegate = listener.instance_variable_get('@delegate')
20
- log_subscribers << subscriber.class if delegate == subscriber
21
- end
22
- end
23
- end
24
-
25
- ActionController::LogSubscriber.attach_to :action_controller unless log_subscribers.include?(ActionController::LogSubscriber)
26
- ActionView::LogSubscriber.attach_to :action_view unless log_subscribers.include?(ActionView::LogSubscriber)
27
- ActionMailer::LogSubscriber.attach_to :action_mailer unless log_subscribers.include?(ActionMailer::LogSubscriber)
28
- ActiveRecord::LogSubscriber.attach_to :active_record unless log_subscribers.include?(ActiveRecord::LogSubscriber)
29
- end
30
-
31
- it 'removes subscribers for action_controller events' do
32
- expect {
33
- Logged.remove_rails_subscriber(:action_controller)
34
- }.to change {
35
- ActiveSupport::Notifications.notifier.listeners_for('process_action.action_controller')
36
- }
37
- end
38
-
39
- it 'removes subscribers for action_view events' do
40
- expect {
41
- Logged.remove_rails_subscriber(:action_view)
42
- }.to change {
43
- ActiveSupport::Notifications.notifier.listeners_for('render_template.action_view')
44
- }
45
- end
46
-
47
- it 'removes subscribers for action_mailer events' do
48
- expect {
49
- Logged.remove_rails_subscriber(:action_mailer)
50
- }.to change {
51
- ActiveSupport::Notifications.notifier.listeners_for('deliver.action_mailer')
52
- }
53
- end
54
-
55
- it 'removes subscribers for active_record events' do
56
- expect {
57
- Logged.remove_rails_subscriber(:active_record)
58
- }.to change {
59
- ActiveSupport::Notifications.notifier.listeners_for('sql.active_record')
60
- }
61
- end
62
- end
63
- end