rails_spotlight 0.1.4 → 0.1.5

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: 204e34e484ceb524e16c2a2e122f37d036d715e418b52c7554fb241e4808b5c9
4
- data.tar.gz: c89021305a1e1dd5d07e47e06ff85af329a69bd66640db326a755441c6969978
3
+ metadata.gz: 87f0223a0d6c7cac9d284d7d19a7befa0280c52f3731b01cef1207b83628875d
4
+ data.tar.gz: 0e5adc3f69234b898dce003bb9c2f82be164bab0afbd5a7b5c826d30cb013b49
5
5
  SHA512:
6
- metadata.gz: e868e72afc9da1d88c1b3f7560410b8609f15929b24bb74381461b7723374369823b70b651d2d6ac137ab24db53d00997cb6de825a4f9901c6b2688b4904e80e
7
- data.tar.gz: 333b0548005715899d6cba9729b50ef37a2604ea6f6939cd3bba6807db2dce788460a502ff25e3121879203ac56033050d871b90f3f8778a36925d157b51de72
6
+ metadata.gz: fa5134d60d3c1ca1d7b34c30adccd3316f3aab59f445e35d3e547cc6c735ea05056769a4dc5a5d5344b56ffdbdb01969cf0d94286346c5735b450222fc76a68d
7
+ data.tar.gz: cc448d4957b17c63e7ad7081df7e988c64548e3a619dc834a7956c32def2132b3c02e8af7e0e1aa603e7b4c0068c942f61118054158a5d872c815205ddb409d0
data/README.md CHANGED
@@ -4,8 +4,8 @@ Chrome extension [Rails Spotlight](https://chrome.google.com/webstore/detail/rai
4
4
 
5
5
  ## Support for
6
6
 
7
- Rails 5+
8
- Ruby 2.6+
7
+ * Rails 5+
8
+ * Ruby 2.6+
9
9
 
10
10
  ## Installation
11
11
 
@@ -8,22 +8,35 @@ module RailsSpotlight
8
8
  if ActiveSupport.const_defined?('ExecutionContext')
9
9
  ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record', monotonic: true) do
10
10
  ActiveSupport::ExecutionContext.set(rails_spotlight: request_id) do
11
- self.result = ActiveRecord::Base.connection.exec_query(query)
11
+ transaction
12
12
  end
13
13
  end
14
14
  else
15
15
  ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record') do
16
- self.result = ActiveRecord::Base.connection.exec_query(query)
16
+ transaction
17
17
  end
18
18
  end
19
19
  end
20
20
 
21
21
  private
22
22
 
23
+ def transaction
24
+ ActiveRecord::Base.transaction do
25
+ begin
26
+ self.result = ActiveRecord::Base.connection.exec_query(query)
27
+ rescue => e
28
+ self.error = e
29
+ ensure
30
+ raise ActiveRecord::Rollback unless force_execution?
31
+ end
32
+ end
33
+ end
34
+
23
35
  attr_accessor :result
36
+ attr_accessor :error
24
37
 
25
38
  def json_response_body
26
- { result: result, logs: logs }
39
+ { result: result, logs: logs, error: error.inspect, query_mode: force_execution? ? 'force' : 'default' }
27
40
  end
28
41
 
29
42
  def logger(_, started, finished, unique_id, payload)
@@ -39,6 +52,10 @@ module RailsSpotlight
39
52
  def query
40
53
  @query ||= json_request_body.fetch('query')
41
54
  end
55
+
56
+ def force_execution?
57
+ @force_execution ||= json_request_body['mode'] == 'force'
58
+ end
42
59
  end
43
60
  end
44
61
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsSpotlight
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
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.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawel Niemczyk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-21 00:00:00.000000000 Z
11
+ date: 2023-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack-contrib