eager_eye 1.1.1 → 1.1.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: 8b6c076a6dd51cb872bfb213cbb83369a7d9f159bb20054b41901710b738b4df
4
- data.tar.gz: 15850c235c48858cbbb2585c83ffaeacf1331a029b959f973aede31ef584ae24
3
+ metadata.gz: 22770991f73a5bc9ca8694ae4e45212fc6c0517036dad5a8734a11af90aa4496
4
+ data.tar.gz: bcdbdf3076b011a7a4eb83d62d34b4173d7f6c5cb1dff3c0ac767bbd0f47c316
5
5
  SHA512:
6
- metadata.gz: 0454d92551dcc8d96ae35513ae89c3198a707ee6aac43538c7233d679cb9328c9190c8def794736c53cf61b06419051baa937a9358288a046590de14d15c22b1
7
- data.tar.gz: bfd0dc368252cf5d0118a5dcf912b981ea02bf6f158a80a59a1fc475f0f5810c302c223c4126dfc639f8a5ad5e8be3fbcfd3ed87d5c21d3e148405a5f5033b1a
6
+ metadata.gz: fcf06b3db031246fcd6549bff94a13f5e30b29da2d72a6e3c2d233fcb9740cf4a60f807e190e3f082620eda08755e90a01e96915ac873f4205f3938c44de1e8a
7
+ data.tar.gz: 93a926cb2d961f1b5c8341df4c7ac0dbcb3d482e9bbc00b61b7d84ed3c457432611792f999d9c02b7dcb164cf3d238c561d89392b5cb67bb287e57dcbb008a12
data/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.1.2] - 2026-01-04
11
+
12
+ ### Fixed
13
+
14
+ - **CallbackQuery False Positive** - Only flag iterations that contain actual AR query methods
15
+ - Non-AR iterations (Redis, Sidekiq, mailers) are no longer flagged
16
+ - `Sidekiq::ScheduledSet.new.select { |job| ... }.each(&:delete)` no longer triggers warning
17
+
10
18
  ## [1.1.1] - 2026-01-03
11
19
 
12
20
  ### Fixed
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://github.com/hamzagedikkaya/eager_eye/actions/workflows/main.yml"><img src="https://github.com/hamzagedikkaya/eager_eye/actions/workflows/main.yml/badge.svg" alt="CI"></a>
13
- <a href="https://rubygems.org/gems/eager_eye"><img src="https://img.shields.io/badge/gem-v1.1.1-red.svg" alt="Gem Version"></a>
13
+ <a href="https://rubygems.org/gems/eager_eye"><img src="https://img.shields.io/badge/gem-v1.1.2-red.svg" alt="Gem Version"></a>
14
14
  <a href="https://github.com/hamzagedikkaya/eager_eye"><img src="https://img.shields.io/badge/coverage-95%25-brightgreen.svg" alt="Coverage"></a>
15
15
  <a href="https://www.ruby-lang.org/"><img src="https://img.shields.io/badge/ruby-%3E%3D%203.1-ruby.svg" alt="Ruby"></a>
16
16
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
@@ -85,8 +85,10 @@ module EagerEye
85
85
 
86
86
  if iteration_block?(node)
87
87
  block_var = extract_block_variable(node)
88
- add_iteration_issue(node, method_name, callback_type)
89
- find_query_calls_in_block(node, method_name, callback_type, block_var) if block_var
88
+ if block_var && contains_ar_query_on_variable?(node, block_var)
89
+ add_iteration_issue(node, method_name, callback_type)
90
+ find_query_calls_in_block(node, method_name, callback_type, block_var)
91
+ end
90
92
  end
91
93
 
92
94
  node.children.each { |child| find_iterations_with_queries(child, method_name, callback_type) }
@@ -155,6 +157,13 @@ module EagerEye
155
157
  false
156
158
  end
157
159
  end
160
+
161
+ def contains_ar_query_on_variable?(node, block_var)
162
+ return false unless node.is_a?(Parser::AST::Node)
163
+ return true if query_call?(node) && receiver_chain_starts_with?(node.children[0], block_var)
164
+
165
+ node.children.any? { |child| contains_ar_query_on_variable?(child, block_var) }
166
+ end
158
167
  end
159
168
  end
160
169
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EagerEye
4
- VERSION = "1.1.1"
4
+ VERSION = "1.1.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eager_eye
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - hamzagedikkaya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-01-03 00:00:00.000000000 Z
11
+ date: 2026-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast