epilog 0.6.0 → 0.7.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
  SHA256:
3
- metadata.gz: 26a731d5297bcf87056341855af05c6c57b18fbb29115a0dcc3d00b1c2a9086e
4
- data.tar.gz: 032c613192e81a8c4b97993b1f42c7d100272c16b1a4457f1df9a9afb54a84b6
3
+ metadata.gz: 32a54d6c7ea304907eb4dc22c25c9929b3da12567229bff59011e71d9beb6657
4
+ data.tar.gz: 6368c2823685e10c8f599e0b2a38fbe51d815276427d7678de23438cb91967f2
5
5
  SHA512:
6
- metadata.gz: 44373cd845a4114af0b41654265f697c0bc2ab9584342d1b5c40de4a539e1228608ac1d548bf14150c24ddaa6987c272601f402453dac1ff0356a23a65cd8bd8
7
- data.tar.gz: e654189bc9d0431e165c0d948f234972171f16c016260ba287e05cf5f268f5802e30fedf02884d5699ff49241548eab5b3d46f7065e836988a37cace563c476e
6
+ metadata.gz: 9c7043de6697ddd6ec8c5b9bd5e9c4b4f6514ac294832778df3001cee5b33095d9da4ba98c94a4d9719a543774211bd0451c9648274833b78c17acab1d06778c
7
+ data.tar.gz: b0c7afa816aafe154ac47d944baa5398c692d2c5b33f4c014460486daae83f280c070d63f8a09b67b2025f4bf9e153878b84aad848b6ce1780699e9ed75ae00d
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  /spec/rails_app/log/
11
11
  /spec/rails_app/db/test.sqlite
12
+ /.idea
data/.travis.yml CHANGED
@@ -4,10 +4,12 @@ rvm:
4
4
  - 2.3
5
5
  - 2.4
6
6
  - 2.5
7
+ - 2.6
7
8
  env:
8
9
  matrix:
9
- - RAILS_VERSION=4.2
10
10
  - RAILS_VERSION=5.2
11
+ - RAILS_VERSION=6.0
12
+ - RAILS_VERSION=6.1
11
13
  global:
12
14
  - COVERAGE=1
13
15
  - secure: 'nm0AJBULqunzS//h26lblqWHV4Kl0Ij9OPVHMI761TNeFFjP2+KKUVh4qYEKrdUDp7pk9Wa4CdAB9EFLYTJMwyK8RlSkdMLaHGT9xdOqbycBS6vkW2symvdu58SSdsNmnnFV4ebOwEmEcDhAh8SyT0ZkUVhyzGntdzOOZmULi57kOwm8QGrrr4/4xaTmDleZlTDS404nD28wJctaBT8Xa33inaYYrHLKz4xbvFFtptrPb+Arav9enljqiqOu4XjXCIP2eOSP7PHkDPuRn0JKDFT3zKmj0MIUbYkoheQL6R3tMF9zx5gm4GKbd7iunuIsjbFweiveZwZhfNGDPCICuw76UWZCrN4PpomA7XDNjbs0JVRJvnBxLZk5X3w3Sacb4zBTd+U8WH7uAb9qdD7m4xUswox4tPZDPXYObw2PDqtLlsSRn3WDKsnG0/Tt0D+kFsx43MbrvspdOzjarJsIXzU9aJqfE97nM4ZrNcktsW4PrqGflhcDVTKg+kLQj4bO0csR1W/JhGHN0JsVNUmNFN9QqpuRxxI/AmnPBtKR29DDy3BUv1b/kCZbsqq4+wbgCKDJng5VBgpG4VekOiTT2xmlwoxNK4IUAISbu7G/eyCcp33jb+27QE74a13xQsMLvh/wjh1sFEfzJvQzXFL+gjkVP4Z/+uSbc2+8/p+FKm8='
@@ -28,7 +30,7 @@ after_script:
28
30
  jobs:
29
31
  include:
30
32
  - stage: release
31
- rvm: 2.3
33
+ rvm: 2.6
32
34
  script: skip
33
35
  deploy:
