lograge-sql 1.1.0 → 2.0.0

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: 11cea1c366c76e19619e78e5d957f863cefa1fd5ec55a2330242cde0a92adc42
4
- data.tar.gz: 343afe00dbf0ef4755400c9c234c12cf60806572a723f825c75e36a9e78ecbb2
3
+ metadata.gz: '066994b5ce1417ea75cdcb9328eb91c0deb1a2e4530119a2a698356aaccedb28'
4
+ data.tar.gz: 151e948e7fbd209d7048b4c8fe92afa83d1f9012974abc7d2daf24c29caa2da7
5
5
  SHA512:
6
- metadata.gz: af84fccad7b7f4f98e44b4dfbf7fe95c73adefd0e09c552d6a5b3857564b674b8d0a177d28c37f9a03d34348a467cd9ddbadd343f4954fd91f68a2870ba7d079
7
- data.tar.gz: 47b359c21d2549d575b4f8eb672927da8ac1baaa4a719e738d7ce735a72503bc41da6260502fec8b8e540d75380af78f7c23cbc570ecfc8239882255675ea4d9
6
+ metadata.gz: 3ade265153ed67c440a4135daf39ffe9479adeb5c89b3780f0f91fabf28f96199be19aa646fe1170c0a67a9505fdfcf4172df2d085d0b8f178fb4994888217f2
7
+ data.tar.gz: 1372c45b1944a73f5a209e9d6581856bb16819a90c3ffc6ab5e0e75158e0e48783ec236dd11aa6883af5c0d7731913a5fe3e1dfddf5e665312fe73821a32e804
data/README.md CHANGED
@@ -23,6 +23,12 @@ In order to enable SQL logging in your application, you'll simply need to add th
23
23
  require 'lograge/sql/extension'
