lograge-sql 0.3.0 → 0.4.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: 6c781f369bfdc3b5ee7fa14fe03146c929e67a90b3558933e88d520d1908324e
4
- data.tar.gz: c498398d6d5089d9f8362e1f0ab0fec680cfdd80e397195ce75ce6a6860ab951
3
+ metadata.gz: edb09eb5b84cec3d09b2c25e4a33c6e8dd22d7d836f6532e5b4554e1ae31dfab
4
+ data.tar.gz: 646b5d6635260962c7685532e2d574c74df016914a800491688e1be063fa0bba
5
5
  SHA512:
6
- metadata.gz: 265b36d72f2b0a9f6fcdd0f4af6cd07e04088df14be819e3499351230ff314cec3efa07443a2d24d7b0136df9389fb16c0041fae73b1930b01eaa4466c6c8254
7
- data.tar.gz: 623aeb11fcb1b9633b72b54e5d001d84ac558f2fea2fee1fdb7eb43e662e0b756ab2dfdfc99abb55749a657844b51caec94ea8609e2a4122d7cd503289a50d9a
6
+ metadata.gz: 0e99f15caca6f929045901ab7abf57431953e6d157d2423fa52ff781aa5abeb2f21224bce0304b6b127d8d5a50f2d368ad82780673a7b0db5223cbb56f3de1f6
7
+ data.tar.gz: 8425ab339321fbcf3fad76c607ef2097d05a05527837e21daf6e307e67157bdef5eb573e42892d2cbbf53b83cf66729552b473540e29342a6fe6c1d4d95e857b
data/.rubocop.yml ADDED
@@ -0,0 +1,20 @@
1
+ require:
2
+ - rubocop-performance
3
+
4
+ AllCops:
5
+ DisplayCopNames: true
6
+ DisplayStyleGuide: true
7
+ TargetRubyVersion: 2.3
8
+
9
+ Metrics/BlockLength:
10
+ Exclude:
11
+ - spec/**/*.rb
12
+
13
+ Metrics/LineLength:
14
+ Max: 120
15
+ Exclude:
16
+ - spec/**/*.rb
17
+
18
+ Style/Documentation:
19
+ Exclude:
20
+ - 'spec/**/*'
data/.travis.yml CHANGED
@@ -1,7 +1,16 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
4
+ - 2.3
5
+ - 2.4
3
6
  - 2.5
4
- before_install: gem install bundler -v 1.16.2
7
+ - 2.6
8
+ before_install:
9
+ - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
10
+ - gem install bundler -v '~> 1.17'
11
+ gemfile:
12
+ - gemfiles/lograge10.gemfile
13
+ - gemfiles/lograge11.gemfile
5
14
  deploy:
6
15
  provider: rubygems
7
16
  api_key:
@@ -10,5 +19,5 @@ deploy:
10
19
  on:
11
20
  tags: true
12
21
  repo: iMacTia/lograge-sql
13
- rvm: 2.5
22
+ rvm: 2.6
14
23
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in lograge-sql.gemspec
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'lograge/sql'
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'lograge', '~> 0.10.0'
6
+
7
+ gemspec path: '../'
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'lograge', '~> 0.11.0'
6
+
7
+ gemspec path: '../'
data/lib/lograge/sql.rb CHANGED
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'lograge/sql/version'
2
4
 
3
5
  module Lograge
6
+ # Main gem module
4
7
  module Sql
5
-
6
8
  class << self
7
-
8
9
  # Format SQL log
9
10
  attr_accessor :formatter
10
11
  # Extract information from SQL event
@@ -20,21 +21,19 @@ module Lograge
20
21
 
21
22
  # By default, the output is a concatenated string of all extracted events
22
23
  def default_formatter
23
- Proc.new do |sql_queries|
24
+ proc do |sql_queries|
24
25
  %('#{sql_queries.join("\n")}')
25
26
  end
26
27
  end
27
28
 
28
- # By default, only extract values required for the default_formatter and
29
+ # By default, only extract values required for the default_formatter and
29
30
  # already convert to a string
30
31
  def default_extract_event
31
- Proc.new do |event|
32
+ proc do |event|
32
33
  "#{event.payload[:name]} (#{event.duration.to_f.round(2)}) #{event.payload[:sql]}"
33
34
  end
34
35
  end
35
-
36
36
  end
37
-
38
37
  end
39
38
  end
40
39
 
@@ -1,10 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lograge
2
4
  module Sql
5
+ # Module used to extend Lograge
3
6
  module Extension
7
+ # Overrides `Lograge::RequestLogSubscriber#extract_request` do add SQL queries
4
8
  def extract_request(event, payload)
5
9
  super.merge!(extract_sql_queries)
6
10
  end
7
11
 
12
+ # Collects all SQL queries stored in the Thread during request processing
8
13
  def extract_sql_queries
9
14
  sql_queries = Thread.current[:lograge_sql_queries]
10
15
  return {} unless sql_queries
