memolog 0.2.0 → 0.3.1

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: a0f3276d2ccd3726c5e46dee8275cee70124955d9b8764e371097324a4643713
4
- data.tar.gz: c6ca8429d029135ba450f232d80a1406d4256a03193705ead871d39e7800698a
3
+ metadata.gz: a4c3d9289bf4c0378b3050613589595dbf2c1d1e5a25a0fa9f0c3d2302a2963e
4
+ data.tar.gz: 0b56db61731b0e1bd1c293216cf0a0fab009ea8eb70be2b85601a27b70cdf284
5
5
  SHA512:
6
- metadata.gz: 706306f7722c755d2df86f76141a102d9da097b8bab2b64830fc1381652c64da5ba45bba31ed696773f641f4864bd2d1c06a91e191bfe1e4ea0192d3e56c0eac
7
- data.tar.gz: 2136479ffe04455d9a56ba52fce097a182deb65c924a7a9f1a18e653eb49419a2063c895f72242c1ee581596bc95688f8f0759de175e3c7819e3e91346041ffe
6
+ metadata.gz: 6a25437819058d1330f195a7dbbeea54d728face25790bc83c6fcba84500e18b459a8d50730c79e598b86c4c7a0f953d5ab804c2d71bb38c3d2f898a08097761
7
+ data.tar.gz: 0b90e159e40b2a0e4a7fb0c0aa84e96a8de0fb3b4538346e5614f894f001574c7c0157963273d50081aa36fc732085f46bd97afa9991d42085235e393a3d5e93
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ memolog-*.gem
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## 0.3.0
2
+
3
+ - Apply a prepend patch with `Sentry::Scope#apply_to_event` method.
4
+ - Check constant definition via `Object.const_defined?`
5
+ - Moving `Sentry::Sidekiq` scheme to monkey patch `Sentry::Sidekiq::SentryContextServerMiddleware`
6
+ - More specs
7
+
8
+ ## 0.2.2
9
+
10
+ - Do not init Rails middleware in Sidekiq server.
11
+
12
+ ## 0.2.1
13
+
14
+ - Better Rails middleware initialization.
15
+
1
16
  ## 0.2.0
2
17
 