24
24
  ```
25
25
 
26
+ By default, Lograge::Sql disables default logging on ActiveRecord. To preserve default logging, add this to your lograge initializer:
27
+
28
+ ```ruby
29
+ config.lograge_sql.keep_default_active_record_log = true
30
+ ```
31
+
26
32
  ## Customization
27
33
 
28
34
  By default, the format is a string concatenation of the query name, the query duration and the query itself joined by `\n` newline:
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lograge
4
+ # Log subscriber to replace ActiveRecord's default one
5
+ class ActiveRecordLogSubscriber < ActiveSupport::LogSubscriber
6
+ # Every time there's an SQL query, stores it into the Thread.
7
+ # They'll later be access from the RequestLogSubscriber.
8
+ def sql(event)
9
+ ActiveRecord::LogSubscriber.runtime += event.duration
10
+ return if event.payload[:name] == 'SCHEMA'
11
+
12
+ Lograge::Sql.store[:lograge_sql_queries] ||= []
13
+ Lograge::Sql.store[:lograge_sql_queries] << Lograge::Sql.extract_event.call(event)
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'lograge/active_record_log_subscriber'
4
+
3
5
  module Lograge
4
6
  module Sql
5
7
  # Module used to extend Lograge
@@ -24,29 +26,8 @@ module Lograge
24
26
  end
25
27
  end
26
28
 
27
- module Lograge
28
- # Log subscriber to replace ActiveRecord's default one
29
- class ActiveRecordLogSubscriber < ActiveSupport::LogSubscriber
30
- # Every time there's an SQL query, stores it into the Thread.
31
- # They'll later be access from the RequestLogSubscriber.
32
- def sql(event)
33
- ActiveRecord::LogSubscriber.runtime += event.duration
34
- return if event.payload[:name] == 'SCHEMA'
35
-
36
- Lograge::Sql.store[:lograge_sql_queries] ||= []
37
- Lograge::Sql.store[:lograge_sql_queries] << Lograge::Sql.extract_event.call(event)
38
- end
39
- end
40
- end
41
-
42
29
  if defined?(Lograge::RequestLogSubscriber)
43
30
  Lograge::RequestLogSubscriber.prepend Lograge::Sql::Extension
44
31
  else
45
32
  Lograge::LogSubscribers::ActionController.prepend Lograge::Sql::Extension
46
33
  end
47
-
48
- ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
49
- Lograge.unsubscribe(:active_record, subscriber) if subscriber.is_a?(ActiveRecord::LogSubscriber)
50
- end
51
-
52
- Lograge::ActiveRecordLogSubscriber.attach_to :active_record
@@ -10,8 +10,8 @@ module Lograge
10
10
  # To ensure that configuration is not nil when initialise Lograge::Sql.setup
11
11
  config.lograge_sql = ActiveSupport::OrderedOptions.new
12
12
 
13
- config.after_initialize do |app|
14
- Lograge::Sql.setup(app.config.lograge_sql)
13
+ config.to_prepare do
14
+ Lograge::Sql.setup(Rails.application.config.lograge_sql)
15
15
  end
16
16
  end
17
17
  end
@@ -3,6 +3,6 @@
3
3
  module Lograge
4
4
  module Sql
5
5
  # Gem version
6
- VERSION = '1.1.0'
6
+ VERSION = '2.0.0'
7
7
  end
8
8
  end
data/lib/lograge/sql.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'lograge/sql/version'
4
4
 
5
+ # Main Lograge module
5
6
  module Lograge
6
7
  # Main gem module
7
8
  module Sql
@@ -15,8 +16,21 @@ module Lograge
15
16
  def setup(config)
16
17
  Lograge::Sql.formatter = config.formatter || default_formatter
17
18
  Lograge::Sql.extract_event = config.extract_event || default_extract_event
19
+
20
+ # Disable existing ActiveRecord logging
21
+ unless config.keep_default_active_record_log
22
+ ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
23
+ Lograge.unsubscribe(:active_record, subscriber) if subscriber.is_a?(ActiveRecord::LogSubscriber)
24
+ end
25
+ end
26
+
27
+ return unless defined?(Lograge::ActiveRecordLogSubscriber)
28
+
29
+ Lograge::ActiveRecordLogSubscriber.attach_to(:active_record)
18
30
  end
19
31
 
32
+ # Gets the store, preferring RequestStore if the gem is found.
33
+ # @return [Hash, Thread] the RequestStore or the current Thread.
20
34
  def store
21
35
  defined?(RequestStore) ? RequestStore.store : Thread.current
22
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lograge-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Giuffrida
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-23 00:00:00.000000000 Z
11
+ date: 2022-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,104 +16,48 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4'
19
+ version: '5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '4'
29
+ version: '5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: lograge
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.4'
39
+ version: '0.11'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.4'
47
- - !ruby/object:Gem::Dependency
48
- name: bundler
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '2.0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '2.0'
46
+ version: '0.11'
61
47
  - !ruby/object:Gem::Dependency
62
48
  name: rake
63
49
  requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '10.0'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '10.0'
75
- - !ruby/object:Gem::Dependency
76
- name: rspec
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '3.0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '3.0'
89
- - !ruby/object:Gem::Dependency
90
- name: rubocop
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
50
  requirements:
100
51
  - - ">="
101
52
  - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: rubocop-performance
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
53
+ version: 12.3.3
110
54
  type: :development
111
55
  prerelease: false
112
56
  version_requirements: !ruby/object:Gem::Requirement
113
57
  requirements:
114
58
  - - ">="
115
59
  - !ruby/object:Gem::Version
116
- version: '0'
60
+ version: 12.3.3
117
61
  description: An extension for Lograge to log SQL queries
118
62
  email:
119
63
  - giuffrida.mattia@gmail.com
@@ -121,22 +65,13 @@ executables: []
121
65
  extensions: []
122
66
  extra_rdoc_files: []
123
67
  files:
124
- - ".gitignore"
125
- - ".rspec"
126
- - ".rubocop.yml"
127
- - ".travis.yml"
128
- - Gemfile
129
68
  - README.md
130
69
  - Rakefile
131
- - bin/console
132
- - bin/setup
133
- - gemfiles/lograge10.gemfile
134
- - gemfiles/lograge11.gemfile
70
+ - lib/lograge/active_record_log_subscriber.rb
135
71
  - lib/lograge/sql.rb
136
72
  - lib/lograge/sql/extension.rb
137
73
  - lib/lograge/sql/railtie.rb
138
74
  - lib/lograge/sql/version.rb
139
- - lograge-sql.gemspec
140
75
  homepage: https://github.com/iMacTia/lograge-sql
141
76
  licenses:
142
77
  - MIT
@@ -149,15 +84,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
84
  requirements:
150
85
  - - ">="
151
86
  - !ruby/object:Gem::Version
152
- version: '0'
87
+ version: 2.5.0
153
88
  required_rubygems_version: !ruby/object:Gem::Requirement
154
89
  requirements:
155
90
  - - ">="
156
91
  - !ruby/object:Gem::Version
157
92
  version: '0'
158
93
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.7.7
94
+ rubygems_version: 3.1.6
161
95
  signing_key:
162
96
  specification_version: 4
163
97
  summary: An extension for Lograge to log SQL queries
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- .idea
11
- *.gem
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
data/.rubocop.yml DELETED
@@ -1,22 +0,0 @@
1
- require:
2
- - rubocop-performance
3
-
4
- AllCops:
5
- DisplayCopNames: true
6
- DisplayStyleGuide: true
7
- TargetRubyVersion: 2.3
8
- Exclude:
9
- - gemfiles/vendor/bundle/**/*
10
-
11
- Metrics/BlockLength:
12
- Exclude:
13
- - spec/**/*.rb
14
-
15
- Metrics/LineLength:
16
- Max: 120
17
- Exclude:
18
- - spec/**/*.rb
19
-
20
- Style/Documentation:
21
- Exclude:
22
- - 'spec/**/*'
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.4
5
- - 2.5
6
- - 2.6
7
- - ruby-head
8
- gemfile:
9
- - gemfiles/lograge10.gemfile
10
- - gemfiles/lograge11.gemfile
11
- before_install:
12
- - gem update --system
13
- - gem install bundler
14
- jobs:
15
- include:
16
- - stage: linting
17
- rvm: 2.6
18
- gemfile: gemfiles/lograge11.gemfile # Only run on 1 gemfile
19
- install: true # Do not bundle install
20
- script: gem install rubocop rubocop-performance --no-document && rubocop
21
- stages:
22
- - linting
23
- - test
24
- deploy:
25
- provider: rubygems
26
- api_key:
27
- secure: xlc4BM+5ljo4cO2FC71KbhbVGVYd3NMxhZPat/Y37vo6b5/I01D+Z+K84azMvhIZa+O17cA56FGqT6P0XYfcjZVnYzixpyRlbffKBGNPcIFj2UklWk2BDOojezHPEQnbR2f0jE2+8jHtAb9qyoBTbTlvsW3+svd76+53TxMW1PgGF9+1xdtlEumF1q+IYRL+5TzDLk9GyQ+3RmVd9KBVvQIxxUpn4COJohmQWnv98ZzluX4I/QUt3k4o+etUINPewyg3S+VNP0u+K9HGkY3TL8OpUbCS3Syr3OydwzgpXIBlW+kWVez5/qZn3pd6oSpNEUF9Mh3NhaVsDacFSh6XgGNgww+isazyAROsledK2GsEOH0Hi6gpia/Ny5cD5TFAiGshMcUIb2K4roI3AW9kJ2e59hoC+QvPy64IybO/dhaKcxwX8F4qq3Fk/8EzQV5eOTq0Iai5aYNJaGZUqHV/X4DiMwDk/JoyQVYE+2CMF/PlZIFV4LuegDArVXYh5w3Qo9vYDfNp7Hfv0w5XgpEqAhk+Dabl+BlVhzSM/Cf28i6OVAhLURnGMNKhQEi3/4EusaM/cOQlM5QKWweAPfOwDKMFUoj9+Rtr0FfSyNzerG9dlGuzEKOlqq+XuOQ7RfDUV4+bn2PwbYo5XwMKz1Y8FWUZTz6l14miaw8Yq7U0GU8=
28
- gem: lograge-sql
29
- on:
30
- tags: true
31
- repo: iMacTia/lograge-sql
32
- rvm: 2.6
33
-
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- # Specify your gem's dependencies in lograge-sql.gemspec
6
- gemspec
data/bin/console DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'bundler/setup'
5
- require 'lograge/sql'
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require 'irb'
15
- IRB.start
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'lograge', '~> 0.10.0'
6
-
7
- gemspec path: '../'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gem 'lograge', '~> 0.11.0'
6
-
7
- gemspec path: '../'
data/lograge-sql.gemspec DELETED
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'lograge/sql/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'lograge-sql'
9
- spec.version = Lograge::Sql::VERSION
10
- spec.authors = ['Mattia Giuffrida']
11
- spec.email = ['giuffrida.mattia@gmail.com']
12
-
13
- spec.summary = 'An extension for Lograge to log SQL queries'
14
- spec.description = 'An extension for Lograge to log SQL queries'
15
- spec.homepage = 'https://github.com/iMacTia/lograge-sql'
16
- spec.license = 'MIT'
17
-
18
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- spec.bindir = 'exe'
20
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
- spec.require_paths = ['lib']
22
-
23
- spec.add_runtime_dependency 'activerecord', '>= 4', '< 7.0'
24
- spec.add_runtime_dependency 'lograge', '~> 0.4'
25
-
26
- spec.add_development_dependency 'bundler', '~> 2.0'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec', '~> 3.0'
29
- spec.add_development_dependency 'rubocop'
30
- spec.add_development_dependency 'rubocop-performance'
31
- end