@@ -20,17 +25,25 @@ module Lograge
20
25
  end
21
26
 
22
27
  module Lograge
28
+ # Log subscriber to replace ActiveRecord's default one
23
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.
24
32
  def sql(event)
25
33
  ActiveRecord::LogSubscriber.runtime += event.duration
26
34
  return if event.payload[:name] == 'SCHEMA'
35
+
27
36
  Thread.current[:lograge_sql_queries] ||= []
28
37
  Thread.current[:lograge_sql_queries] << Lograge::Sql.extract_event.call(event)
29
38
  end
30
39
  end
31
40
  end
32
41
 
33
- Lograge::RequestLogSubscriber.prepend Lograge::Sql::Extension
42
+ if defined?(Lograge::RequestLogSubscriber)
43
+ Lograge::RequestLogSubscriber.prepend Lograge::Sql::Extension
44
+ else
45
+ Lograge::LogSubscribers::ActionController.prepend Lograge::Sql::Extension
46
+ end
34
47
 
35
48
  ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
36
49
  Lograge.unsubscribe(:active_record, subscriber) if subscriber.is_a?(ActiveRecord::LogSubscriber)
@@ -1,8 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/railtie'
2
4
  require 'active_support/ordered_options'
3
5
 
4
6
  module Lograge
5
7
  module Sql
8
+ # Railtie to automatically setup in Rails
6
9
  class Railtie < Rails::Railtie
7
10
  # To ensure that configuration is not nil when initialise Lograge::Sql.setup
8
11
  config.lograge_sql = ActiveSupport::OrderedOptions.new
@@ -12,4 +15,4 @@ module Lograge
12
15
  end
13
16
  end
14
17
  end
15
- end
18
+ end
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lograge
2
4
  module Sql
3
- VERSION = '0.3.0'
5
+ # Gem version
6
+ VERSION = '0.4.0'
4
7
  end
5
8
  end
data/lograge-sql.gemspec CHANGED
@@ -1,5 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'lograge/sql/version'
5
6
 
@@ -9,8 +10,8 @@ Gem::Specification.new do |spec|
9
10
  spec.authors = ['Mattia Giuffrida']
10
11
  spec.email = ['giuffrida.mattia@gmail.com']
11
12
 
12
- spec.summary = %q{An extension for Lograge to log SQL queries}
13
- spec.description = %q{An extension for Lograge to log SQL queries}
13
+ spec.summary = 'An extension for Lograge to log SQL queries'
14
+ spec.description = 'An extension for Lograge to log SQL queries'
14
15
  spec.homepage = 'https://github.com/iMacTia/lograge-sql'
15
16
  spec.license = 'MIT'
16
17
 
@@ -19,10 +20,12 @@ Gem::Specification.new do |spec|
19
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
21
  spec.require_paths = ['lib']
21
22
 
22
- spec.add_runtime_dependency 'lograge', '~> 0.4'
23
23
  spec.add_runtime_dependency 'activerecord', '>= 4', '< 6.0'
24
+ spec.add_runtime_dependency 'lograge', '~> 0.4'
24
25
 
25
26
  spec.add_development_dependency 'bundler', '~> 1.0'
26
27
  spec.add_development_dependency 'rake', '~> 10.0'
27
28
  spec.add_development_dependency 'rspec', '~> 3.0'
29
+ spec.add_development_dependency 'rubocop'
30
+ spec.add_development_dependency 'rubocop-performance'
28
31
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lograge-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mattia Giuffrida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-07 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: lograge
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.4'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.4'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: activerecord
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +30,20 @@ dependencies:
44
30
  - - "<"
45
31
  - !ruby/object:Gem::Version
46
32
  version: '6.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: lograge
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.4'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.4'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,34 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
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
+ requirements:
100
+ - - ">="
101
+ - !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'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
89
117
  description: An extension for Lograge to log SQL queries
90
118
  email:
91
119
  - giuffrida.mattia@gmail.com
@@ -95,12 +123,15 @@ extra_rdoc_files: []
95
123
  files:
96
124
  - ".gitignore"
97
125
  - ".rspec"
126
+ - ".rubocop.yml"
98
127
  - ".travis.yml"
99
128
  - Gemfile
100
129
  - README.md
101
130
  - Rakefile
102
131
  - bin/console
103
132
  - bin/setup
133
+ - gemfiles/lograge10.gemfile
134
+ - gemfiles/lograge11.gemfile
104
135
  - lib/lograge/sql.rb
105
136
  - lib/lograge/sql/extension.rb
106
137
  - lib/lograge/sql/railtie.rb
@@ -125,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
156
  - !ruby/object:Gem::Version
126
157
  version: '0'
127
158
  requirements: []
128
- rubyforge_project:
129
- rubygems_version: 2.7.8
159
+ rubygems_version: 3.0.3
130
160
  signing_key:
131
161
  specification_version: 4
132
162
  summary: An extension for Lograge to log SQL queries