34
36
  provider: rubygems
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0
4
+
5
+ - Add support for Rails 6 [#18](https://github.com/machinima/epilog/pull/18)
6
+
3
7
  ## 0.6.0
4
8
 
5
9
  - Add support for Rails 5 API-only controllers [#17](https://github.com/machinima/epilog/pull/17)
data/Gemfile CHANGED
@@ -5,4 +5,9 @@ gemspec
5
5
 
6
6
  group :test do
7
7
  gem 'rails', "~> #{ENV.fetch('RAILS_VERSION', '5.2')}"
8
+ if ENV.fetch('RAILS_VERSION', '5.2').to_f >= 5
9
+ gem 'sqlite3', '~> 1.4'
10
+ else
11
+ gem 'sqlite3', '= 1.3.10' # rubocop:disable Bundler/DuplicatedGem
12
+ end
8
13
  end
data/epilog.gemspec CHANGED
@@ -21,15 +21,15 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency 'bundler', '>= 1.12'
23
23
  spec.add_development_dependency 'byebug', '~> 11.0'
24
- spec.add_development_dependency 'combustion', '~> 1.1.0'
24
+ spec.add_development_dependency 'combustion', '~> 1.3'
25
25
  spec.add_development_dependency 'irb'
26
- spec.add_development_dependency 'rails', '>= 4.2', '< 6'
26
+ spec.add_development_dependency 'rails', '>= 4.2', '< 7'
27
27
  spec.add_development_dependency 'rake', '~> 13.0'
28
28
  spec.add_development_dependency 'redcarpet', '~> 3.5'
29
29
  spec.add_development_dependency 'rspec', '~> 3.4'
30
30
  spec.add_development_dependency 'rspec-rails', '~> 3.8.1'
31
31
  spec.add_development_dependency 'rubocop', '0.75'
32
32
  spec.add_development_dependency 'simplecov', '~> 0.17'
33
- spec.add_development_dependency 'sqlite3', '~> 1.3', '< 1.4'
33
+ spec.add_development_dependency 'sqlite3', '~> 1.3', '< 1.5'
34
34
  spec.add_development_dependency 'yard', '~> 0.9.11'
35
35
  end
@@ -13,6 +13,8 @@ module Epilog
13
13
  end
14
14
  end
15
15
 
16
+ # Method `receive` removed in Rails 6.1
17
+ # https://github.com/rails/rails/commit/d5fa9569a0d401893d54ee47fe43fd87b6155fb7
16
18
  def receive(event)
17
19
  info do
18
20
  hash(
@@ -3,9 +3,27 @@
3
3
  module Epilog
4
4
  module Rails
5
5
  class ActiveJobSubscriber < LogSubscriber
6
+ # rubocop:disable Metrics/MethodLength
6
7
  def enqueue(event)
7
- info { event_hash('Enqueued job', event) }
8
+ ex = event.payload[:exception_object]
9
+
10
+ if ex
11
+ error do
12
+ event_hash('Failed enqueuing job', event)
13
+ end
14
+ elsif event.payload[:aborted]
15
+ info do
16
+ event_hash(
17
+ 'Failed enqueuing job, a before_enqueue callback' \
18
+ ' halted the enqueuing execution.',
19
+ event
20
+ )
21
+ end
22
+ else
23
+ info { event_hash('Enqueued job', event) }
24
+ end
8
25
  end
26
+ # rubocop:enable Metrics/MethodLength
9
27
 
10
28
  def enqueue_at(event)
11
29
  enqueue(event)
@@ -18,16 +36,44 @@ module Epilog
18
36
  info { event_hash('Performing job', event) }
19
37
  end
20
38
 
39
+ # rubocop:disable Metrics/MethodLength
40
+ # rubocop:disable Metrics/AbcSize
21
41
  def perform(event)
22
- info do
23
- event_hash('Performed job', event).merge(
24
- metrics: {
25
- job_runtime: event.duration
26
- }
27
- )
42
+ ex = event.payload[:exception_object]
43
+ if ex
44
+ error do
45
+ event_hash('Error performing job', event).merge(
46
+ metrics: {
47
+ job_runtime: event.duration
48
+ }
49
+ )
50
+ end
51
+ elsif event.payload[:aborted]
52
+ error do
53
+ event_hash(
54
+ 'Error performing job, a before_perform ' \
55
+ 'callback halted the job execution',
56
+ event
57
+ ).merge(
58
+ metrics: {
59
+ job_runtime: event.duration
60
+ }
61
+ )
62
+ end
63
+ else
64
+ info do
65
+ event_hash('Performed job', event).merge(
66
+ metrics: {
67
+ job_runtime: event.duration
68
+ }
69
+ )
70
+ end
28
71
  end
72
+
29
73
  pop_context
30
74
  end
75
+ # rubocop:enable Metrics/MethodLength
76
+ # rubocop:enable Metrics/AbcSize
31
77
 
32
78
  private
33
79
 
@@ -2,10 +2,15 @@
2
2
 
3
3
  module Epilog
4
4
  class Logger
5
- include LoggerSilence
6
-
7
5
  def silencer
8
6
  false
9
7
  end
10
8
  end
11
9
  end
10
+
11
+ logger_silencer = if Rails::VERSION::MAJOR >= 6
12
+ ActiveSupport::LoggerSilence
13
+ else
14
+ ::LoggerSilence
15
+ end
16
+ Epilog::Logger.send(:include, logger_silencer)
@@ -47,7 +47,17 @@ module Epilog
47
47
  end
48
48
  end
49
49
 
50
- ActionController::Base.prepend(Epilog::ActionControllerExt)
51
- if defined? ActionController::API
50
+ def prepend_controller_ext
51
+ ActionController::Base.prepend(Epilog::ActionControllerExt)
52
+ return unless defined? ActionController::API
53
+
52
54
  ActionController::API.prepend(Epilog::ActionControllerExt)
53
55
  end
56
+
57
+ if ::Rails::VERSION::MAJOR < 5
58
+ prepend_controller_ext
59
+ else
60
+ ActiveSupport.on_load(:action_controller_base) do
61
+ prepend_controller_ext
62
+ end
63
+ end
@@ -3,6 +3,15 @@
3
3
  module Epilog
4
4
  module Rails
5
5
  class Railtie < ::Rails::Railtie
6
+ def self.rails_6_1_higher?
7
+ Gem::Version.new(::Rails::VERSION::STRING) >= Gem::Version.new('6.1.0')
8
+ end
9
+
10
+ # We need this in Rails 6.
11
+ # Without this line `ActiveJob::LogSubscriber` fails
12
+ # with unknown contant error
13
+ ActiveSupport.run_load_hooks(:active_job, ActiveJob::Base)
14
+
6
15
  SUBSCRIBERS = {
7
16
  action_controller: ActionControllerSubscriber,
8
17
  action_mailer: ActionMailerSubscriber,
@@ -16,7 +25,11 @@ module Epilog
16
25
  ActionMailer::LogSubscriber,
17
26
  ActionView::LogSubscriber,
18
27
  ActiveRecord::LogSubscriber,
19
- ActiveJob::Logging::LogSubscriber
28
+ if rails_6_1_higher?
29
+ ActiveJob::LogSubscriber
30
+ else
31
+ ActiveJob::Logging::LogSubscriber
32
+ end
20
33
  ].freeze
21
34
 
22
35
  config.epilog = ActiveSupport::OrderedOptions.new
@@ -56,7 +69,7 @@ module Epilog
56
69
 
57
70
  def unsubscribe_listeners(subscriber, pattern)
58
71
  notifier = ActiveSupport::Notifications.notifier
59
- notifier.listeners_for(pattern).each do |listener|
72
+ notifier.listeners_for(Array.wrap(pattern).first).each do |listener|
60
73
  if listener.delegates_to?(subscriber)
61
74
  ActiveSupport::Notifications.unsubscribe(listener)
62
75
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Epilog
4
- VERSION = '0.6.0'
4
+ VERSION = '0.7.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epilog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Howard
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-26 00:00:00.000000000 Z
11
+ date: 2022-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.1.0
47
+ version: '1.3'
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: 1.1.0
54
+ version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: irb
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -75,7 +75,7 @@ dependencies:
75
75
  version: '4.2'
76
76
  - - "<"
77
77
  - !ruby/object:Gem::Version
78
- version: '6'
78
+ version: '7'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,7 +85,7 @@ dependencies:
85
85
  version: '4.2'
86
86
  - - "<"
87
87
  - !ruby/object:Gem::Version
88
- version: '6'
88
+ version: '7'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: rake
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -179,7 +179,7 @@ dependencies:
179
179
  version: '1.3'
180
180
  - - "<"
181
181
  - !ruby/object:Gem::Version
182
- version: '1.4'
182
+ version: '1.5'
183
183
  type: :development
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
@@ -189,7 +189,7 @@ dependencies:
189
189
  version: '1.3'
190
190
  - - "<"
191
191
  - !ruby/object:Gem::Version
192
- version: '1.4'
192
+ version: '1.5'
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: yard
195
195
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +204,7 @@ dependencies:
204
204
  - - "~>"
205
205
  - !ruby/object:Gem::Version
206
206
  version: 0.9.11
207
- description:
207
+ description:
208
208
  email:
209
209
  - jmhoward0@gmail.com
210
210
  executables: []
@@ -258,7 +258,7 @@ homepage: https://github.com/machinima/epilog
258
258
  licenses:
259
259
  - Apache-2.0
260
260
  metadata: {}
261
- post_install_message:
261
+ post_install_message:
262
262
  rdoc_options: []
263
263
  require_paths:
264
264
  - lib
@@ -273,9 +273,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
273
  - !ruby/object:Gem::Version
274
274
  version: '0'
275
275
  requirements: []
276
- rubyforge_project:
277
- rubygems_version: 2.7.7
278
- signing_key:
276
+ rubygems_version: 3.3.7
277
+ signing_key:
279
278
  specification_version: 4
280
279
  summary: A JSON logger with Rails support
281
280
  test_files: []