Skip to content

Conversation

@tagliala
Copy link
Member

The response_handler method in lib/hawk/http.rb previously used the variable name it to store request information for error messages.

Ruby 3.4 introduces a new special variable it for single-line blocks. Using it as a local variable can now cause confusion or unexpected behavior, especially as Ruby evolves. The new RuboCop Style/ItAssignment cop enforces this best practice.

This commit renames the local variable it for clarity and future compatibility. No functional changes.

Additionally, use interpolation instead of array join for performance

Comparison (IPS):
       interpolation:  6610794.3 i/s
                join:  6103137.6 i/s - 1.08x  (± 0.00) slower

Comparison (Memory):
       interpolation:         80 allocated
                join:        120 allocated - 1.50x more

See: https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/

The `response_handler` method in `lib/hawk/http.rb` previously used the
variable name `it` to store request information for error messages.

Ruby 3.4 introduces a new special variable `it` for single-line blocks.
Using `it` as a local variable can now cause confusion or unexpected
behavior, especially as Ruby evolves. The new RuboCop Style/ItAssignment
cop enforces this best practice.

This commit renames the local variable `it` for clarity and future
compatibility. No functional changes.

Additionally, use interpolation instead of array join for performance

```
Comparison (IPS):
       interpolation:  6610794.3 i/s
                join:  6103137.6 i/s - 1.08x  (± 0.00) slower

Comparison (Memory):
       interpolation:         80 allocated
                join:        120 allocated - 1.50x more
```

See: https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/
@tagliala tagliala requested a review from Copilot July 26, 2025 10:04
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR modernizes variable naming and improves performance in the HTTP response handler to comply with Ruby 3.4 standards. The change addresses a RuboCop Style/ItAssignment cop violation by renaming a local variable that conflicts with Ruby 3.4's new special it variable.

Key changes:

  • Renamed local variable it to req_info for Ruby 3.4 compatibility
  • Replaced array join with string interpolation for better performance
  • Updated all error message references to use the new variable name
Comments suppressed due to low confidence (1)

lib/hawk/http.rb:128

  • [nitpick] The variable name req_info is somewhat generic. Consider a more descriptive name like request_description or request_summary to better convey that it represents a formatted string for error messages.
      req_info = "#{meth} #{url}"

@tagliala tagliala merged commit 1ed3a21 into master Jul 26, 2025
24 checks passed
@tagliala tagliala deleted the chore/no-it-assignment branch July 26, 2025 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants