rails_spotlight 0.1.4 → 0.1.5

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: 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