eager_eye 1.0.6 → 1.0.7

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: c0eccf7e9da999d8e273e9b41a11c96eb1284fdd944ce6af0e547f4201a3fbb9
4
- data.tar.gz: 55b8ab8e753245bc5b638705bff5a0c10115c0f39f44d69f25f5b50dcb823ffa
3
+ metadata.gz: f19a4d72ee31d2ea100782d4fd9da6594db5f9ec78e9290723461441f58e264d
4
+ data.tar.gz: d8b347ecb77010db7ebff3db74610de1516c653991d7264321f302d2b3eaf0ea
5
5
  SHA512:
6
- metadata.gz: 9f41668f38474f848cffe0e70473c689c27eb9a102a20cdc932f1039a2c4dce71cb91eda4fa2bb1012136d48b93976cb33ad8455a3e01db2a2c400037a75420e
7
- data.tar.gz: 2d8f591ee31948302c8a14fe2deef868bc98e2d7fd23083c39a6ee8e9242296e25080938f4e00cef24757c2d2ec6df512d7e6ef144945420de593168e0d71e96
6
+ metadata.gz: 6e676774f31b89d5a6948dda61c18e6c08a522f83c224d796a16dc954f3ae2fd6ef63e91bb1d4e9afe652ab4447538af5e521875bc2544833cabf429549582ff
7
+ data.tar.gz: a6bde55b11a3cb95f2550ddd5592b855e2ed6accd36abf3e1fb33f00ba34343291e0eab1a17253de95990c876a9119d15ef1b9e2548cc706e7dea0c6c446a510
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.0.7] - 2025-12-24
11
+
12
+ ### Fixed
13
+
14
+ - Fixed `invalid byte sequence in US-ASCII` error when parsing files containing non-ASCII characters (Turkish, Chinese, etc.)
15
+ - Now properly encodes source code to UTF-8 with replacement for invalid/undefined characters
16
+ - Fixes crash when analyzing files with special characters in comments or strings
17
+
10
18
  ## [1.0.6] - 2025-12-22
11
19
 
12
20
  ### Fixed
data/README.md CHANGED
@@ -1,15 +1,27 @@
1
- # EagerEye
2
-
3
- [![CI](https://github.com/hamzagedikkaya/eager_eye/actions/workflows/main.yml/badge.svg)](https://github.com/hamzagedikkaya/eager_eye/actions/workflows/main.yml)
4
- [![Gem Version](https://img.shields.io/badge/gem-v1.0.6-red.svg)](https://rubygems.org/gems/eager_eye)
5
- [![Coverage](https://img.shields.io/badge/coverage-95%25-brightgreen.svg)](https://github.com/hamzagedikkaya/eager_eye)
6
- [![Ruby](https://img.shields.io/badge/ruby-%3E%3D%203.1-ruby.svg)](https://www.ruby-lang.org/)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![VS Code Extension](https://img.shields.io/badge/VS%20Code-Extension-blue.svg)](https://marketplace.visualstudio.com/items?itemName=hamzagedikkaya.eager-eye)
9
-
10
- **Static analysis tool for detecting N+1 queries in Rails applications.**
11
-
12
- EagerEye analyzes your Ruby code without running it, using AST (Abstract Syntax Tree) parsing to find potential N+1 query issues before they hit production.
1
+ <p align="center">
2
+ <img src="images/icon.png" alt="EagerEye Logo" width="140">
3
+ </p>
4
+
5
+ <h1 align="center">EagerEye</h1>
6
+
7
+ <p align="center">
8
+ <strong>Static analysis tool for detecting N+1 queries in Rails applications.</strong>
9
+ </p>
10
+
11
+ <p align="center">
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.0.7-red.svg" alt="Gem Version"></a>
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
+ <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
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
17
+ <a href="https://marketplace.visualstudio.com/items?itemName=hamzagedikkaya.eager-eye"><img src="https://img.shields.io/badge/VS%20Code-Extension-blue.svg" alt="VS Code Extension"></a>
18
+ </p>
19
+
20
+ <p align="center">
21
+ <em>Analyze your Ruby code without running it — find N+1 query issues before they hit production using AST parsing.</em>
22
+ </p>
23
+
24
+ ---
13
25
 
14
26
  ## Why EagerEye?
15
27
 
data/images/icon.png ADDED
Binary file
@@ -10,8 +10,8 @@ module EagerEye
10
10
  BLOCK_DISABLE_PATTERN = /eager_eye:disable\s+(.+?)(?:\s+--|$)/i
11
11
 
12
12
  def initialize(source_code)
13
- @source_code = source_code
14
- @lines = source_code.lines
13
+ @source_code = source_code.encode("UTF-8", invalid: :replace, undef: :replace)
14
+ @lines = @source_code.lines
15
15
  @disabled_ranges = Hash.new { |h, k| h[k] = [] }
16
16
  @file_disabled = Set.new
17
17
  @current_disabled = Set.new
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EagerEye
4
- VERSION = "1.0.6"
4
+ VERSION = "1.0.7"
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.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - hamzagedikkaya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-12-22 00:00:00.000000000 Z
11
+ date: 2025-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -58,6 +58,7 @@ files:
58
58
  - SECURITY.md
59
59
  - examples/github_action.yml
60
60
  - exe/eager_eye
61
+ - images/icon.png
61
62
  - lib/eager_eye.rb
62
63
  - lib/eager_eye/analyzer.rb
63
64
  - lib/eager_eye/auto_fixer.rb