rails_spotlight 0.4.1 → 0.4.2

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
  SHA256:
3
- metadata.gz: 7b079149e67ffc19722fc8f79f87bc06318ca607e5ec4e4f306b4b166dfe4b0a
4
- data.tar.gz: 49fe7c6ef53eb6674d5b49983ccb7a77b3b4fcad9b7c1fda4164ba32d6911016
3
+ metadata.gz: e3080195b8e2481d0af07b1c8a7c0e5d59dc7b90d95afc82e722514676003d01
4
+ data.tar.gz: 472e0580e0e7fceb406bc6810be98ea2945232f673deaaecd28737d3c9bf54ff
5
5
  SHA512:
6
- metadata.gz: 534a0d962aede9bb99c2108f1e0eea6f655bf7bacf56d6227fa37fd89aa858ad6581ea2bb24df6ef79b3f38589f017f4ed2a128620dd36e95fdd25f82f25f609
7
- data.tar.gz: ca834260ee821483898464fb1132b9b7add515844bc62c768c908715d6f56989e745489b3d31dbc81f58e2f4be2a1ba090fffa1bed3cd754c9cc31c0f080674e
6
+ metadata.gz: f72425d6484fe1574d05d5f44189265bab421e834fdde23c9e2c96df0911f0b673750395d86e2b45563cac53dc3f0fc2d82794262c7d24ab3787161890259225
7
+ data.tar.gz: 98cf2fb54e51e960022a2819aabe04f21bfa66d2f7dd34057fb2fb2d5c4a23481c635d3f40deabc1f387d700b6a1dfb152b1ed5be0135c7ec0139e947db9cb78
@@ -28,39 +28,34 @@ module RailsSpotlight
28
28
  true
29
29
  end
30
30
 
31
- def debug(message = nil, *args)
32
- message = yield if message.nil? && block_given?
33
- _rails_spotlight_log(:debug, message)
31
+
32
+ def debug(message = nil, *args, &block)
33
+ _rails_spotlight_log(:debug, message, nil, :event, &block)
34
34
  super
35
35
  end
36
36
 
37
- def info(message = nil, *args)
38
- message = yield if message.nil? && block_given?
39
- _rails_spotlight_log(:info, message)
37
+ def info(message = nil, *args, &block)
38
+ _rails_spotlight_log(:info, message, nil, :event, &block)
40
39
  super
41
40
  end
42
41
 
43
- def warn(message = nil, *args)
44
- message = yield if message.nil? && block_given?
45
- _rails_spotlight_log(:warn, message)
42
+ def warn(message = nil, *args, &block)
43
+ _rails_spotlight_log(:warn, message, nil, :event, &block)
46
44
  super
47
45
  end
48
46
 
49
- def error(message = nil, *args)
50
- message = yield if message.nil? && block_given?
51
- _rails_spotlight_log(:error, message)
47
+ def error(message = nil, *args, &block)
48
+ _rails_spotlight_log(:error, message, nil, :event, &block)
52
49
  super
53
50
  end
54
51
 
55
- def fatal(message = nil, *args)
56
- message = yield if message.nil? && block_given?
57
- _rails_spotlight_log(:fatal, message)
52
+ def fatal(message = nil, *args, &block)
53
+ _rails_spotlight_log(:fatal, message, nil, :event, &block)
58
54
  super
59
55
  end
60
56
 
61
- def unknown(message = nil, *args)
62
- message = yield if message.nil? && block_given?
63
- _rails_spotlight_log(:unknown, message)
57
+ def unknown(message = nil, *args, &block)
58
+ _rails_spotlight_log(:unknown, message, nil, :event, &block)
64
59
  super
65
60
  end
66
61
 
@@ -76,15 +71,15 @@ module RailsSpotlight
76
71
  def _rails_spotlight_log(level, message, progname = nil, output = :event)
77
72
  callsite = Utils.dev_callsite(caller.drop(1))
78
73
  name = progname.is_a?(String) || progname.is_a?(Symbol) ? progname : nil
