n_plus_one_control 0.7.0 → 0.7.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: 0fed1df4b3bee8844b57b4d4201802361b5871d93db3fdb0132a4073fd56fc3a
4
- data.tar.gz: 56649719e9b94ed7eb05ccf3c6236399a6a2a9394ce37574a8e58f079b1ff3b4
3
+ metadata.gz: 62e4c8f58eb8d2e5644c2a99105d17846af7a1d7df6010326ac617b329305af6
4
+ data.tar.gz: e2701d8c11ad8744ceb5ce3eb6b54a06e587e595e9a5cdd0203a42fbcb548059
5
5
  SHA512:
6
- metadata.gz: cae71e3487fb5210bd6dd76ae0cf7ee1bb310748a3e3a9cd95d893dc2eb99c6fa90c8482366897a7a2e6c8ed479780d337ef2e1284c266fef00e7b67f5f42dad
7
- data.tar.gz: 270f6a75e499ffecd886d98739ccaa5f15ff60a7aebc1ebecc10cc0b2cfdd831137e482897d6ed217f0e60306e2b0350ef22d781a0475ad1a7dfda7563d6fc35
6
+ metadata.gz: 76381aa1bc3f83e407f4cc8694e2133fd1d4b2028dd687c1f9fbb360f7bce943e5aea2939058ba500fcb2a7d7d7498bce484a718a6a7ec85e8de7a300dab7b86
7
+ data.tar.gz: f552c915d68172298a2fa2d14b9325d925bce0b2f2d6e431c2e109134528c684cfb68e6da7a48048346b73c3f371f8fa1c969a58f55a0f5fe3e747854481c321
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 0.7.2 (2024-08-06)
6
+
7
+ - Add ability to ignore queries cached by the ORM with the new option `ignore_cached_queries` ([@gagalago][])
8
+
9
+ ## 0.7.1 (2023-02-17)
10
+
11
+ - Recognize private `#populate` and `#warmup` methods in Minitest classes. ([@palkan][])
12
+
5
13
  ## 0.7.0 (2023-02-17)
6
14
 
7
15
  - Added ability to specify the exact number of expected queries when using constant matchers. ([@akostadinov][], [@palkan][])
@@ -65,3 +73,4 @@ Could be specified via `NPLUSONE_BACKTRACE` env var.
65
73
  [@caalberts]: https://github.com/caalberts
66
74
  [@andrewhampton]: https://github.com/andrewhampton
67
75
  [@akostadinov]: https://github.com/akostadinov
76
+ [@gagalago]: https://github.com/gagalago
data/README.md CHANGED
@@ -331,6 +331,10 @@ self.show_table_stats = true
331
331
  # Ignore matching queries
332
332
  NPlusOneControl.ignore = /^(BEGIN|COMMIT|SAVEPOINT|RELEASE)/
333
333
 
334
+ # Ignore queries in cache
335
+ # https://guides.rubyonrails.org/configuring.html#configuring-query-cache
336
+ NPlusOneControl.ignore_cached_queries = false
337
+
334
338
  # ActiveSupport notifications event to track queries.
335
339
  # We track ActiveRecord event by default,
336
340
  # but can also track rom-rb events ('sql.rom') as well.
@@ -22,6 +22,7 @@ module NPlusOneControl
22
22
  def callback(_name, _start, _finish, _message_id, values) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/LineLength
23
23
  return if %w[CACHE SCHEMA].include? values[:name]
24
24
  return if values[:sql].match?(NPlusOneControl.ignore)
25
+ return if values[:cached] && NPlusOneControl.ignore_cached_queries
25
26
 
26
27
  return unless @pattern.nil? || (values[:sql] =~ @pattern)
27
28
 
@@ -64,11 +64,13 @@ module NPlusOneControl
64
64
  private
65
65
 
66
66
  def warming_up(warmup)
67
- (warmup || (methods.include?(:warmup) ? method(:warmup) : nil))&.call
67
+ own_methods = methods(false) + private_methods(false)
68
+ (warmup || (own_methods.include?(:warmup) ? method(:warmup) : nil))&.call
68
69
  end
69
70
 
70
71
  def population_method
71
- methods.include?(:populate) ? method(:populate) : nil
72
+ own_methods = methods(false) + private_methods(false)
73
+ own_methods.include?(:populate) ? method(:populate) : nil
72
74
  end
73
75
 
74
76
  def linear?(queries, slope:)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NPlusOneControl
4
- VERSION = "0.7.0"
4
+ VERSION = "0.7.2"
5
5
  end
@@ -19,7 +19,7 @@ module NPlusOneControl
19
19
 
20
20
  class << self
21
21
  attr_accessor :default_scale_factors, :verbose, :show_table_stats, :ignore, :event,
22
- :backtrace_cleaner, :backtrace_length, :truncate_query_size
22
+ :backtrace_cleaner, :backtrace_length, :truncate_query_size, :ignore_cached_queries
23
23
 
24
24
  attr_reader :default_matching
25
25
 
@@ -115,6 +115,9 @@ module NPlusOneControl
115
115
  # Ignore matching queries
116
116
  self.ignore = /^(BEGIN|COMMIT|SAVEPOINT|RELEASE)/
117
117
 
118
+ # Ignore queries cached
119
+ self.ignore_cached_queries = false
120
+
118
121
  # ActiveSupport notifications event to track queries.
119
122
  # We track ActiveRecord event by default,
120
123
  # but can also track rom-rb events ('sql.rom') as well.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: n_plus_one_control
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - palkan
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2024-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -112,7 +112,7 @@ metadata:
112
112
  documentation_uri: https://github.com/palkan/n_plus_one_control
113
113
  homepage_uri: https://github.com/palkan/n_plus_one_control
114
114
  source_code_uri: https://github.com/palkan/n_plus_one_control
115
- post_install_message:
115
+ post_install_message:
116
116
  rdoc_options: []
117
117
  require_paths:
118
118
  - lib
@@ -127,8 +127,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  requirements: []
130
- rubygems_version: 3.4.6
131
- signing_key:
130
+ rubygems_version: 3.4.19
131
+ signing_key:
132
132
  specification_version: 4
133
133
  summary: RSpec and Minitest matchers to prevent N+1 queries problem
134
134
  test_files: []