3
18
  - Uprade gem due [CVE-2021-41098](https://github.com/advisories/GHSA-2rr5-8q37-2w7h)
data/Gemfile CHANGED
@@ -11,4 +11,5 @@ gem "rake"
11
11
  gem "rspec"
12
12
  gem "rubocop-config-umbrellio"
13
13
  gem "sentry-ruby"
14
+ gem "sentry-sidekiq"
14
15
  gem "sidekiq"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- memolog (0.2.0)
4
+ memolog (0.3.1)
5
5
  logger (~> 1.4.3)
6
6
  securerandom (~> 0.1.0)
7
7
 
@@ -98,7 +98,7 @@ GEM
98
98
  activesupport (>= 5.0)
99
99
  i18n (1.8.10)
100
100
  concurrent-ruby (~> 1.0)
101
- logger (1.4.3)
101
+ logger (1.4.4)
102
102
  loofah (2.12.0)
103
103
  crass (~> 1.0.2)
104
104
  nokogiri (>= 1.5.9)
@@ -202,7 +202,7 @@ GEM
202
202
  rubocop (~> 1.0)
203
203
  ruby-progressbar (1.11.0)
204
204
  ruby2_keywords (0.0.5)
205
- securerandom (0.1.0)
205
+ securerandom (0.1.1)
206
206
  sentry-ruby (4.7.3)
207
207
  concurrent-ruby (~> 1.0, >= 1.0.2)
208
208
  faraday (>= 1.0)
@@ -210,6 +210,9 @@ GEM
210
210
  sentry-ruby-core (4.7.3)
211
211
  concurrent-ruby
212
212
  faraday
213
+ sentry-sidekiq (4.7.3)
214
+ sentry-ruby-core (~> 4.7.0)
215
+ sidekiq (>= 3.0)
213
216
  sidekiq (6.2.2)
214
217
  connection_pool (>= 2.2.2)
215
218
  rack (~> 2.0)
@@ -242,6 +245,7 @@ DEPENDENCIES
242
245
  rspec
243
246
  rubocop-config-umbrellio
244
247
  sentry-ruby
248
+ sentry-sidekiq
245
249
  sidekiq
246
250
 
247
251
  BUNDLED WITH
data/lib/memolog/init.rb CHANGED
@@ -10,21 +10,27 @@ class Memolog::Init
10
10
  private
11
11
 
12
12
  def init_rails!
13
- return unless defined?(Rails) && Memolog.config.initializers.include?(:rails)
14
- require "memolog/railtie"
13
+ return unless Memolog.config.initializers.include?(:rails)
14
+ return unless Object.const_defined?("Rails")
15
+ return if Object.const_defined?("Sidekiq") && Sidekiq.server?
16
+
17
+ Rails.application.middleware.insert_before(0, Memolog::RailsMiddleware)
15
18
  end
16
19
 
17
20
  def init_sentry!
18
- return unless defined?(Sentry::Scope) && Memolog.config.initializers.include?(:sentry)
19
- Sentry::Scope.prepend(Memolog::SentryScopeExtension)
21
+ return unless Memolog.config.initializers.include?(:sentry)
22
+ return unless Object.const_defined?("Sentry")
23
+
24
+ Sentry.prepend(Memolog::SentryExtension)
20
25
  end
21
26
 
22
27
  def init_sidekiq!
23
- return unless defined?(Sidekiq) && Memolog.config.initializers.include?(:sidekiq)
28
+ return unless Memolog.config.initializers.include?(:sidekiq)
29
+ return unless Object.const_defined?("Sidekiq")
24
30
 
25
31
  Sidekiq.configure_server do |config|
26
32
  config.server_middleware do |chain|
27
- chain.prepend(Memolog::SentrySidekiqMiddleware)
33
+ chain.prepend(Memolog::SidekiqMiddleware)
28
34
  end
29
35
  end
30
36
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class Memolog::Middleware
3
+ class Memolog::RailsMiddleware
4
4
  def initialize(app)
5
5
  @app = app
6
6
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Memolog::SentryExtension
4
+ def self.prepended(base)
5
+ base.singleton_class.send(:prepend, ClassMethods)
6
+ end
7
+
8
+ module ClassMethods
9
+ def capture_exception(exception, **options, &block)
10
+ add_memolog_to_current_scope!
11
+ super
12
+ end
13
+
14
+ def capture_message(message, **options, &block)
15
+ add_memolog_to_current_scope!
16
+ super
17
+ end
18
+
19
+ def add_memolog_to_current_scope!
20
+ dump = Memolog.dump
21
+ return unless dump
22
+
23
+ scope = get_current_scope
24
+ scope.set_extras(Memolog.config.sentry_key => dump) if scope # rubocop:disable Style/SafeNavigation
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Memolog::SidekiqMiddleware
4
+ def call(*)
5
+ Memolog.run { yield } # rubocop:disable Style/ExplicitBlockArgument
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Memolog
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.1"
5
5
  end
data/lib/memolog.rb CHANGED
@@ -9,9 +9,9 @@ require "memolog/config"
9
9
  require "memolog/extension"
10
10
  require "memolog/formatter"
11
11
  require "memolog/init"
12
- require "memolog/middleware"
13
- require "memolog/sentry_scope_extension"
14
- require "memolog/sentry_sidekiq_middleware"
12
+ require "memolog/rails_middleware"
13
+ require "memolog/sentry_extension"
14
+ require "memolog/sidekiq_middleware"
15
15
 
16
16
  module Memolog
17
17
  extend self
@@ -59,6 +59,6 @@ module Memolog
59
59
  beginning = logdevs.last.string.length - config.log_size_limit
60
60
  beginning = 0 if beginning.negative?
61
61
 
62
- logdevs.last.string.slice(beginning, config.log_size_limit)
62
+ logdevs.last.string.slice(beginning, config.log_size_limit).presence
63
63
  end
64
64
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memolog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stepan Kirushkin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2021-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger
@@ -64,10 +64,9 @@ files:
64
64
  - lib/memolog/extension.rb
65
65
  - lib/memolog/formatter.rb
66
66
  - lib/memolog/init.rb
67
- - lib/memolog/middleware.rb
68
- - lib/memolog/railtie.rb
69
- - lib/memolog/sentry_scope_extension.rb
70
- - lib/memolog/sentry_sidekiq_middleware.rb
67
+ - lib/memolog/rails_middleware.rb
68
+ - lib/memolog/sentry_extension.rb
69
+ - lib/memolog/sidekiq_middleware.rb
71
70
  - lib/memolog/version.rb
72
71
  homepage: https://github.com/skirushkin/memolog
73
72
  licenses:
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Memolog::Railtie < Rails::Railtie
4
- initializer "memolog.configure_rails_initialization" do |app|
5
- app.middleware.insert_before(0, Memolog::Middleware)
6
- end
7
- end
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Memolog::SentryScopeExtension
4
- def extra
5
- memolog_dump = Memolog.dump
6
- memolog_dump.present? ? super.merge!(Memolog.config.sentry_key => memolog_dump) : super
7
- end
8
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Memolog::SentrySidekiqMiddleware
4
- def call(*)
5
- Memolog.run do
6
- yield
7
- rescue => error
8
- memolog_dump = Memolog.dump
9
- Sentry.set_extras(Memolog.config.sentry_key => memolog_dump) if memolog_dump
10
- raise error
11
- end
12
- end
13
- end