79
- output == :event ? _push_event(level, message, name) : _broadcast_log(message, level, callsite, name)
74
+ message = yield if output == :event && message.nil? && block_given?
75
+ output == :event ? _push_event(level, message, name, callsite) : _broadcast_log(message, level, callsite, name)
80
76
  rescue StandardError => e
81
77
  RailsSpotlight.config.logger.fatal("#{e.message}\n #{e.backtrace.join("\n ")}")
82
78
  end
83
79
 
84
- def _push_event(level, message, progname = nil)
85
- callsite = Utils.dev_callsite(caller.drop(1)) || {}
80
+ def _push_event(level, message, progname = nil, callsite = {})
86
81
  name = progname.is_a?(String) || progname.is_a?(Symbol) ? progname : nil
87
- AppRequest.current.events << Event.new('rsl.notification.log', 0, 0, 0, callsite.merge(message: message, level: level, progname: name)) if AppRequest.current
82
+ AppRequest.current.events << Event.new('rsl.notification.log', 0, 0, 0, (callsite || {}).merge(message: message, level: level, progname: name)) if AppRequest.current
88
83
  rescue StandardError => e
89
84
  RailsSpotlight.config.logger.fatal("#{e.message}\n #{e.backtrace.join("\n ")}")
90
85
  end
@@ -14,22 +14,31 @@ module RailsSpotlight
14
14
 
15
15
  private
16
16
 
17
- def transaction
17
+ def transactional(&block)
18
+ return block.call if force_execution?
19
+
18
20
  ActiveRecord::Base.transaction do
19
- begin # rubocop:disable Style/RedundantBegin
20
- ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record', monotonic: true) do
21
- run
22
- end
23
- rescue => e # rubocop:disable Style/RescueStandardError
24
- self.error = e
21
+ begin
22
+ block.call
25
23
  ensure
26
- raise ActiveRecord::Rollback unless force_execution?
24
+ raise ActiveRecord::Rollback
25
+ end
26
+ end
27
+ end
28
+
29
+ def transaction
30
+ begin # rubocop:disable Style/RedundantBegin
31
+ ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record', monotonic: true) do
32
+ run
27
33
  end
34
+ rescue => e # rubocop:disable Style/RescueStandardError
35
+ self.error = e
28
36
  end
29
37
  end
30
38
 
31
39
  def run # rubocop:disable Metrics/AbcSize
32
40
  RailsSpotlight.config.logger && RailsSpotlight.config.logger.info("Executing query: #{query}") # rubocop:disable Style/SafeNavigation
41
+
33
42
  return self.result = ActiveRecord::Base.connection.exec_query(query) if connection_options.blank? || !ActiveRecord::Base.respond_to?(:connects_to)
34
43
 
35
44
  connections = ActiveRecord::Base.connects_to(**connection_options)
@@ -48,7 +57,7 @@ module RailsSpotlight
48
57
  result: result,
49
58
  logs: logs,
50
59
  error: error.present? ? error.inspect : nil,
51
- query_mode: force_execution? ? 'force' : 'default'
60
+ query_mode: force_execution? ? 'force' : 'default'
52
61
  }
53
62
  end
54
63
 
@@ -80,9 +89,9 @@ module RailsSpotlight
80
89
 
81
90
  def connection_options
82
91
  @connection_options ||= raw_options
83
- .symbolize_keys
84
- .slice(:database, :shards)
85
- .reject { |_, v| v.nil? || (!v.is_a?(TrueClass) && !v.is_a?(FalseClass) && v.empty?) } # TODO: Check for each rails version
92
+ .symbolize_keys
93
+ .slice(:database, :shards)
94
+ .reject { |_, v| v.nil? || (!v.is_a?(TrueClass) && !v.is_a?(FalseClass) && v.empty?) } # TODO: Check for each rails version
86
95
  end
87
96
 
88
97
  def force_execution?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsSpotlight
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_spotlight
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawel Niemczyk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-21 00:00:00.000000000 Z
11
+ date: 2024-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack-contrib
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 3.0.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.3'
42
+ version: '8.1'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: 3.0.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '7.3'
52
+ version: '8.1'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: action-cable-testing
55
55
  requirement: !ruby/object:Gem::Requirement