rubocop-performance 1.22.1 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40d68e8bad13725b44f9a32555e63071765f0d4720439aba66f8b1c2ae61d803
|
4
|
+
data.tar.gz: 02f248b67961365ac64c7f5f99337d03d7a5dc9d57e36dd9ddccd3d2a16b75fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0bc99f145e03f6942e915b3edb51280821f66118d86d3b41bc87bc02ca4225ab8696510b7e77575fc2f05601cdc571a207b7d3c9eddc93e7ad238bc606ce3746
|
7
|
+
data.tar.gz: 91b71a5204257159d636b44dc003f2cc1c2b2bc6f67a17d9054bcdef2921926e3e5b729191107422abe807ac9628d3efa9db9550866233e07a88fb67f4d252b6
|
data/config/default.yml
CHANGED
@@ -326,6 +326,12 @@ Performance/StartWith:
|
|
326
326
|
VersionAdded: '0.36'
|
327
327
|
VersionChanged: '1.10'
|
328
328
|
|
329
|
+
Performance/StringBytesize:
|
330
|
+
Description: "Use `String#bytesize` instead of calculating the size of the bytes array."
|
331
|
+
Safe: false
|
332
|
+
Enabled: 'pending'
|
333
|
+
VersionAdded: '1.23'
|
334
|
+
|
329
335
|
Performance/StringIdentifierArgument:
|
330
336
|
Description: 'Use symbol identifier argument instead of string identifier argument.'
|
331
337
|
Enabled: pending
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Performance
|
6
|
+
# Checks for calls to `#bytes` counting method and suggests using `bytesize` instead.
|
7
|
+
# The `bytesize` method is more efficient and directly returns the size in bytes,
|
8
|
+
# avoiding the intermediate array allocation that `bytes.size` incurs.
|
9
|
+
#
|
10
|
+
# @safety
|
11
|
+
# This cop is unsafe because it assumes that the receiver
|
12
|
+
# responds to `#bytesize` method.
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# # bad
|
16
|
+
# string_var.bytes.count
|
17
|
+
# "foobar".bytes.size
|
18
|
+
#
|
19
|
+
# # good
|
20
|
+
# string_var.bytesize
|
21
|
+
# "foobar".bytesize
|
22
|
+
class StringBytesize < Base
|
23
|
+
extend AutoCorrector
|
24
|
+
|
25
|
+
MSG = 'Use `String#bytesize` instead of calculating the size of the bytes array.'
|
26
|
+
RESTRICT_ON_SEND = %i[size length count].freeze
|
27
|
+
|
28
|
+
def_node_matcher :string_bytes_method?, <<~MATCHER
|
29
|
+
(call (call !{nil? int} :bytes) {:size :length :count})
|
30
|
+
MATCHER
|
31
|
+
|
32
|
+
def on_send(node)
|
33
|
+
string_bytes_method?(node) do
|
34
|
+
range = node.receiver.loc.selector.begin.join(node.source_range.end)
|
35
|
+
|
36
|
+
add_offense(range) do |corrector|
|
37
|
+
corrector.replace(range, 'bytesize')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
alias on_csend on_send
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -44,6 +44,7 @@ require_relative 'performance/select_map'
|
|
44
44
|
require_relative 'performance/size'
|
45
45
|
require_relative 'performance/sort_reverse'
|
46
46
|
require_relative 'performance/squeeze'
|
47
|
+
require_relative 'performance/string_bytesize'
|
47
48
|
require_relative 'performance/start_with'
|
48
49
|
require_relative 'performance/string_identifier_argument'
|
49
50
|
require_relative 'performance/string_include'
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-performance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
8
8
|
- Jonas Arvidsson
|
9
9
|
- Yuji Nakayama
|
10
|
-
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2024-
|
12
|
+
date: 2024-11-14 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rubocop
|
@@ -112,6 +111,7 @@ files:
|
|
112
111
|
- lib/rubocop/cop/performance/sort_reverse.rb
|
113
112
|
- lib/rubocop/cop/performance/squeeze.rb
|
114
113
|
- lib/rubocop/cop/performance/start_with.rb
|
114
|
+
- lib/rubocop/cop/performance/string_bytesize.rb
|
115
115
|
- lib/rubocop/cop/performance/string_identifier_argument.rb
|
116
116
|
- lib/rubocop/cop/performance/string_include.rb
|
117
117
|
- lib/rubocop/cop/performance/string_replacement.rb
|
@@ -130,10 +130,9 @@ metadata:
|
|
130
130
|
homepage_uri: https://docs.rubocop.org/rubocop-performance/
|
131
131
|
changelog_uri: https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md
|
132
132
|
source_code_uri: https://github.com/rubocop/rubocop-performance/
|
133
|
-
documentation_uri: https://docs.rubocop.org/rubocop-performance/1.
|
133
|
+
documentation_uri: https://docs.rubocop.org/rubocop-performance/1.23/
|
134
134
|
bug_tracker_uri: https://github.com/rubocop/rubocop-performance/issues
|
135
135
|
rubygems_mfa_required: 'true'
|
136
|
-
post_install_message:
|
137
136
|
rdoc_options: []
|
138
137
|
require_paths:
|
139
138
|
- lib
|
@@ -148,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
147
|
- !ruby/object:Gem::Version
|
149
148
|
version: '0'
|
150
149
|
requirements: []
|
151
|
-
rubygems_version: 3.
|
152
|
-
signing_key:
|
150
|
+
rubygems_version: 3.6.0.dev
|
153
151
|
specification_version: 4
|
154
152
|
summary: Automatic performance checking tool for Ruby code.
|
155
153
|
test_files: []
|