Open
Conversation
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.79.2 to 1.86.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](rubocop/rubocop@v1.79.2...v1.86.1) --- updated-dependencies: - dependency-name: rubocop dependency-version: 1.86.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
4 similar comments
Contributor
Contributor
Contributor
Contributor
Contributor
gem compare json 2.13.2 2.19.3Compared versions: ["2.13.2", "2.19.3"]
DIFFERENT date:
2.13.2: 2025-07-28 00:00:00 UTC
2.19.3: 1980-01-02 00:00:00 UTC
DIFFERENT require_paths:
2.13.2: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.13.2", "lib"]
2.19.3: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3", "lib"]
DIFFERENT rubygems_version:
2.13.2: 3.6.2
2.19.3: 4.0.3
DIFFERENT version:
2.13.2: 2.13.2
2.19.3: 2.19.3
DIFFERENT files:
2.13.2->2.19.3:
* Added:
ext/json/ext/json.h +105/-0
ext/json/ext/vendor/ryu.h +819/-0
lib/json/add/string.rb +35/-0
* Changed:
CHANGES.md +98/-8
LEGAL +12/-0
README.md +19/-1
ext/json/ext/fbuffer/fbuffer.h +47/-66
ext/json/ext/generator/extconf.rb +1/-1
ext/json/ext/generator/generator.c +375/-552
ext/json/ext/parser/extconf.rb +2/-1
ext/json/ext/parser/parser.c +619/-474
ext/json/ext/simd/simd.h +42/-22
ext/json/ext/vendor/fpconv.c +13/-12
lib/json.rb +56/-1
lib/json/add/core.rb +1/-0
lib/json/common.rb +101/-33
lib/json/ext/generator/state.rb +11/-14
lib/json/generic_object.rb +0/-8
lib/json/truffle_ruby/generator.rb +126/-64
lib/json/version.rb +1/-1
DIFFERENT extra_rdoc_files:
2.13.2->2.19.3:
* Changed:
README.md +19/-1 |
3 similar comments
Contributor
gem compare json 2.13.2 2.19.3Compared versions: ["2.13.2", "2.19.3"]
DIFFERENT date:
2.13.2: 2025-07-28 00:00:00 UTC
2.19.3: 1980-01-02 00:00:00 UTC
DIFFERENT require_paths:
2.13.2: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.13.2", "lib"]
2.19.3: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3", "lib"]
DIFFERENT rubygems_version:
2.13.2: 3.6.2
2.19.3: 4.0.3
DIFFERENT version:
2.13.2: 2.13.2
2.19.3: 2.19.3
DIFFERENT files:
2.13.2->2.19.3:
* Added:
ext/json/ext/json.h +105/-0
ext/json/ext/vendor/ryu.h +819/-0
lib/json/add/string.rb +35/-0
* Changed:
CHANGES.md +98/-8
LEGAL +12/-0
README.md +19/-1
ext/json/ext/fbuffer/fbuffer.h +47/-66
ext/json/ext/generator/extconf.rb +1/-1
ext/json/ext/generator/generator.c +375/-552
ext/json/ext/parser/extconf.rb +2/-1
ext/json/ext/parser/parser.c +619/-474
ext/json/ext/simd/simd.h +42/-22
ext/json/ext/vendor/fpconv.c +13/-12
lib/json.rb +56/-1
lib/json/add/core.rb +1/-0
lib/json/common.rb +101/-33
lib/json/ext/generator/state.rb +11/-14
lib/json/generic_object.rb +0/-8
lib/json/truffle_ruby/generator.rb +126/-64
lib/json/version.rb +1/-1
DIFFERENT extra_rdoc_files:
2.13.2->2.19.3:
* Changed:
README.md +19/-1 |
Contributor
gem compare json 2.13.2 2.19.3Compared versions: ["2.13.2", "2.19.3"]
DIFFERENT date:
2.13.2: 2025-07-28 00:00:00 UTC
2.19.3: 1980-01-02 00:00:00 UTC
DIFFERENT require_paths:
2.13.2: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.13.2", "lib"]
2.19.3: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3", "lib"]
DIFFERENT rubygems_version:
2.13.2: 3.6.2
2.19.3: 4.0.3
DIFFERENT version:
2.13.2: 2.13.2
2.19.3: 2.19.3
DIFFERENT files:
2.13.2->2.19.3:
* Added:
ext/json/ext/json.h +105/-0
ext/json/ext/vendor/ryu.h +819/-0
lib/json/add/string.rb +35/-0
* Changed:
CHANGES.md +98/-8
LEGAL +12/-0
README.md +19/-1
ext/json/ext/fbuffer/fbuffer.h +47/-66
ext/json/ext/generator/extconf.rb +1/-1
ext/json/ext/generator/generator.c +375/-552
ext/json/ext/parser/extconf.rb +2/-1
ext/json/ext/parser/parser.c +619/-474
ext/json/ext/simd/simd.h +42/-22
ext/json/ext/vendor/fpconv.c +13/-12
lib/json.rb +56/-1
lib/json/add/core.rb +1/-0
lib/json/common.rb +101/-33
lib/json/ext/generator/state.rb +11/-14
lib/json/generic_object.rb +0/-8
lib/json/truffle_ruby/generator.rb +126/-64
lib/json/version.rb +1/-1
DIFFERENT extra_rdoc_files:
2.13.2->2.19.3:
* Changed:
README.md +19/-1 |
Contributor
gem compare json 2.13.2 2.19.3Compared versions: ["2.13.2", "2.19.3"]
DIFFERENT date:
2.13.2: 2025-07-28 00:00:00 UTC
2.19.3: 1980-01-02 00:00:00 UTC
DIFFERENT require_paths:
2.13.2: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.13.2", "lib"]
2.19.3: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3", "lib"]
DIFFERENT rubygems_version:
2.13.2: 3.6.2
2.19.3: 4.0.3
DIFFERENT version:
2.13.2: 2.13.2
2.19.3: 2.19.3
DIFFERENT files:
2.13.2->2.19.3:
* Added:
ext/json/ext/json.h +105/-0
ext/json/ext/vendor/ryu.h +819/-0
lib/json/add/string.rb +35/-0
* Changed:
CHANGES.md +98/-8
LEGAL +12/-0
README.md +19/-1
ext/json/ext/fbuffer/fbuffer.h +47/-66
ext/json/ext/generator/extconf.rb +1/-1
ext/json/ext/generator/generator.c +375/-552
ext/json/ext/parser/extconf.rb +2/-1
ext/json/ext/parser/parser.c +619/-474
ext/json/ext/simd/simd.h +42/-22
ext/json/ext/vendor/fpconv.c +13/-12
lib/json.rb +56/-1
lib/json/add/core.rb +1/-0
lib/json/common.rb +101/-33
lib/json/ext/generator/state.rb +11/-14
lib/json/generic_object.rb +0/-8
lib/json/truffle_ruby/generator.rb +126/-64
lib/json/version.rb +1/-1
DIFFERENT extra_rdoc_files:
2.13.2->2.19.3:
* Changed:
README.md +19/-1 |
Contributor
|
3 similar comments
Contributor
|
Contributor
|
Contributor
|
Contributor
gem compare parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT date:
1.27.0: 2025-04-14 00:00:00 UTC
2.0.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.27.0: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v1.27.0/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v1.27.0", "wiki_uri" => "https://github.com/grosser/parallel/wiki"}
2.0.1: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v2.0.1", "wiki_uri" => "https://github.com/grosser/parallel/wiki", "changelog_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/CHANGELOG.md", "rubygems_mfa_required" => "true"}
DIFFERENT required_ruby_version:
1.27.0: >= 2.7
2.0.1: >= 3.3
DIFFERENT rubygems_version:
1.27.0: 3.6.2
2.0.1: 4.0.3
DIFFERENT version:
1.27.0: 1.27.0
2.0.1: 2.0.1
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb +69/-34
lib/parallel/version.rb +1/-1 |
Contributor
gem compare json 2.13.2 2.19.3Compared versions: ["2.13.2", "2.19.3"]
DIFFERENT date:
2.13.2: 2025-07-28 00:00:00 UTC
2.19.3: 1980-01-02 00:00:00 UTC
DIFFERENT require_paths:
2.13.2: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.13.2", "lib"]
2.19.3: ["/opt/hostedtoolcache/Ruby/4.0.2/x64/lib/ruby/gems/4.0.0/extensions/x86_64-linux/4.0.0/json-2.19.3", "lib"]
DIFFERENT rubygems_version:
2.13.2: 3.6.2
2.19.3: 4.0.3
DIFFERENT version:
2.13.2: 2.13.2
2.19.3: 2.19.3
DIFFERENT files:
2.13.2->2.19.3:
* Added:
ext/json/ext/json.h +105/-0
ext/json/ext/vendor/ryu.h +819/-0
lib/json/add/string.rb +35/-0
* Changed:
CHANGES.md +98/-8
LEGAL +12/-0
README.md +19/-1
ext/json/ext/fbuffer/fbuffer.h +47/-66
ext/json/ext/generator/extconf.rb +1/-1
ext/json/ext/generator/generator.c +375/-552
ext/json/ext/parser/extconf.rb +2/-1
ext/json/ext/parser/parser.c +619/-474
ext/json/ext/simd/simd.h +42/-22
ext/json/ext/vendor/fpconv.c +13/-12
lib/json.rb +56/-1
lib/json/add/core.rb +1/-0
lib/json/common.rb +101/-33
lib/json/ext/generator/state.rb +11/-14
lib/json/generic_object.rb +0/-8
lib/json/truffle_ruby/generator.rb +126/-64
lib/json/version.rb +1/-1
DIFFERENT extra_rdoc_files:
2.13.2->2.19.3:
* Changed:
README.md +19/-1 |
Contributor
gem compare parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT date:
1.27.0: 2025-04-14 00:00:00 UTC
2.0.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.27.0: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v1.27.0/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v1.27.0", "wiki_uri" => "https://github.com/grosser/parallel/wiki"}
2.0.1: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v2.0.1", "wiki_uri" => "https://github.com/grosser/parallel/wiki", "changelog_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/CHANGELOG.md", "rubygems_mfa_required" => "true"}
DIFFERENT required_ruby_version:
1.27.0: >= 2.7
2.0.1: >= 3.3
DIFFERENT rubygems_version:
1.27.0: 3.6.2
2.0.1: 4.0.3
DIFFERENT version:
1.27.0: 1.27.0
2.0.1: 2.0.1
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb +69/-34
lib/parallel/version.rb +1/-1 |
1 similar comment
Contributor
gem compare parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT date:
1.27.0: 2025-04-14 00:00:00 UTC
2.0.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.27.0: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v1.27.0/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v1.27.0", "wiki_uri" => "https://github.com/grosser/parallel/wiki"}
2.0.1: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v2.0.1", "wiki_uri" => "https://github.com/grosser/parallel/wiki", "changelog_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/CHANGELOG.md", "rubygems_mfa_required" => "true"}
DIFFERENT required_ruby_version:
1.27.0: >= 2.7
2.0.1: >= 3.3
DIFFERENT rubygems_version:
1.27.0: 3.6.2
2.0.1: 4.0.3
DIFFERENT version:
1.27.0: 1.27.0
2.0.1: 2.0.1
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb +69/-34
lib/parallel/version.rb +1/-1 |
Contributor
gem compare --diff parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb
--- /tmp/d20260410-670-g295j7/parallel-1.27.0/lib/parallel.rb 2026-04-10 02:33:46.304636036 +0000
+++ /tmp/d20260410-670-g295j7/parallel-2.0.1/lib/parallel.rb 2026-04-10 02:33:46.304636036 +0000
@@ -17,0 +18,11 @@
+
+ # marshal_dump that is used for ruby exceptions
+ # avoid dumping the cause since nobody needs that and it can include undumpable exceptions
+ def _dump(_depth)
+ Marshal.dump(@value)
+ end
+
+ # marshal_load that is used for ruby exceptions
+ def self._load(data)
+ new(Marshal.load(data))
+ end
@@ -258 +269 @@
- elsif RUBY_PLATFORM =~ (/java/) && !options[:in_processes]
+ elsif RUBY_PLATFORM =~ /java/ && !options[:in_processes]
@@ -462,0 +474,2 @@
+ use_port = defined?(Ractor::Port)
+
@@ -464,13 +477,4 @@
- ractors = Array.new(options.fetch(:count)) do
- Ractor.new do
- loop do
- got = receive
- (klass, method_name), item, index = got
- break if index == :break
- begin
- Ractor.yield [nil, klass.send(method_name, item), item, index]
- rescue StandardError => e
- Ractor.yield [e, nil, item, index]
- end
- end
- end
+ ports = {} # port (ruby 4+) or ractor (ruby 3) => ractor
+ options.fetch(:count).times do
+ port, ractor = ractor_build(use_port)
+ ports[port] = ractor
@@ -480,3 +484,3 @@
- ractors.dup.each do |ractor|
- if (set = job_factory.next)
- item, index = set
+ ports.dup.each do |port, ractor|
+ if (job = job_factory.next)
+ item, index = job
@@ -485,3 +489,3 @@
- else
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
- ractors.delete ractor
+ else # not enough work, `receive` would hang
+ ractor_stop ractor
+ ports.delete port
@@ -491,4 +495,5 @@
- # replace with new items
- while (set = job_factory.next)
- item_next, index_next = set
- done, (exception, result, item, index) = Ractor.select(*ractors)
+ # receive result and send new items to done ractors
+ while (job = job_factory.next)
+ # receive result
+ done_port, (exception, result, item_prev, index_prev) = Ractor.select(*ports.keys)
+ done_ractor = ports[done_port]
@@ -496 +501 @@
- ractors.delete done
+ ports.delete done_port
@@ -499,2 +504 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ ractor_result item_prev, index_prev, result, results, results_mutex, options
@@ -501,0 +506,2 @@
+ # send new
+ item_next, index_next = job
@@ -503 +509 @@
- done.send([callback, item_next, index_next])
+ done_ractor.send([callback, item_next, index_next])
@@ -507,2 +513,2 @@
- ractors.each do |ractor|
- (new_exception, result, item, index) = ractor.take
+ ports.each do |port, ractor|
+ (new_exception, result, item, index) = use_port ? port.receive : ractor.take
@@ -511,3 +517,2 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
+ ractor_result item, index, result, results, results_mutex, options
+ ractor_stop ractor
@@ -518,0 +524,30 @@
+ def ractor_build(use_port)
+ args = use_port ? [Ractor::Port.new] : []
+ ractor = Ractor.new(*args) do |port|
+ loop do
+ (klass, method_name), item, index = receive
+ break if index == :break
+ begin
+ result = [nil, klass.send(method_name, item), item, index]
+ rescue StandardError => e
+ result = [e, nil, item, index]
+ end
+ if port
+ port.send result
+ else
+ Ractor.yield result
+ end
+ end
+ end
+ [use_port ? args.first : ractor, ractor]
+ end
+
+ def ractor_result(item, index, result, results, results_mutex, options)
+ instrument_finish item, index, result, options
+ results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ end
+
+ def ractor_stop(ractor)
+ ractor.send([[nil, nil], nil, :break])
+ end
+
@@ -624 +659 @@
- rescue Exception # # rubocop:disable Lint/RescueException
+ rescue Exception # rubocop:disable Lint/RescueException
lib/parallel/version.rb
--- /tmp/d20260410-670-g295j7/parallel-1.27.0/lib/parallel/version.rb 2026-04-10 02:33:46.304636036 +0000
+++ /tmp/d20260410-670-g295j7/parallel-2.0.1/lib/parallel/version.rb 2026-04-10 02:33:46.304636036 +0000
@@ -3 +3 @@
- VERSION = Version = '1.27.0' # rubocop:disable Naming/ConstantName
+ VERSION = Version = '2.0.1' # rubocop:disable Naming/ConstantName |
Contributor
|
Contributor
gem compare --diff parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb
--- /tmp/d20260410-670-eyy2c9/parallel-1.27.0/lib/parallel.rb 2026-04-10 02:33:53.334599281 +0000
+++ /tmp/d20260410-670-eyy2c9/parallel-2.0.1/lib/parallel.rb 2026-04-10 02:33:53.334599281 +0000
@@ -17,0 +18,11 @@
+
+ # marshal_dump that is used for ruby exceptions
+ # avoid dumping the cause since nobody needs that and it can include undumpable exceptions
+ def _dump(_depth)
+ Marshal.dump(@value)
+ end
+
+ # marshal_load that is used for ruby exceptions
+ def self._load(data)
+ new(Marshal.load(data))
+ end
@@ -258 +269 @@
- elsif RUBY_PLATFORM =~ (/java/) && !options[:in_processes]
+ elsif RUBY_PLATFORM =~ /java/ && !options[:in_processes]
@@ -462,0 +474,2 @@
+ use_port = defined?(Ractor::Port)
+
@@ -464,13 +477,4 @@
- ractors = Array.new(options.fetch(:count)) do
- Ractor.new do
- loop do
- got = receive
- (klass, method_name), item, index = got
- break if index == :break
- begin
- Ractor.yield [nil, klass.send(method_name, item), item, index]
- rescue StandardError => e
- Ractor.yield [e, nil, item, index]
- end
- end
- end
+ ports = {} # port (ruby 4+) or ractor (ruby 3) => ractor
+ options.fetch(:count).times do
+ port, ractor = ractor_build(use_port)
+ ports[port] = ractor
@@ -480,3 +484,3 @@
- ractors.dup.each do |ractor|
- if (set = job_factory.next)
- item, index = set
+ ports.dup.each do |port, ractor|
+ if (job = job_factory.next)
+ item, index = job
@@ -485,3 +489,3 @@
- else
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
- ractors.delete ractor
+ else # not enough work, `receive` would hang
+ ractor_stop ractor
+ ports.delete port
@@ -491,4 +495,5 @@
- # replace with new items
- while (set = job_factory.next)
- item_next, index_next = set
- done, (exception, result, item, index) = Ractor.select(*ractors)
+ # receive result and send new items to done ractors
+ while (job = job_factory.next)
+ # receive result
+ done_port, (exception, result, item_prev, index_prev) = Ractor.select(*ports.keys)
+ done_ractor = ports[done_port]
@@ -496 +501 @@
- ractors.delete done
+ ports.delete done_port
@@ -499,2 +504 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ ractor_result item_prev, index_prev, result, results, results_mutex, options
@@ -501,0 +506,2 @@
+ # send new
+ item_next, index_next = job
@@ -503 +509 @@
- done.send([callback, item_next, index_next])
+ done_ractor.send([callback, item_next, index_next])
@@ -507,2 +513,2 @@
- ractors.each do |ractor|
- (new_exception, result, item, index) = ractor.take
+ ports.each do |port, ractor|
+ (new_exception, result, item, index) = use_port ? port.receive : ractor.take
@@ -511,3 +517,2 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
+ ractor_result item, index, result, results, results_mutex, options
+ ractor_stop ractor
@@ -518,0 +524,30 @@
+ def ractor_build(use_port)
+ args = use_port ? [Ractor::Port.new] : []
+ ractor = Ractor.new(*args) do |port|
+ loop do
+ (klass, method_name), item, index = receive
+ break if index == :break
+ begin
+ result = [nil, klass.send(method_name, item), item, index]
+ rescue StandardError => e
+ result = [e, nil, item, index]
+ end
+ if port
+ port.send result
+ else
+ Ractor.yield result
+ end
+ end
+ end
+ [use_port ? args.first : ractor, ractor]
+ end
+
+ def ractor_result(item, index, result, results, results_mutex, options)
+ instrument_finish item, index, result, options
+ results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ end
+
+ def ractor_stop(ractor)
+ ractor.send([[nil, nil], nil, :break])
+ end
+
@@ -624 +659 @@
- rescue Exception # # rubocop:disable Lint/RescueException
+ rescue Exception # rubocop:disable Lint/RescueException
lib/parallel/version.rb
--- /tmp/d20260410-670-eyy2c9/parallel-1.27.0/lib/parallel/version.rb 2026-04-10 02:33:53.334599281 +0000
+++ /tmp/d20260410-670-eyy2c9/parallel-2.0.1/lib/parallel/version.rb 2026-04-10 02:33:53.334599281 +0000
@@ -3 +3 @@
- VERSION = Version = '1.27.0' # rubocop:disable Naming/ConstantName
+ VERSION = Version = '2.0.1' # rubocop:disable Naming/ConstantName |
Contributor
gem compare parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT date:
1.27.0: 2025-04-14 00:00:00 UTC
2.0.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.27.0: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v1.27.0/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v1.27.0", "wiki_uri" => "https://github.com/grosser/parallel/wiki"}
2.0.1: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v2.0.1", "wiki_uri" => "https://github.com/grosser/parallel/wiki", "changelog_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/CHANGELOG.md", "rubygems_mfa_required" => "true"}
DIFFERENT required_ruby_version:
1.27.0: >= 2.7
2.0.1: >= 3.3
DIFFERENT rubygems_version:
1.27.0: 3.6.2
2.0.1: 4.0.3
DIFFERENT version:
1.27.0: 1.27.0
2.0.1: 2.0.1
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb +69/-34
lib/parallel/version.rb +1/-1 |
Contributor
gem compare --diff parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb
--- /tmp/d20260410-674-nsqhgs/parallel-1.27.0/lib/parallel.rb 2026-04-10 02:33:56.615847912 +0000
+++ /tmp/d20260410-674-nsqhgs/parallel-2.0.1/lib/parallel.rb 2026-04-10 02:33:56.616847914 +0000
@@ -17,0 +18,11 @@
+
+ # marshal_dump that is used for ruby exceptions
+ # avoid dumping the cause since nobody needs that and it can include undumpable exceptions
+ def _dump(_depth)
+ Marshal.dump(@value)
+ end
+
+ # marshal_load that is used for ruby exceptions
+ def self._load(data)
+ new(Marshal.load(data))
+ end
@@ -258 +269 @@
- elsif RUBY_PLATFORM =~ (/java/) && !options[:in_processes]
+ elsif RUBY_PLATFORM =~ /java/ && !options[:in_processes]
@@ -462,0 +474,2 @@
+ use_port = defined?(Ractor::Port)
+
@@ -464,13 +477,4 @@
- ractors = Array.new(options.fetch(:count)) do
- Ractor.new do
- loop do
- got = receive
- (klass, method_name), item, index = got
- break if index == :break
- begin
- Ractor.yield [nil, klass.send(method_name, item), item, index]
- rescue StandardError => e
- Ractor.yield [e, nil, item, index]
- end
- end
- end
+ ports = {} # port (ruby 4+) or ractor (ruby 3) => ractor
+ options.fetch(:count).times do
+ port, ractor = ractor_build(use_port)
+ ports[port] = ractor
@@ -480,3 +484,3 @@
- ractors.dup.each do |ractor|
- if (set = job_factory.next)
- item, index = set
+ ports.dup.each do |port, ractor|
+ if (job = job_factory.next)
+ item, index = job
@@ -485,3 +489,3 @@
- else
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
- ractors.delete ractor
+ else # not enough work, `receive` would hang
+ ractor_stop ractor
+ ports.delete port
@@ -491,4 +495,5 @@
- # replace with new items
- while (set = job_factory.next)
- item_next, index_next = set
- done, (exception, result, item, index) = Ractor.select(*ractors)
+ # receive result and send new items to done ractors
+ while (job = job_factory.next)
+ # receive result
+ done_port, (exception, result, item_prev, index_prev) = Ractor.select(*ports.keys)
+ done_ractor = ports[done_port]
@@ -496 +501 @@
- ractors.delete done
+ ports.delete done_port
@@ -499,2 +504 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ ractor_result item_prev, index_prev, result, results, results_mutex, options
@@ -501,0 +506,2 @@
+ # send new
+ item_next, index_next = job
@@ -503 +509 @@
- done.send([callback, item_next, index_next])
+ done_ractor.send([callback, item_next, index_next])
@@ -507,2 +513,2 @@
- ractors.each do |ractor|
- (new_exception, result, item, index) = ractor.take
+ ports.each do |port, ractor|
+ (new_exception, result, item, index) = use_port ? port.receive : ractor.take
@@ -511,3 +517,2 @@
- instrument_finish item, index, result, options
- results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
- ractor.send([[nil, nil], nil, :break]) # stop the ractor
+ ractor_result item, index, result, results, results_mutex, options
+ ractor_stop ractor
@@ -518,0 +524,30 @@
+ def ractor_build(use_port)
+ args = use_port ? [Ractor::Port.new] : []
+ ractor = Ractor.new(*args) do |port|
+ loop do
+ (klass, method_name), item, index = receive
+ break if index == :break
+ begin
+ result = [nil, klass.send(method_name, item), item, index]
+ rescue StandardError => e
+ result = [e, nil, item, index]
+ end
+ if port
+ port.send result
+ else
+ Ractor.yield result
+ end
+ end
+ end
+ [use_port ? args.first : ractor, ractor]
+ end
+
+ def ractor_result(item, index, result, results, results_mutex, options)
+ instrument_finish item, index, result, options
+ results_mutex.synchronize { results[index] = (options[:preserve_results] == false ? nil : result) }
+ end
+
+ def ractor_stop(ractor)
+ ractor.send([[nil, nil], nil, :break])
+ end
+
@@ -624 +659 @@
- rescue Exception # # rubocop:disable Lint/RescueException
+ rescue Exception # rubocop:disable Lint/RescueException
lib/parallel/version.rb
--- /tmp/d20260410-674-nsqhgs/parallel-1.27.0/lib/parallel/version.rb 2026-04-10 02:33:56.615847912 +0000
+++ /tmp/d20260410-674-nsqhgs/parallel-2.0.1/lib/parallel/version.rb 2026-04-10 02:33:56.616847914 +0000
@@ -3 +3 @@
- VERSION = Version = '1.27.0' # rubocop:disable Naming/ConstantName
+ VERSION = Version = '2.0.1' # rubocop:disable Naming/ConstantName |
Contributor
gem compare parallel 1.27.0 2.0.1Compared versions: ["1.27.0", "2.0.1"]
DIFFERENT date:
1.27.0: 2025-04-14 00:00:00 UTC
2.0.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.27.0: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v1.27.0/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v1.27.0", "wiki_uri" => "https://github.com/grosser/parallel/wiki"}
2.0.1: {"bug_tracker_uri" => "https://github.com/grosser/parallel/issues", "documentation_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/Readme.md", "source_code_uri" => "https://github.com/grosser/parallel/tree/v2.0.1", "wiki_uri" => "https://github.com/grosser/parallel/wiki", "changelog_uri" => "https://github.com/grosser/parallel/blob/v2.0.1/CHANGELOG.md", "rubygems_mfa_required" => "true"}
DIFFERENT required_ruby_version:
1.27.0: >= 2.7
2.0.1: >= 3.3
DIFFERENT rubygems_version:
1.27.0: 3.6.2
2.0.1: 4.0.3
DIFFERENT version:
1.27.0: 1.27.0
2.0.1: 2.0.1
DIFFERENT files:
1.27.0->2.0.1:
* Changed:
lib/parallel.rb +69/-34
lib/parallel/version.rb +1/-1 |
Contributor
gem compare parser 3.3.9.0 3.3.11.1Compared versions: ["3.3.9.0", "3.3.11.1"]
DIFFERENT date:
3.3.9.0: 2025-07-25 00:00:00 UTC
3.3.11.1: 2026-03-27 00:00:00 UTC
DIFFERENT metadata:
3.3.9.0: {"bug_tracker_uri" => "https://github.com/whitequark/parser/issues", "changelog_uri" => "https://github.com/whitequark/parser/blob/v3.3.9.0/CHANGELOG.md", "documentation_uri" => "https://www.rubydoc.info/gems/parser/3.3.9.0", "source_code_uri" => "https://github.com/whitequark/parser/tree/v3.3.9.0"}
3.3.11.1: {"bug_tracker_uri" => "https://github.com/whitequark/parser/issues", "changelog_uri" => "https://github.com/whitequark/parser/blob/v3.3.11.1/CHANGELOG.md", "documentation_uri" => "https://www.rubydoc.info/gems/parser/3.3.11.1", "source_code_uri" => "https://github.com/whitequark/parser/tree/v3.3.11.1"}
DIFFERENT version:
3.3.9.0: 3.3.9.0
3.3.11.1: 3.3.11.1
DIFFERENT files:
3.3.9.0->3.3.11.1:
* Changed:
lib/parser/current.rb +2/-2
lib/parser/meta.rb +1/-1
lib/parser/version.rb +1/-1
parser.gemspec +1/-1
DIFFERENT development dependencies:
3.3.9.0->3.3.11.1:
* Updated:
bundler from: [">= 1.15", "< 3.0.0"] to: [">= 1.15"] |
Contributor
gem compare --diff rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/README.md 2026-04-10 02:36:31.528799013 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/README.md 2026-04-10 02:36:31.543799016 +0000
@@ -5,2 +4,0 @@
-[](https://codeclimate.com/github/rubocop/rubocop-ast/test_coverage)
-[](https://codeclimate.com/github/rubocop/rubocop-ast/maintainability)
lib/rubocop/ast/node.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node.rb 2026-04-10 02:36:31.529799013 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node.rb 2026-04-10 02:36:31.544799016 +0000
@@ -110,0 +111,7 @@
+ str: :any_str,
+ dstr: :any_str,
+ xstr: :any_str,
+
+ sym: :any_sym,
+ dsym: :any_sym,
+
@@ -547,0 +555,8 @@
+ end
+
+ def any_str_type?
+ GROUP_FOR_TYPE[type] == :any_str
+ end
+
+ def any_sym_type?
+ GROUP_FOR_TYPE[type] == :any_sym
lib/rubocop/ast/node/mixin/method_dispatch_node.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:36:31.534799014 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:36:31.549799018 +0000
@@ -35 +35 @@
- if loc.respond_to? :keyword
+ if loc?(:keyword)
lib/rubocop/ast/node/mixin/parameterized_node.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:36:31.535799014 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:36:31.549799018 +0000
@@ -67,0 +68 @@
+
lib/rubocop/ast/node_pattern.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:36:31.539799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:36:31.551799018 +0000
@@ -26,0 +27,2 @@
+ class Invalid < StandardError; end
+
@@ -53 +54,0 @@
- Invalid = Class.new(StandardError)
lib/rubocop/ast/node_pattern/compiler.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:36:31.539799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:36:31.552799018 +0000
@@ -12,0 +13 @@
+
lib/rubocop/ast/node_pattern/compiler/binding.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:36:31.539799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:36:31.552799018 +0000
@@ -28,0 +29,6 @@
+ # Returns currently bound variable names
+ # @return [Array<String>] variable names that are currently bound
+ def bound_variables
+ @bound.values
+ end
+
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:36:31.540799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:36:31.552799018 +0000
@@ -76 +76 @@
- .join(' && ')
+ .join(' && ')
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:36:31.540799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:36:31.552799018 +0000
@@ -88 +88 @@
- def visit_any_order
+ def visit_any_order # rubocop:disable Metrics/AbcSize
@@ -90,0 +91 @@
+ bound_before = compiler.binding.bound_variables
@@ -94,0 +96,4 @@
+ # Initialize unification variables before the loop to persist across iterations
+ newly_bound = compiler.binding.bound_variables - bound_before
+ unify_init = compile_unify_init(newly_bound)
+
@@ -97 +102 @@
- (#{init}#{matched} = {}; true) &&
+ (#{init}#{unify_init}#{matched} = {}; true) &&
@@ -413,0 +419,7 @@
+ end
+
+ # Generate initialization code for unification variables
+ # @param newly_bound [Array<String>] variable names that were newly bound
+ # @return [String] initialization code
+ def compile_unify_init(newly_bound)
+ newly_bound.map { |var| "#{var} = nil; " }.join
lib/rubocop/ast/node_pattern/lexer.rex
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:36:31.540799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:36:31.553799019 +0000
@@ -24 +24 @@
- /"(.+?)"/ { emit :tSTRING }
+ /"(.*?)"/ { emit :tSTRING }
lib/rubocop/ast/node_pattern/lexer.rex.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:36:31.540799015 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:36:31.553799019 +0000
@@ -5 +5 @@
-# Generated by: oedipus_lex version 2.6.2.
+# Generated by: oedipus_lex version 2.6.3.
@@ -125 +125 @@
- when ss.skip(/"(.+?)"/) then
+ when ss.skip(/"(.*?)"/) then
lib/rubocop/ast/processed_source.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/processed_source.rb 2026-04-10 02:36:31.542799016 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/processed_source.rb 2026-04-10 02:36:31.554799019 +0000
@@ -313 +312,0 @@
- require 'prism/translation/parser33'
@@ -316 +314,0 @@
- require 'prism/translation/parser34'
@@ -318,3 +316,4 @@
- when 3.5
- require 'prism/translation/parser35'
- Prism::Translation::Parser35
+ when 3.5, 4.0
+ Prism::Translation::Parser40
+ when 4.1
+ Prism::Translation::Parser41
lib/rubocop/ast/traversal.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/traversal.rb 2026-04-10 02:36:31.542799016 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/traversal.rb 2026-04-10 02:36:31.554799019 +0000
@@ -81,0 +82 @@
+
@@ -88 +89 @@
- lambda empty_else kwnilarg
+ lambda empty_else kwnilarg blocknilarg
lib/rubocop/ast/version.rb
--- /tmp/d20260410-11344-4bosgr/rubocop-ast-1.46.0/lib/rubocop/ast/version.rb 2026-04-10 02:36:31.542799016 +0000
+++ /tmp/d20260410-11344-4bosgr/rubocop-ast-1.49.1/lib/rubocop/ast/version.rb 2026-04-10 02:36:31.554799019 +0000
@@ -6 +6 @@
- STRING = '1.46.0'
+ STRING = '1.49.1' |
Contributor
|
Contributor
gem compare rubocop 1.79.2 1.86.1Compared versions: ["1.79.2", "1.86.1"]
DIFFERENT date:
1.79.2: 2025-08-05 00:00:00 UTC
1.86.1: 1980-01-02 00:00:00 UTC
DIFFERENT metadata:
1.79.2: {"homepage_uri" => "https://rubocop.org/", "changelog_uri" => "https://github.com/rubocop/rubocop/releases/tag/v1.79.2", "source_code_uri" => "https://github.com/rubocop/rubocop/", "documentation_uri" => "https://docs.rubocop.org/rubocop/1.79/", "bug_tracker_uri" => "https://github.com/rubocop/rubocop/issues", "rubygems_mfa_required" => "true"}
1.86.1: {"homepage_uri" => "https://rubocop.org/", "changelog_uri" => "https://github.com/rubocop/rubocop/releases/tag/v1.86.1", "source_code_uri" => "https://github.com/rubocop/rubocop/", "documentation_uri" => "https://docs.rubocop.org/rubocop/1.86/", "bug_tracker_uri" => "https://github.com/rubocop/rubocop/issues", "rubygems_mfa_required" => "true"}
DIFFERENT rubygems_version:
1.79.2: 3.6.2
1.86.1: 3.6.9
DIFFERENT version:
1.79.2: 1.79.2
1.86.1: 1.86.1
DIFFERENT files:
1.79.2->1.86.1:
* Added:
lib/rubocop/cli/command/mcp.rb +19/-0
lib/rubocop/cop/internal_affairs/itblock_handler.rb +69/-0
lib/rubocop/cop/lint/data_define_override.rb +63/-0
lib/rubocop/cop/lint/unreachable_pattern_branch.rb +113/-0
lib/rubocop/cop/mixin/hash_transform_method/autocorrection.rb +63/-0
lib/rubocop/cop/style/array_intersect_with_single_element.rb +47/-0
lib/rubocop/cop/style/empty_class_definition.rb +119/-0
lib/rubocop/cop/style/file_open.rb +84/-0
lib/rubocop/cop/style/hash_lookup_method.rb +101/-0
lib/rubocop/cop/style/map_join.rb +123/-0
lib/rubocop/cop/style/module_member_existence_check.rb +107/-0
lib/rubocop/cop/style/negative_array_index.rb +220/-0
lib/rubocop/cop/style/one_class_per_file.rb +115/-0
lib/rubocop/cop/style/partition_instead_of_double_select.rb +270/-0
lib/rubocop/cop/style/predicate_with_kind.rb +84/-0
lib/rubocop/cop/style/reduce_to_hash.rb +184/-0
lib/rubocop/cop/style/redundant_min_max_by.rb +93/-0
lib/rubocop/cop/style/redundant_struct_keyword_init.rb +114/-0
lib/rubocop/cop/style/reverse_find.rb +51/-0
lib/rubocop/cop/style/select_by_kind.rb +158/-0
lib/rubocop/cop/style/select_by_range.rb +197/-0
lib/rubocop/cop/style/tally_method.rb +181/-0
lib/rubocop/lsp/disable_comment_edits.rb +135/-0
lib/rubocop/mcp/server.rb +200/-0
* Changed:
LICENSE.txt +1/-1
README.md +2/-2
config/default.yml +170/-19
config/obsoletion.yml +9/-0
exe/rubocop +1/-8
lib/rubocop.rb +20/-0
lib/rubocop/cache_config.rb +29/-0
lib/rubocop/cli.rb +32/-5
lib/rubocop/cli/command/auto_generate_config.rb +3/-3
lib/rubocop/cli/command/lsp.rb +1/-1
lib/rubocop/cli/command/show_cops.rb +2/-2
lib/rubocop/cli/command/show_docs_url.rb +1/-1
lib/rubocop/comment_config.rb +62/-17
lib/rubocop/config.rb +14/-10
lib/rubocop/config_finder.rb +1/-1
lib/rubocop/config_loader.rb +20/-21
lib/rubocop/config_loader_resolver.rb +9/-7
lib/rubocop/config_obsoletion/extracted_cop.rb +4/-2
lib/rubocop/config_store.rb +6/-1
lib/rubocop/config_validator.rb +1/-1
lib/rubocop/cop/autocorrect_logic.rb +8/-4
lib/rubocop/cop/bundler/gem_version.rb +28/-28
lib/rubocop/cop/bundler/ordered_gems.rb +1/-2
lib/rubocop/cop/correctors/alignment_corrector.rb +26/-7
lib/rubocop/cop/correctors/condition_corrector.rb +1/-1
lib/rubocop/cop/correctors/for_to_each_corrector.rb +7/-2
lib/rubocop/cop/correctors/percent_literal_corrector.rb +2/-2
lib/rubocop/cop/documentation.rb +2/-3
lib/rubocop/cop/gemspec/ordered_dependencies.rb +1/-2
lib/rubocop/cop/gemspec/require_mfa.rb +1/-1
lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +10/-5
lib/rubocop/cop/internal_affairs.rb +1/-0
lib/rubocop/cop/internal_affairs/example_heredoc_delimiter.rb +8/-8
lib/rubocop/cop/internal_affairs/location_exists.rb +28/-2
lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +9/-9
lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +3/-1
lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +1/-1
lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +1/-1
lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +4/-4
lib/rubocop/cop/layout/argument_alignment.rb +2/-2
lib/rubocop/cop/layout/array_alignment.rb +1/-1
lib/rubocop/cop/layout/case_indentation.rb +3/-1
lib/rubocop/cop/layout/class_structure.rb +13/-6
lib/rubocop/cop/layout/dot_position.rb +2/-2
lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +12/-2
lib/rubocop/cop/layout/empty_line_between_defs.rb +31/-13
lib/rubocop/cop/layout/empty_lines_after_module_inclusion.rb +2/-2
lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +1/-0
lib/rubocop/cop/layout/empty_lines_around_block_body.rb +12/-2
lib/rubocop/cop/layout/empty_lines_around_class_body.rb +16/-2
lib/rubocop/cop/layout/empty_lines_around_module_body.rb +16/-2
lib/rubocop/cop/layout/end_alignment.rb +8/-1
lib/rubocop/cop/layout/first_argument_indentation.rb +34/-1
lib/rubocop/cop/layout/first_array_element_line_break.rb +26/-0
lib/rubocop/cop/layout/first_hash_element_indentation.rb +7/-1
lib/rubocop/cop/layout/first_hash_element_line_break.rb +28/-28
lib/rubocop/cop/layout/hash_alignment.rb +3/-6
lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2/-2
lib/rubocop/cop/layout/heredoc_indentation.rb +33/-3
lib/rubocop/cop/layout/indentation_style.rb +1/-1
lib/rubocop/cop/layout/indentation_width.rb +111/-7
lib/rubocop/cop/layout/line_continuation_spacing.rb +1/-1
lib/rubocop/cop/layout/line_length.rb +26/-9
lib/rubocop/cop/layout/multiline_array_brace_layout.rb +57/-57
lib/rubocop/cop/layout/multiline_assignment_layout.rb +9/-2
lib/rubocop/cop/layout/multiline_block_layout.rb +2/-0
lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +56/-56
lib/rubocop/cop/layout/multiline_method_call_indentation.rb +204/-39
lib/rubocop/cop/layout/multiline_operation_indentation.rb +8/-4
lib/rubocop/cop/layout/parameter_alignment.rb +1/-1
lib/rubocop/cop/layout/redundant_line_break.rb +1/-1
lib/rubocop/cop/layout/rescue_ensure_alignment.rb +13/-3
lib/rubocop/cop/layout/space_after_comma.rb +2/-10
lib/rubocop/cop/layout/space_after_semicolon.rb +1/-1
lib/rubocop/cop/layout/space_around_block_parameters.rb +1/-1
lib/rubocop/cop/layout/space_around_keyword.rb +4/-2
lib/rubocop/cop/layout/space_in_lambda_literal.rb +9/-8
lib/rubocop/cop/layout/trailing_whitespace.rb +1/-1
lib/rubocop/cop/lint/circular_argument_reference.rb +47/-3
lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb +3/-2
lib/rubocop/cop/lint/constant_reassignment.rb +59/-9
lib/rubocop/cop/lint/constant_resolution.rb +1/-1
lib/rubocop/cop/lint/cop_directive_syntax.rb +14/-8
lib/rubocop/cop/lint/debugger.rb +0/-2
lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +4/-1
lib/rubocop/cop/lint/duplicate_match_pattern.rb +4/-4
lib/rubocop/cop/lint/duplicate_methods.rb +111/-12
lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +5/-42
lib/rubocop/cop/lint/else_layout.rb +19/-0
lib/rubocop/cop/lint/empty_block.rb +1/-1
lib/rubocop/cop/lint/empty_conditional_body.rb +6/-1
lib/rubocop/cop/lint/empty_in_pattern.rb +8/-1
lib/rubocop/cop/lint/empty_interpolation.rb +11/-0
lib/rubocop/cop/lint/empty_when.rb +8/-1
lib/rubocop/cop/lint/float_comparison.rb +1/-1
lib/rubocop/cop/lint/interpolation_check.rb +7/-2
lib/rubocop/cop/lint/literal_as_condition.rb +5/-1
lib/rubocop/cop/lint/literal_in_interpolation.rb +1/-1
lib/rubocop/cop/lint/missing_cop_enable_directive.rb +17/-8
lib/rubocop/cop/lint/next_without_accumulator.rb +2/-0
lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb +4/-0
lib/rubocop/cop/lint/non_deterministic_require_order.rb +3/-1
lib/rubocop/cop/lint/number_conversion.rb +1/-1
lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +23/-9
lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +0/-9
lib/rubocop/cop/lint/redundant_require_statement.rb +4/-2
lib/rubocop/cop/lint/redundant_safe_navigation.rb +23/-6
lib/rubocop/cop/lint/redundant_splat_expansion.rb +8/-2
lib/rubocop/cop/lint/rescue_exception.rb +1/-4
lib/rubocop/cop/lint/safe_navigation_chain.rb +17/-0
lib/rubocop/cop/lint/safe_navigation_consistency.rb +7/-1
lib/rubocop/cop/lint/self_assignment.rb +15/-6
lib/rubocop/cop/lint/shadowed_argument.rb +7/-7
lib/rubocop/cop/lint/struct_new_override.rb +17/-1
lib/rubocop/cop/lint/syntax.rb +25/-1
lib/rubocop/cop/lint/to_json.rb +12/-16
lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1/-0
lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +1/-0
lib/rubocop/cop/lint/unreachable_code.rb +5/-3
lib/rubocop/cop/lint/unused_method_argument.rb +10/-0
lib/rubocop/cop/lint/uri_escape_unescape.rb +2/-0
lib/rubocop/cop/lint/useless_assignment.rb +45/-17
lib/rubocop/cop/lint/useless_constant_scoping.rb +4/-4
lib/rubocop/cop/lint/useless_default_value_argument.rb +2/-0
lib/rubocop/cop/lint/useless_or.rb +15/-2
lib/rubocop/cop/lint/utils/nil_receiver_checker.rb +24/-9
lib/rubocop/cop/lint/void.rb +39/-12
lib/rubocop/cop/message_annotator.rb +1/-1
lib/rubocop/cop/metrics/block_nesting.rb +23/-0
lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4/-3
lib/rubocop/cop/migration/department_name.rb +12/-1
lib/rubocop/cop/mixin/check_line_breakable.rb +2/-2
lib/rubocop/cop/mixin/check_single_line_suitability.rb +4/-6
lib/rubocop/cop/mixin/code_length.rb +1/-1
lib/rubocop/cop/mixin/end_keyword_alignment.rb +1/-7
lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +5/-5
lib/rubocop/cop/mixin/hash_transform_method.rb +10/-60
lib/rubocop/cop/mixin/line_length_help.rb +21/-2
lib/rubocop/cop/mixin/method_complexity.rb +1/-1
lib/rubocop/cop/mixin/multiline_expression_indentation.rb +1/-1
lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1/-1
lib/rubocop/cop/mixin/space_after_punctuation.rb +5/-4
lib/rubocop/cop/mixin/statement_modifier.rb +0/-6
lib/rubocop/cop/mixin/trailing_comma.rb +8/-5
lib/rubocop/cop/naming/block_parameter_name.rb +1/-1
lib/rubocop/cop/naming/method_name.rb +5/-3
lib/rubocop/cop/naming/predicate_method.rb +30/-6
lib/rubocop/cop/naming/predicate_prefix.rb +10/-10
lib/rubocop/cop/offense.rb +9/-1
lib/rubocop/cop/registry.rb +20/-13
lib/rubocop/cop/security/eval.rb +15/-2
lib/rubocop/cop/security/json_load.rb +33/-11
lib/rubocop/cop/style/access_modifier_declarations.rb +15/-4
lib/rubocop/cop/style/accessor_grouping.rb +4/-2
lib/rubocop/cop/style/alias.rb +4/-1
lib/rubocop/cop/style/and_or.rb +1/-0
lib/rubocop/cop/style/arguments_forwarding.rb +24/-6
lib/rubocop/cop/style/array_intersect.rb +46/-12
lib/rubocop/cop/style/array_join.rb +4/-2
lib/rubocop/cop/style/ascii_comments.rb +6/-3
lib/rubocop/cop/style/attr.rb +5/-2
lib/rubocop/cop/style/bare_percent_literals.rb +4/-3
lib/rubocop/cop/style/begin_block.rb +3/-1
lib/rubocop/cop/style/bitwise_predicate.rb +8/-1
lib/rubocop/cop/style/block_delimiters.rb +27/-34
lib/rubocop/cop/style/case_equality.rb +15/-13
lib/rubocop/cop/style/class_and_module_children.rb +11/-2
lib/rubocop/cop/style/collection_compact.rb +36/-16
lib/rubocop/cop/style/colon_method_call.rb +3/-1
lib/rubocop/cop/style/concat_array_literals.rb +2/-0
lib/rubocop/cop/style/conditional_assignment.rb +8/-18
lib/rubocop/cop/style/constant_visibility.rb +17/-12
lib/rubocop/cop/style/copyright.rb +1/-1
lib/rubocop/cop/style/documentation.rb +6/-6
lib/rubocop/cop/style/documentation_method.rb +7/-7
lib/rubocop/cop/style/double_negation.rb +1/-1
lib/rubocop/cop/style/each_for_simple_loop.rb +1/-1
lib/rubocop/cop/style/each_with_object.rb +2/-0
lib/rubocop/cop/style/empty_block_parameter.rb +1/-1
lib/rubocop/cop/style/empty_lambda_parameter.rb +1/-1
lib/rubocop/cop/style/empty_method.rb +0/-6
lib/rubocop/cop/style/encoding.rb +7/-1
lib/rubocop/cop/style/end_block.rb +3/-1
lib/rubocop/cop/style/endless_method.rb +23/-5
lib/rubocop/cop/style/explicit_block_argument.rb +1/-1
lib/rubocop/cop/style/float_division.rb +15/-1
lib/rubocop/cop/style/for.rb +3/-0
lib/rubocop/cop/style/format_string_token.rb +49/-5
lib/rubocop/cop/style/global_vars.rb +5/-2
lib/rubocop/cop/style/guard_clause.rb +27/-22
lib/rubocop/cop/style/hash_as_last_array_item.rb +27/-9
lib/rubocop/cop/style/hash_syntax.rb +1/-1
lib/rubocop/cop/style/hash_transform_keys.rb +17/-7
lib/rubocop/cop/style/hash_transform_values.rb +17/-7
lib/rubocop/cop/style/if_inside_else.rb +1/-5
lib/rubocop/cop/style/if_unless_modifier.rb +57/-17
lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +12/-12
lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +4/-1
lib/rubocop/cop/style/if_with_semicolon.rb +7/-5
lib/rubocop/cop/style/infinite_loop.rb +1/-1
lib/rubocop/cop/style/inline_comment.rb +4/-1
lib/rubocop/cop/style/ip_addresses.rb +1/-2
lib/rubocop/cop/style/lambda_call.rb +8/-8
lib/rubocop/cop/style/magic_comment_format.rb +2/-2
lib/rubocop/cop/style/method_call_with_args_parentheses.rb +17/-4
lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +15/-2
lib/rubocop/cop/style/method_def_parentheses.rb +2/-4
lib/rubocop/cop/style/multiline_if_then.rb +4/-4
lib/rubocop/cop/style/multiline_method_signature.rb +2/-4
lib/rubocop/cop/style/mutable_constant.rb +1/-1
lib/rubocop/cop/style/nil_comparison.rb +11/-10
lib/rubocop/cop/style/nil_lambda.rb +1/-1
lib/rubocop/cop/style/non_nil_check.rb +5/-11
lib/rubocop/cop/style/not.rb +2/-0
lib/rubocop/cop/style/numeric_literals.rb +3/-2
lib/rubocop/cop/style/one_line_conditional.rb +21/-12
lib/rubocop/cop/style/operator_method_call.rb +11/-2
lib/rubocop/cop/style/parallel_assignment.rb +6/-2
lib/rubocop/cop/style/percent_literal_delimiters.rb +2/-0
lib/rubocop/cop/style/preferred_hash_methods.rb +12/-12
lib/rubocop/cop/style/proc.rb +3/-2
lib/rubocop/cop/style/raise_args.rb +1/-1
lib/rubocop/cop/style/redundant_argument.rb +2/-0
lib/rubocop/cop/style/redundant_begin.rb +37/-3
lib/rubocop/cop/style/redundant_condition.rb +6/-3
lib/rubocop/cop/style/redundant_each.rb +3/-3
lib/rubocop/cop/style/redundant_exception.rb +1/-1
lib/rubocop/cop/style/redundant_fetch_block.rb +1/-1
lib/rubocop/cop/style/redundant_format.rb +26/-5
lib/rubocop/cop/style/redundant_interpolation.rb +11/-2
lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb +27/-11
lib/rubocop/cop/style/redundant_line_continuation.rb +16/-0
lib/rubocop/cop/style/redundant_parentheses.rb +36/-30
lib/rubocop/cop/style/redundant_percent_q.rb +5/-3
lib/rubocop/cop/style/redundant_regexp_argument.rb +9/-0
lib/rubocop/cop/style/redundant_regexp_escape.rb +8/-0
lib/rubocop/cop/style/redundant_return.rb +3/-1
lib/rubocop/cop/style/redundant_self_assignment_branch.rb +0/-5
lib/rubocop/cop/style/redundant_sort.rb +7/-7
lib/rubocop/cop/style/safe_navigation.rb +25/-8
lib/rubocop/cop/style/select_by_regexp.rb +51/-21
lib/rubocop/cop/style/semicolon.rb +25/-7
lib/rubocop/cop/style/single_line_block_params.rb +2/-2
lib/rubocop/cop/style/single_line_do_end_block.rb +1/-1
lib/rubocop/cop/style/single_line_methods.rb +3/-1
lib/rubocop/cop/style/sole_nested_conditional.rb +8/-1
lib/rubocop/cop/style/special_global_vars.rb +6/-1
lib/rubocop/cop/style/string_concatenation.rb +17/-13
lib/rubocop/cop/style/super_arguments.rb +2/-2
lib/rubocop/cop/style/symbol_array.rb +1/-1
lib/rubocop/cop/style/symbol_proc.rb +4/-3
lib/rubocop/cop/style/trailing_comma_in_arguments.rb +45/-0
lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1/-1
lib/rubocop/cop/style/trailing_method_end_statement.rb +1/-0
lib/rubocop/cop/style/trailing_underscore_variable.rb +11/-11
lib/rubocop/cop/style/unless_else.rb +10/-9
lib/rubocop/cop/style/yoda_expression.rb +1/-1
lib/rubocop/cop/team.rb +4/-4
lib/rubocop/cop/util.rb +2/-3
lib/rubocop/cop/utils/format_string.rb +10/-0
lib/rubocop/cop/variable_force.rb +9/-7
lib/rubocop/cop/variable_force/branch.rb +30/-6
lib/rubocop/cop/variable_force/variable.rb +1/-1
lib/rubocop/cops_documentation_generator.rb +4/-4
lib/rubocop/directive_comment.rb +48/-4
lib/rubocop/formatter.rb +22/-21
lib/rubocop/formatter/clang_style_formatter.rb +5/-2
lib/rubocop/formatter/disabled_config_formatter.rb +20/-6
lib/rubocop/formatter/formatter_set.rb +2/-2
lib/rubocop/formatter/junit_formatter.rb +1/-1
lib/rubocop/formatter/simple_text_formatter.rb +0/-2
lib/rubocop/formatter/tap_formatter.rb +5/-2
lib/rubocop/formatter/worst_offenders_formatter.rb +1/-1
lib/rubocop/lsp/diagnostic.rb +18/-33
lib/rubocop/lsp/routes.rb +42/-6
lib/rubocop/lsp/runtime.rb +13/-3
lib/rubocop/lsp/stdin_runner.rb +8/-17
lib/rubocop/magic_comment.rb +20/-0
lib/rubocop/options.rb +10/-1
lib/rubocop/path_util.rb +14/-2
lib/rubocop/plugin/loader.rb +1/-1
lib/rubocop/rake_task.rb +1/-1
lib/rubocop/remote_config.rb +10/-8
lib/rubocop/result_cache.rb +61/-38
lib/rubocop/rspec/cop_helper.rb +8/-0
lib/rubocop/rspec/shared_contexts.rb +18/-5
lib/rubocop/rspec/support.rb +2/-1
lib/rubocop/runner.rb +18/-7
lib/rubocop/server/cache.rb +6/-29
lib/rubocop/server/core.rb +2/-0
lib/rubocop/target_finder.rb +10/-10
lib/rubocop/target_ruby.rb +31/-14
lib/rubocop/version.rb +2/-2
lib/ruby_lsp/rubocop/addon.rb +23/-8
lib/ruby_lsp/rubocop/runtime_adapter.rb +49/-15
DIFFERENT extra_rdoc_files:
1.79.2->1.86.1:
* Changed:
LICENSE.txt +1/-1
README.md +2/-2
DIFFERENT runtime dependencies:
1.79.2->1.86.1:
* Updated:
parallel from: ["~> 1.10"] to: [">= 1.10"]
rubocop-ast from: [">= 1.46.0", "< 2.0"] to: [">= 1.49.0", "< 2.0"] |
Contributor
gem compare unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT date:
3.1.4: 2025-01-13 00:00:00 UTC
3.2.0: 2025-09-09 00:00:00 UTC
DIFFERENT description:
3.1.4: [Unicode 16.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
3.2.0: [Unicode 17.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
DIFFERENT version:
3.1.4: 3.1.4
3.2.0: 3.2.0
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md +8/-0
README.md +5/-5
lib/unicode/display_width/constants.rb +2/-2
lib/unicode/display_width/emoji_support.rb +5/-2
DIFFERENT extra_rdoc_files:
3.1.4->3.2.0:
* Changed:
README.md +5/-5
CHANGELOG.md +8/-0
DIFFERENT runtime dependencies:
3.1.4->3.2.0:
* Updated:
unicode-emoji from: ["~> 4.0", ">= 4.0.4"] to: ["~> 4.1"] |
Contributor
gem compare --diff unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md
--- /tmp/d20260410-11847-yibivg/unicode-display_width-3.1.4/CHANGELOG.md 2026-04-10 02:36:45.502347308 +0000
+++ /tmp/d20260410-11847-yibivg/unicode-display_width-3.2.0/CHANGELOG.md 2026-04-10 02:36:45.513347351 +0000
@@ -2,0 +3,8 @@
+## 3.2.0
+
+- Unicode 17.0
+
+## 3.1.5
+
+- Cache Emoji support level for performance reasons #30, patch by @Earlopain:
+
README.md
--- /tmp/d20260410-11847-yibivg/unicode-display_width-3.1.4/README.md 2026-04-10 02:36:45.503347312 +0000
+++ /tmp/d20260410-11847-yibivg/unicode-display_width-3.2.0/README.md 2026-04-10 02:36:45.513347351 +0000
@@ -3 +3 @@
-Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
+Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
@@ -5 +5 @@
-Unicode version: **16.0.0** (September 2024)
+Unicode version: **17.0.0** (September 2025)
@@ -111,2 +111,2 @@
-Single Emoji character with Skin Tone Modifier | 2
-Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
+Single Emoji character with Skin Tone Modifier | 2 unless Emoji mode is `:none` or `vs16`
+Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is `:rgi` / `:rgi_at`
@@ -191 +191 @@
-- Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
+- Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
data/display_width.marshal.gz
Binary files /tmp/d20260410-11847-yibivg/unicode-display_width-3.1.4/data/display_width.marshal.gz and /tmp/d20260410-11847-yibivg/unicode-display_width-3.2.0/data/display_width.marshal.gz differ
lib/unicode/display_width/constants.rb
--- /tmp/d20260410-11847-yibivg/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb 2026-04-10 02:36:45.503347312 +0000
+++ /tmp/d20260410-11847-yibivg/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb 2026-04-10 02:36:45.516347362 +0000
@@ -5,2 +5,2 @@
- VERSION = "3.1.4"
- UNICODE_VERSION = "16.0.0"
+ VERSION = "3.2.0"
+ UNICODE_VERSION = "17.0.0"
lib/unicode/display_width/emoji_support.rb
--- /tmp/d20260410-11847-yibivg/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:36:45.503347312 +0000
+++ /tmp/d20260410-11847-yibivg/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:36:45.516347362 +0000
@@ -1,2 +1 @@
-# require "rbconfig"
-# RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # windows
+# frozen_string_literal: true
@@ -15,0 +15,4 @@
+ @recommended ||= _recommended
+ end
+
+ def self._recommended |
Contributor
|
Contributor
gem compare rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT date:
1.46.0: 2025-07-16 00:00:00 UTC
1.49.1: 1980-01-02 00:00:00 UTC
DIFFERENT rubygems_version:
1.46.0: 3.5.11
1.49.1: 4.0.3
DIFFERENT version:
1.46.0: 1.46.0
1.49.1: 1.49.1
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
lib/rubocop/ast/node.rb +15/-0
lib/rubocop/ast/node/mixin/method_dispatch_node.rb +1/-1
lib/rubocop/ast/node/mixin/parameterized_node.rb +1/-0
lib/rubocop/ast/node_pattern.rb +2/-1
lib/rubocop/ast/node_pattern/compiler.rb +1/-0
lib/rubocop/ast/node_pattern/compiler/binding.rb +6/-0
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb +1/-1
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb +14/-2
lib/rubocop/ast/node_pattern/lexer.rex +1/-1
lib/rubocop/ast/node_pattern/lexer.rex.rb +2/-2
lib/rubocop/ast/processed_source.rb +4/-5
lib/rubocop/ast/traversal.rb +2/-1
lib/rubocop/ast/version.rb +1/-1
DIFFERENT extra_rdoc_files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
DIFFERENT runtime dependencies:
1.46.0->1.49.1:
* Updated:
prism from: ["~> 1.4"] to: ["~> 1.7"] |
Contributor
|
Contributor
gem compare unicode-emoji 4.0.4 4.2.0Compared versions: ["4.0.4", "4.2.0"]
DIFFERENT date:
4.0.4: 2024-11-19 00:00:00 UTC
4.2.0: 2025-12-17 00:00:00 UTC
DIFFERENT description:
4.0.4: [Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
4.2.0: [Emoji 17.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
DIFFERENT required_ruby_version:
4.0.4: >= 2.5, < 4.0
4.2.0: >= 2.5
DIFFERENT version:
4.0.4: 4.0.4
4.2.0: 4.2.0
DIFFERENT files:
4.0.4->4.2.0:
* Changed:
CHANGELOG.md +11/-0
Gemfile +2/-0
Gemfile.lock +5/-1
README.md +4/-4
Rakefile +1/-1
lib/unicode/emoji/constants.rb +4/-3
lib/unicode/emoji/generated/regex.rb +1/-1
lib/unicode/emoji/generated/regex_basic.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_picto.rb +1/-1
lib/unicode/emoji/generated/regex_picto_no_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_possible.rb +1/-1
lib/unicode/emoji/generated/regex_prop_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_prop_presentation.rb +1/-1
lib/unicode/emoji/generated/regex_text.rb +1/-1
lib/unicode/emoji/generated/regex_valid.rb +1/-1
lib/unicode/emoji/generated/regex_valid_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed_include_text.rb +1/-1
lib/unicode/emoji/generated_native/regex.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_text.rb +1/-1
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
unicode-emoji.gemspec +1/-1
DIFFERENT test_files:
4.0.4->4.2.0:
* Changed:
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
DIFFERENT Gemfile dependencies
4.0.4->4.2.0:
* Added:
mutex_m [">= 0"] (runtime)
ostruct [">= 0"] (runtime) |
Contributor
gem compare rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT date:
1.46.0: 2025-07-16 00:00:00 UTC
1.49.1: 1980-01-02 00:00:00 UTC
DIFFERENT rubygems_version:
1.46.0: 3.5.11
1.49.1: 4.0.3
DIFFERENT version:
1.46.0: 1.46.0
1.49.1: 1.49.1
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
lib/rubocop/ast/node.rb +15/-0
lib/rubocop/ast/node/mixin/method_dispatch_node.rb +1/-1
lib/rubocop/ast/node/mixin/parameterized_node.rb +1/-0
lib/rubocop/ast/node_pattern.rb +2/-1
lib/rubocop/ast/node_pattern/compiler.rb +1/-0
lib/rubocop/ast/node_pattern/compiler/binding.rb +6/-0
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb +1/-1
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb +14/-2
lib/rubocop/ast/node_pattern/lexer.rex +1/-1
lib/rubocop/ast/node_pattern/lexer.rex.rb +2/-2
lib/rubocop/ast/processed_source.rb +4/-5
lib/rubocop/ast/traversal.rb +2/-1
lib/rubocop/ast/version.rb +1/-1
DIFFERENT extra_rdoc_files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
DIFFERENT runtime dependencies:
1.46.0->1.49.1:
* Updated:
prism from: ["~> 1.4"] to: ["~> 1.7"] |
Contributor
gem compare --diff rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/README.md 2026-04-10 02:37:09.225276365 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/README.md 2026-04-10 02:37:09.248276401 +0000
@@ -5,2 +4,0 @@
-[](https://codeclimate.com/github/rubocop/rubocop-ast/test_coverage)
-[](https://codeclimate.com/github/rubocop/rubocop-ast/maintainability)
lib/rubocop/ast/node.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node.rb 2026-04-10 02:37:09.227276368 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node.rb 2026-04-10 02:37:09.249276402 +0000
@@ -110,0 +111,7 @@
+ str: :any_str,
+ dstr: :any_str,
+ xstr: :any_str,
+
+ sym: :any_sym,
+ dsym: :any_sym,
+
@@ -547,0 +555,8 @@
+ end
+
+ def any_str_type?
+ GROUP_FOR_TYPE[type] == :any_str
+ end
+
+ def any_sym_type?
+ GROUP_FOR_TYPE[type] == :any_sym
lib/rubocop/ast/node/mixin/method_dispatch_node.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:37:09.237276384 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:37:09.254276410 +0000
@@ -35 +35 @@
- if loc.respond_to? :keyword
+ if loc?(:keyword)
lib/rubocop/ast/node/mixin/parameterized_node.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:37:09.238276385 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:37:09.254276410 +0000
@@ -67,0 +68 @@
+
lib/rubocop/ast/node_pattern.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:37:09.242276392 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:37:09.256276413 +0000
@@ -26,0 +27,2 @@
+ class Invalid < StandardError; end
+
@@ -53 +54,0 @@
- Invalid = Class.new(StandardError)
lib/rubocop/ast/node_pattern/compiler.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:37:09.242276392 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:37:09.257276415 +0000
@@ -12,0 +13 @@
+
lib/rubocop/ast/node_pattern/compiler/binding.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:37:09.243276393 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:37:09.257276415 +0000
@@ -28,0 +29,6 @@
+ # Returns currently bound variable names
+ # @return [Array<String>] variable names that are currently bound
+ def bound_variables
+ @bound.values
+ end
+
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:37:09.243276393 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:37:09.258276416 +0000
@@ -76 +76 @@
- .join(' && ')
+ .join(' && ')
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:37:09.244276395 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:37:09.258276416 +0000
@@ -88 +88 @@
- def visit_any_order
+ def visit_any_order # rubocop:disable Metrics/AbcSize
@@ -90,0 +91 @@
+ bound_before = compiler.binding.bound_variables
@@ -94,0 +96,4 @@
+ # Initialize unification variables before the loop to persist across iterations
+ newly_bound = compiler.binding.bound_variables - bound_before
+ unify_init = compile_unify_init(newly_bound)
+
@@ -97 +102 @@
- (#{init}#{matched} = {}; true) &&
+ (#{init}#{unify_init}#{matched} = {}; true) &&
@@ -413,0 +419,7 @@
+ end
+
+ # Generate initialization code for unification variables
+ # @param newly_bound [Array<String>] variable names that were newly bound
+ # @return [String] initialization code
+ def compile_unify_init(newly_bound)
+ newly_bound.map { |var| "#{var} = nil; " }.join
lib/rubocop/ast/node_pattern/lexer.rex
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:37:09.244276395 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:37:09.262276423 +0000
@@ -24 +24 @@
- /"(.+?)"/ { emit :tSTRING }
+ /"(.*?)"/ { emit :tSTRING }
lib/rubocop/ast/node_pattern/lexer.rex.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:37:09.244276395 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:37:09.265276427 +0000
@@ -5 +5 @@
-# Generated by: oedipus_lex version 2.6.2.
+# Generated by: oedipus_lex version 2.6.3.
@@ -125 +125 @@
- when ss.skip(/"(.+?)"/) then
+ when ss.skip(/"(.*?)"/) then
lib/rubocop/ast/processed_source.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/processed_source.rb 2026-04-10 02:37:09.245276396 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/processed_source.rb 2026-04-10 02:37:09.268276432 +0000
@@ -313 +312,0 @@
- require 'prism/translation/parser33'
@@ -316 +314,0 @@
- require 'prism/translation/parser34'
@@ -318,3 +316,4 @@
- when 3.5
- require 'prism/translation/parser35'
- Prism::Translation::Parser35
+ when 3.5, 4.0
+ Prism::Translation::Parser40
+ when 4.1
+ Prism::Translation::Parser41
lib/rubocop/ast/traversal.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/traversal.rb 2026-04-10 02:37:09.247276399 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/traversal.rb 2026-04-10 02:37:09.268276432 +0000
@@ -81,0 +82 @@
+
@@ -88 +89 @@
- lambda empty_else kwnilarg
+ lambda empty_else kwnilarg blocknilarg
lib/rubocop/ast/version.rb
--- /tmp/d20260410-11398-yolgta/rubocop-ast-1.46.0/lib/rubocop/ast/version.rb 2026-04-10 02:37:09.247276399 +0000
+++ /tmp/d20260410-11398-yolgta/rubocop-ast-1.49.1/lib/rubocop/ast/version.rb 2026-04-10 02:37:09.268276432 +0000
@@ -6 +6 @@
- STRING = '1.46.0'
+ STRING = '1.49.1' |
Contributor
gem compare rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT date:
1.46.0: 2025-07-16 00:00:00 UTC
1.49.1: 1980-01-02 00:00:00 UTC
DIFFERENT rubygems_version:
1.46.0: 3.5.11
1.49.1: 4.0.3
DIFFERENT version:
1.46.0: 1.46.0
1.49.1: 1.49.1
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
lib/rubocop/ast/node.rb +15/-0
lib/rubocop/ast/node/mixin/method_dispatch_node.rb +1/-1
lib/rubocop/ast/node/mixin/parameterized_node.rb +1/-0
lib/rubocop/ast/node_pattern.rb +2/-1
lib/rubocop/ast/node_pattern/compiler.rb +1/-0
lib/rubocop/ast/node_pattern/compiler/binding.rb +6/-0
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb +1/-1
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb +14/-2
lib/rubocop/ast/node_pattern/lexer.rex +1/-1
lib/rubocop/ast/node_pattern/lexer.rex.rb +2/-2
lib/rubocop/ast/processed_source.rb +4/-5
lib/rubocop/ast/traversal.rb +2/-1
lib/rubocop/ast/version.rb +1/-1
DIFFERENT extra_rdoc_files:
1.46.0->1.49.1:
* Changed:
README.md +0/-2
DIFFERENT runtime dependencies:
1.46.0->1.49.1:
* Updated:
prism from: ["~> 1.4"] to: ["~> 1.7"] |
Contributor
gem compare --diff unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md
--- /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.1.4/CHANGELOG.md 2026-04-10 02:37:19.692824961 +0000
+++ /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.2.0/CHANGELOG.md 2026-04-10 02:37:19.694824963 +0000
@@ -2,0 +3,8 @@
+## 3.2.0
+
+- Unicode 17.0
+
+## 3.1.5
+
+- Cache Emoji support level for performance reasons #30, patch by @Earlopain:
+
README.md
--- /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.1.4/README.md 2026-04-10 02:37:19.692824961 +0000
+++ /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.2.0/README.md 2026-04-10 02:37:19.694824963 +0000
@@ -3 +3 @@
-Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
+Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
@@ -5 +5 @@
-Unicode version: **16.0.0** (September 2024)
+Unicode version: **17.0.0** (September 2025)
@@ -111,2 +111,2 @@
-Single Emoji character with Skin Tone Modifier | 2
-Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
+Single Emoji character with Skin Tone Modifier | 2 unless Emoji mode is `:none` or `vs16`
+Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is `:rgi` / `:rgi_at`
@@ -191 +191 @@
-- Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
+- Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
data/display_width.marshal.gz
Binary files /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.1.4/data/display_width.marshal.gz and /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.2.0/data/display_width.marshal.gz differ
lib/unicode/display_width/constants.rb
--- /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb 2026-04-10 02:37:19.693824962 +0000
+++ /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb 2026-04-10 02:37:19.694824963 +0000
@@ -5,2 +5,2 @@
- VERSION = "3.1.4"
- UNICODE_VERSION = "16.0.0"
+ VERSION = "3.2.0"
+ UNICODE_VERSION = "17.0.0"
lib/unicode/display_width/emoji_support.rb
--- /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:19.693824962 +0000
+++ /tmp/d20260410-11891-fo1v1o/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:19.694824963 +0000
@@ -1,2 +1 @@
-# require "rbconfig"
-# RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # windows
+# frozen_string_literal: true
@@ -15,0 +15,4 @@
+ @recommended ||= _recommended
+ end
+
+ def self._recommended |
Contributor
gem compare --diff rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/README.md 2026-04-10 02:37:22.721753940 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/README.md 2026-04-10 02:37:22.731753900 +0000
@@ -5,2 +4,0 @@
-[](https://codeclimate.com/github/rubocop/rubocop-ast/test_coverage)
-[](https://codeclimate.com/github/rubocop/rubocop-ast/maintainability)
lib/rubocop/ast/node.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node.rb 2026-04-10 02:37:22.722753935 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node.rb 2026-04-10 02:37:22.732753896 +0000
@@ -110,0 +111,7 @@
+ str: :any_str,
+ dstr: :any_str,
+ xstr: :any_str,
+
+ sym: :any_sym,
+ dsym: :any_sym,
+
@@ -547,0 +555,8 @@
+ end
+
+ def any_str_type?
+ GROUP_FOR_TYPE[type] == :any_str
+ end
+
+ def any_sym_type?
+ GROUP_FOR_TYPE[type] == :any_sym
lib/rubocop/ast/node/mixin/method_dispatch_node.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:37:22.726753920 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:37:22.744753848 +0000
@@ -35 +35 @@
- if loc.respond_to? :keyword
+ if loc?(:keyword)
lib/rubocop/ast/node/mixin/parameterized_node.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:37:22.726753920 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:37:22.745753844 +0000
@@ -67,0 +68 @@
+
lib/rubocop/ast/node_pattern.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:37:22.728753912 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:37:22.750753824 +0000
@@ -26,0 +27,2 @@
+ class Invalid < StandardError; end
+
@@ -53 +54,0 @@
- Invalid = Class.new(StandardError)
lib/rubocop/ast/node_pattern/compiler.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:37:22.729753908 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:37:22.751753821 +0000
@@ -12,0 +13 @@
+
lib/rubocop/ast/node_pattern/compiler/binding.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:37:22.729753908 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:37:22.751753821 +0000
@@ -28,0 +29,6 @@
+ # Returns currently bound variable names
+ # @return [Array<String>] variable names that are currently bound
+ def bound_variables
+ @bound.values
+ end
+
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:37:22.729753908 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:37:22.751753821 +0000
@@ -76 +76 @@
- .join(' && ')
+ .join(' && ')
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:37:22.729753908 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:37:22.752753816 +0000
@@ -88 +88 @@
- def visit_any_order
+ def visit_any_order # rubocop:disable Metrics/AbcSize
@@ -90,0 +91 @@
+ bound_before = compiler.binding.bound_variables
@@ -94,0 +96,4 @@
+ # Initialize unification variables before the loop to persist across iterations
+ newly_bound = compiler.binding.bound_variables - bound_before
+ unify_init = compile_unify_init(newly_bound)
+
@@ -97 +102 @@
- (#{init}#{matched} = {}; true) &&
+ (#{init}#{unify_init}#{matched} = {}; true) &&
@@ -413,0 +419,7 @@
+ end
+
+ # Generate initialization code for unification variables
+ # @param newly_bound [Array<String>] variable names that were newly bound
+ # @return [String] initialization code
+ def compile_unify_init(newly_bound)
+ newly_bound.map { |var| "#{var} = nil; " }.join
lib/rubocop/ast/node_pattern/lexer.rex
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:37:22.729753908 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:37:22.752753816 +0000
@@ -24 +24 @@
- /"(.+?)"/ { emit :tSTRING }
+ /"(.*?)"/ { emit :tSTRING }
lib/rubocop/ast/node_pattern/lexer.rex.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:37:22.730753904 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:37:22.752753816 +0000
@@ -5 +5 @@
-# Generated by: oedipus_lex version 2.6.2.
+# Generated by: oedipus_lex version 2.6.3.
@@ -125 +125 @@
- when ss.skip(/"(.+?)"/) then
+ when ss.skip(/"(.*?)"/) then
lib/rubocop/ast/processed_source.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/processed_source.rb 2026-04-10 02:37:22.730753904 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/processed_source.rb 2026-04-10 02:37:22.754753809 +0000
@@ -313 +312,0 @@
- require 'prism/translation/parser33'
@@ -316 +314,0 @@
- require 'prism/translation/parser34'
@@ -318,3 +316,4 @@
- when 3.5
- require 'prism/translation/parser35'
- Prism::Translation::Parser35
+ when 3.5, 4.0
+ Prism::Translation::Parser40
+ when 4.1
+ Prism::Translation::Parser41
lib/rubocop/ast/traversal.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/traversal.rb 2026-04-10 02:37:22.731753900 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/traversal.rb 2026-04-10 02:37:22.755753805 +0000
@@ -81,0 +82 @@
+
@@ -88 +89 @@
- lambda empty_else kwnilarg
+ lambda empty_else kwnilarg blocknilarg
lib/rubocop/ast/version.rb
--- /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.46.0/lib/rubocop/ast/version.rb 2026-04-10 02:37:22.731753900 +0000
+++ /tmp/d20260410-11408-b0pbnl/rubocop-ast-1.49.1/lib/rubocop/ast/version.rb 2026-04-10 02:37:22.755753805 +0000
@@ -6 +6 @@
- STRING = '1.46.0'
+ STRING = '1.49.1' |
Contributor
gem compare unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT date:
3.1.4: 2025-01-13 00:00:00 UTC
3.2.0: 2025-09-09 00:00:00 UTC
DIFFERENT description:
3.1.4: [Unicode 16.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
3.2.0: [Unicode 17.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
DIFFERENT version:
3.1.4: 3.1.4
3.2.0: 3.2.0
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md +8/-0
README.md +5/-5
lib/unicode/display_width/constants.rb +2/-2
lib/unicode/display_width/emoji_support.rb +5/-2
DIFFERENT extra_rdoc_files:
3.1.4->3.2.0:
* Changed:
README.md +5/-5
CHANGELOG.md +8/-0
DIFFERENT runtime dependencies:
3.1.4->3.2.0:
* Updated:
unicode-emoji from: ["~> 4.0", ">= 4.0.4"] to: ["~> 4.1"] |
Contributor
gem compare unicode-emoji 4.0.4 4.2.0Compared versions: ["4.0.4", "4.2.0"]
DIFFERENT date:
4.0.4: 2024-11-19 00:00:00 UTC
4.2.0: 2025-12-17 00:00:00 UTC
DIFFERENT description:
4.0.4: [Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
4.2.0: [Emoji 17.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
DIFFERENT required_ruby_version:
4.0.4: >= 2.5, < 4.0
4.2.0: >= 2.5
DIFFERENT version:
4.0.4: 4.0.4
4.2.0: 4.2.0
DIFFERENT files:
4.0.4->4.2.0:
* Changed:
CHANGELOG.md +11/-0
Gemfile +2/-0
Gemfile.lock +5/-1
README.md +4/-4
Rakefile +1/-1
lib/unicode/emoji/constants.rb +4/-3
lib/unicode/emoji/generated/regex.rb +1/-1
lib/unicode/emoji/generated/regex_basic.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_picto.rb +1/-1
lib/unicode/emoji/generated/regex_picto_no_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_possible.rb +1/-1
lib/unicode/emoji/generated/regex_prop_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_prop_presentation.rb +1/-1
lib/unicode/emoji/generated/regex_text.rb +1/-1
lib/unicode/emoji/generated/regex_valid.rb +1/-1
lib/unicode/emoji/generated/regex_valid_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed_include_text.rb +1/-1
lib/unicode/emoji/generated_native/regex.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_text.rb +1/-1
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
unicode-emoji.gemspec +1/-1
DIFFERENT test_files:
4.0.4->4.2.0:
* Changed:
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
DIFFERENT Gemfile dependencies
4.0.4->4.2.0:
* Added:
mutex_m [">= 0"] (runtime)
ostruct [">= 0"] (runtime) |
Contributor
|
Contributor
gem compare unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT date:
3.1.4: 2025-01-13 00:00:00 UTC
3.2.0: 2025-09-09 00:00:00 UTC
DIFFERENT description:
3.1.4: [Unicode 16.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
3.2.0: [Unicode 17.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
DIFFERENT version:
3.1.4: 3.1.4
3.2.0: 3.2.0
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md +8/-0
README.md +5/-5
lib/unicode/display_width/constants.rb +2/-2
lib/unicode/display_width/emoji_support.rb +5/-2
DIFFERENT extra_rdoc_files:
3.1.4->3.2.0:
* Changed:
README.md +5/-5
CHANGELOG.md +8/-0
DIFFERENT runtime dependencies:
3.1.4->3.2.0:
* Updated:
unicode-emoji from: ["~> 4.0", ">= 4.0.4"] to: ["~> 4.1"] |
Contributor
gem compare --diff unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md
--- /tmp/d20260410-11931-uh10b4/unicode-display_width-3.1.4/CHANGELOG.md 2026-04-10 02:37:36.355342582 +0000
+++ /tmp/d20260410-11931-uh10b4/unicode-display_width-3.2.0/CHANGELOG.md 2026-04-10 02:37:36.357342587 +0000
@@ -2,0 +3,8 @@
+## 3.2.0
+
+- Unicode 17.0
+
+## 3.1.5
+
+- Cache Emoji support level for performance reasons #30, patch by @Earlopain:
+
README.md
--- /tmp/d20260410-11931-uh10b4/unicode-display_width-3.1.4/README.md 2026-04-10 02:37:36.355342582 +0000
+++ /tmp/d20260410-11931-uh10b4/unicode-display_width-3.2.0/README.md 2026-04-10 02:37:36.357342587 +0000
@@ -3 +3 @@
-Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
+Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
@@ -5 +5 @@
-Unicode version: **16.0.0** (September 2024)
+Unicode version: **17.0.0** (September 2025)
@@ -111,2 +111,2 @@
-Single Emoji character with Skin Tone Modifier | 2
-Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
+Single Emoji character with Skin Tone Modifier | 2 unless Emoji mode is `:none` or `vs16`
+Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is `:rgi` / `:rgi_at`
@@ -191 +191 @@
-- Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
+- Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
data/display_width.marshal.gz
Binary files /tmp/d20260410-11931-uh10b4/unicode-display_width-3.1.4/data/display_width.marshal.gz and /tmp/d20260410-11931-uh10b4/unicode-display_width-3.2.0/data/display_width.marshal.gz differ
lib/unicode/display_width/constants.rb
--- /tmp/d20260410-11931-uh10b4/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb 2026-04-10 02:37:36.356342584 +0000
+++ /tmp/d20260410-11931-uh10b4/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb 2026-04-10 02:37:36.359342593 +0000
@@ -5,2 +5,2 @@
- VERSION = "3.1.4"
- UNICODE_VERSION = "16.0.0"
+ VERSION = "3.2.0"
+ UNICODE_VERSION = "17.0.0"
lib/unicode/display_width/emoji_support.rb
--- /tmp/d20260410-11931-uh10b4/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:36.356342584 +0000
+++ /tmp/d20260410-11931-uh10b4/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:36.359342593 +0000
@@ -1,2 +1 @@
-# require "rbconfig"
-# RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # windows
+# frozen_string_literal: true
@@ -15,0 +15,4 @@
+ @recommended ||= _recommended
+ end
+
+ def self._recommended |
Contributor
gem compare --diff unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md
--- /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.1.4/CHANGELOG.md 2026-04-10 02:37:47.772647819 +0000
+++ /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.2.0/CHANGELOG.md 2026-04-10 02:37:47.774647808 +0000
@@ -2,0 +3,8 @@
+## 3.2.0
+
+- Unicode 17.0
+
+## 3.1.5
+
+- Cache Emoji support level for performance reasons #30, patch by @Earlopain:
+
README.md
--- /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.1.4/README.md 2026-04-10 02:37:47.772647819 +0000
+++ /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.2.0/README.md 2026-04-10 02:37:47.774647808 +0000
@@ -3 +3 @@
-Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
+Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
@@ -5 +5 @@
-Unicode version: **16.0.0** (September 2024)
+Unicode version: **17.0.0** (September 2025)
@@ -111,2 +111,2 @@
-Single Emoji character with Skin Tone Modifier | 2
-Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
+Single Emoji character with Skin Tone Modifier | 2 unless Emoji mode is `:none` or `vs16`
+Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is `:rgi` / `:rgi_at`
@@ -191 +191 @@
-- Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
+- Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
data/display_width.marshal.gz
Binary files /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.1.4/data/display_width.marshal.gz and /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.2.0/data/display_width.marshal.gz differ
lib/unicode/display_width/constants.rb
--- /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb 2026-04-10 02:37:47.773647813 +0000
+++ /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb 2026-04-10 02:37:47.774647808 +0000
@@ -5,2 +5,2 @@
- VERSION = "3.1.4"
- UNICODE_VERSION = "16.0.0"
+ VERSION = "3.2.0"
+ UNICODE_VERSION = "17.0.0"
lib/unicode/display_width/emoji_support.rb
--- /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:47.773647813 +0000
+++ /tmp/d20260410-11932-dvw5l2/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:37:47.774647808 +0000
@@ -1,2 +1 @@
-# require "rbconfig"
-# RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # windows
+# frozen_string_literal: true
@@ -15,0 +15,4 @@
+ @recommended ||= _recommended
+ end
+
+ def self._recommended |
Contributor
gem compare unicode-emoji 4.0.4 4.2.0Compared versions: ["4.0.4", "4.2.0"]
DIFFERENT date:
4.0.4: 2024-11-19 00:00:00 UTC
4.2.0: 2025-12-17 00:00:00 UTC
DIFFERENT description:
4.0.4: [Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
4.2.0: [Emoji 17.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
DIFFERENT required_ruby_version:
4.0.4: >= 2.5, < 4.0
4.2.0: >= 2.5
DIFFERENT version:
4.0.4: 4.0.4
4.2.0: 4.2.0
DIFFERENT files:
4.0.4->4.2.0:
* Changed:
CHANGELOG.md +11/-0
Gemfile +2/-0
Gemfile.lock +5/-1
README.md +4/-4
Rakefile +1/-1
lib/unicode/emoji/constants.rb +4/-3
lib/unicode/emoji/generated/regex.rb +1/-1
lib/unicode/emoji/generated/regex_basic.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_picto.rb +1/-1
lib/unicode/emoji/generated/regex_picto_no_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_possible.rb +1/-1
lib/unicode/emoji/generated/regex_prop_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_prop_presentation.rb +1/-1
lib/unicode/emoji/generated/regex_text.rb +1/-1
lib/unicode/emoji/generated/regex_valid.rb +1/-1
lib/unicode/emoji/generated/regex_valid_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed_include_text.rb +1/-1
lib/unicode/emoji/generated_native/regex.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_text.rb +1/-1
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
unicode-emoji.gemspec +1/-1
DIFFERENT test_files:
4.0.4->4.2.0:
* Changed:
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
DIFFERENT Gemfile dependencies
4.0.4->4.2.0:
* Added:
mutex_m [">= 0"] (runtime)
ostruct [">= 0"] (runtime) |
1 similar comment
Contributor
gem compare unicode-emoji 4.0.4 4.2.0Compared versions: ["4.0.4", "4.2.0"]
DIFFERENT date:
4.0.4: 2024-11-19 00:00:00 UTC
4.2.0: 2025-12-17 00:00:00 UTC
DIFFERENT description:
4.0.4: [Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
4.2.0: [Emoji 17.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
DIFFERENT required_ruby_version:
4.0.4: >= 2.5, < 4.0
4.2.0: >= 2.5
DIFFERENT version:
4.0.4: 4.0.4
4.2.0: 4.2.0
DIFFERENT files:
4.0.4->4.2.0:
* Changed:
CHANGELOG.md +11/-0
Gemfile +2/-0
Gemfile.lock +5/-1
README.md +4/-4
Rakefile +1/-1
lib/unicode/emoji/constants.rb +4/-3
lib/unicode/emoji/generated/regex.rb +1/-1
lib/unicode/emoji/generated/regex_basic.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_picto.rb +1/-1
lib/unicode/emoji/generated/regex_picto_no_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_possible.rb +1/-1
lib/unicode/emoji/generated/regex_prop_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_prop_presentation.rb +1/-1
lib/unicode/emoji/generated/regex_text.rb +1/-1
lib/unicode/emoji/generated/regex_valid.rb +1/-1
lib/unicode/emoji/generated/regex_valid_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed_include_text.rb +1/-1
lib/unicode/emoji/generated_native/regex.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_text.rb +1/-1
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
unicode-emoji.gemspec +1/-1
DIFFERENT test_files:
4.0.4->4.2.0:
* Changed:
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
DIFFERENT Gemfile dependencies
4.0.4->4.2.0:
* Added:
mutex_m [">= 0"] (runtime)
ostruct [">= 0"] (runtime) |
Contributor
|
Contributor
gem compare --diff rubocop-ast 1.46.0 1.49.1Compared versions: ["1.46.0", "1.49.1"]
DIFFERENT files:
1.46.0->1.49.1:
* Changed:
README.md
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/README.md 2026-04-10 02:38:06.214094984 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/README.md 2026-04-10 02:38:06.229095006 +0000
@@ -5,2 +4,0 @@
-[](https://codeclimate.com/github/rubocop/rubocop-ast/test_coverage)
-[](https://codeclimate.com/github/rubocop/rubocop-ast/maintainability)
lib/rubocop/ast/node.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node.rb 2026-04-10 02:38:06.215094986 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node.rb 2026-04-10 02:38:06.230095008 +0000
@@ -110,0 +111,7 @@
+ str: :any_str,
+ dstr: :any_str,
+ xstr: :any_str,
+
+ sym: :any_sym,
+ dsym: :any_sym,
+
@@ -547,0 +555,8 @@
+ end
+
+ def any_str_type?
+ GROUP_FOR_TYPE[type] == :any_str
+ end
+
+ def any_sym_type?
+ GROUP_FOR_TYPE[type] == :any_sym
lib/rubocop/ast/node/mixin/method_dispatch_node.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:38:06.220094993 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/method_dispatch_node.rb 2026-04-10 02:38:06.235095015 +0000
@@ -35 +35 @@
- if loc.respond_to? :keyword
+ if loc?(:keyword)
lib/rubocop/ast/node/mixin/parameterized_node.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:38:06.221094995 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node/mixin/parameterized_node.rb 2026-04-10 02:38:06.235095015 +0000
@@ -67,0 +68 @@
+
lib/rubocop/ast/node_pattern.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:38:06.224094999 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern.rb 2026-04-10 02:38:06.237095018 +0000
@@ -26,0 +27,2 @@
+ class Invalid < StandardError; end
+
@@ -53 +54,0 @@
- Invalid = Class.new(StandardError)
lib/rubocop/ast/node_pattern/compiler.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:38:06.225095000 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler.rb 2026-04-10 02:38:06.238095020 +0000
@@ -12,0 +13 @@
+
lib/rubocop/ast/node_pattern/compiler/binding.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:38:06.225095000 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/binding.rb 2026-04-10 02:38:06.238095020 +0000
@@ -28,0 +29,6 @@
+ # Returns currently bound variable names
+ # @return [Array<String>] variable names that are currently bound
+ def bound_variables
+ @bound.values
+ end
+
lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:38:06.225095000 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/node_pattern_subcompiler.rb 2026-04-10 02:38:06.238095020 +0000
@@ -76 +76 @@
- .join(' && ')
+ .join(' && ')
lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:38:06.226095002 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/compiler/sequence_subcompiler.rb 2026-04-10 02:38:06.238095020 +0000
@@ -88 +88 @@
- def visit_any_order
+ def visit_any_order # rubocop:disable Metrics/AbcSize
@@ -90,0 +91 @@
+ bound_before = compiler.binding.bound_variables
@@ -94,0 +96,4 @@
+ # Initialize unification variables before the loop to persist across iterations
+ newly_bound = compiler.binding.bound_variables - bound_before
+ unify_init = compile_unify_init(newly_bound)
+
@@ -97 +102 @@
- (#{init}#{matched} = {}; true) &&
+ (#{init}#{unify_init}#{matched} = {}; true) &&
@@ -413,0 +419,7 @@
+ end
+
+ # Generate initialization code for unification variables
+ # @param newly_bound [Array<String>] variable names that were newly bound
+ # @return [String] initialization code
+ def compile_unify_init(newly_bound)
+ newly_bound.map { |var| "#{var} = nil; " }.join
lib/rubocop/ast/node_pattern/lexer.rex
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:38:06.226095002 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex 2026-04-10 02:38:06.239095021 +0000
@@ -24 +24 @@
- /"(.+?)"/ { emit :tSTRING }
+ /"(.*?)"/ { emit :tSTRING }
lib/rubocop/ast/node_pattern/lexer.rex.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:38:06.226095002 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/node_pattern/lexer.rex.rb 2026-04-10 02:38:06.239095021 +0000
@@ -5 +5 @@
-# Generated by: oedipus_lex version 2.6.2.
+# Generated by: oedipus_lex version 2.6.3.
@@ -125 +125 @@
- when ss.skip(/"(.+?)"/) then
+ when ss.skip(/"(.*?)"/) then
lib/rubocop/ast/processed_source.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/processed_source.rb 2026-04-10 02:38:06.227095004 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/processed_source.rb 2026-04-10 02:38:06.240095023 +0000
@@ -313 +312,0 @@
- require 'prism/translation/parser33'
@@ -316 +314,0 @@
- require 'prism/translation/parser34'
@@ -318,3 +316,4 @@
- when 3.5
- require 'prism/translation/parser35'
- Prism::Translation::Parser35
+ when 3.5, 4.0
+ Prism::Translation::Parser40
+ when 4.1
+ Prism::Translation::Parser41
lib/rubocop/ast/traversal.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/traversal.rb 2026-04-10 02:38:06.228095005 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/traversal.rb 2026-04-10 02:38:06.241095024 +0000
@@ -81,0 +82 @@
+
@@ -88 +89 @@
- lambda empty_else kwnilarg
+ lambda empty_else kwnilarg blocknilarg
lib/rubocop/ast/version.rb
--- /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.46.0/lib/rubocop/ast/version.rb 2026-04-10 02:38:06.228095005 +0000
+++ /tmp/d20260410-11400-ktlbbh/rubocop-ast-1.49.1/lib/rubocop/ast/version.rb 2026-04-10 02:38:06.241095024 +0000
@@ -6 +6 @@
- STRING = '1.46.0'
+ STRING = '1.49.1' |
Contributor
|
1 similar comment
Contributor
|
Contributor
gem compare unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT date:
3.1.4: 2025-01-13 00:00:00 UTC
3.2.0: 2025-09-09 00:00:00 UTC
DIFFERENT description:
3.1.4: [Unicode 16.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
3.2.0: [Unicode 17.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.
DIFFERENT version:
3.1.4: 3.1.4
3.2.0: 3.2.0
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md +8/-0
README.md +5/-5
lib/unicode/display_width/constants.rb +2/-2
lib/unicode/display_width/emoji_support.rb +5/-2
DIFFERENT extra_rdoc_files:
3.1.4->3.2.0:
* Changed:
README.md +5/-5
CHANGELOG.md +8/-0
DIFFERENT runtime dependencies:
3.1.4->3.2.0:
* Updated:
unicode-emoji from: ["~> 4.0", ">= 4.0.4"] to: ["~> 4.1"] |
Contributor
gem compare --diff unicode-display_width 3.1.4 3.2.0Compared versions: ["3.1.4", "3.2.0"]
DIFFERENT files:
3.1.4->3.2.0:
* Changed:
CHANGELOG.md
--- /tmp/d20260410-11921-17jg3s/unicode-display_width-3.1.4/CHANGELOG.md 2026-04-10 02:38:33.662117561 +0000
+++ /tmp/d20260410-11921-17jg3s/unicode-display_width-3.2.0/CHANGELOG.md 2026-04-10 02:38:33.663117561 +0000
@@ -2,0 +3,8 @@
+## 3.2.0
+
+- Unicode 17.0
+
+## 3.1.5
+
+- Cache Emoji support level for performance reasons #30, patch by @Earlopain:
+
README.md
--- /tmp/d20260410-11921-17jg3s/unicode-display_width-3.1.4/README.md 2026-04-10 02:38:33.662117561 +0000
+++ /tmp/d20260410-11921-17jg3s/unicode-display_width-3.2.0/README.md 2026-04-10 02:38:33.663117561 +0000
@@ -3 +3 @@
-Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth()](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
+Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
@@ -5 +5 @@
-Unicode version: **16.0.0** (September 2024)
+Unicode version: **17.0.0** (September 2025)
@@ -111,2 +111,2 @@
-Single Emoji character with Skin Tone Modifier | 2
-Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is configured to `:rgi` / `:rgi_at`
+Single Emoji character with Skin Tone Modifier | 2 unless Emoji mode is `:none` or `vs16`
+Skin Tone Modifier used in isolation or with invalid base | 2 if Emoji mode is `:rgi` / `:rgi_at`
@@ -191 +191 @@
-- Copyright (c) 2011, 2015-2024 Jan Lelis, https://janlelis.com, released under the MIT
+- Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
data/display_width.marshal.gz
Binary files /tmp/d20260410-11921-17jg3s/unicode-display_width-3.1.4/data/display_width.marshal.gz and /tmp/d20260410-11921-17jg3s/unicode-display_width-3.2.0/data/display_width.marshal.gz differ
lib/unicode/display_width/constants.rb
--- /tmp/d20260410-11921-17jg3s/unicode-display_width-3.1.4/lib/unicode/display_width/constants.rb 2026-04-10 02:38:33.662117561 +0000
+++ /tmp/d20260410-11921-17jg3s/unicode-display_width-3.2.0/lib/unicode/display_width/constants.rb 2026-04-10 02:38:33.664117561 +0000
@@ -5,2 +5,2 @@
- VERSION = "3.1.4"
- UNICODE_VERSION = "16.0.0"
+ VERSION = "3.2.0"
+ UNICODE_VERSION = "17.0.0"
lib/unicode/display_width/emoji_support.rb
--- /tmp/d20260410-11921-17jg3s/unicode-display_width-3.1.4/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:38:33.663117561 +0000
+++ /tmp/d20260410-11921-17jg3s/unicode-display_width-3.2.0/lib/unicode/display_width/emoji_support.rb 2026-04-10 02:38:33.664117561 +0000
@@ -1,2 +1 @@
-# require "rbconfig"
-# RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # windows
+# frozen_string_literal: true
@@ -15,0 +15,4 @@
+ @recommended ||= _recommended
+ end
+
+ def self._recommended |
Contributor
gem compare unicode-emoji 4.0.4 4.2.0Compared versions: ["4.0.4", "4.2.0"]
DIFFERENT date:
4.0.4: 2024-11-19 00:00:00 UTC
4.2.0: 2025-12-17 00:00:00 UTC
DIFFERENT description:
4.0.4: [Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
4.2.0: [Emoji 17.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.
DIFFERENT required_ruby_version:
4.0.4: >= 2.5, < 4.0
4.2.0: >= 2.5
DIFFERENT version:
4.0.4: 4.0.4
4.2.0: 4.2.0
DIFFERENT files:
4.0.4->4.2.0:
* Changed:
CHANGELOG.md +11/-0
Gemfile +2/-0
Gemfile.lock +5/-1
README.md +4/-4
Rakefile +1/-1
lib/unicode/emoji/constants.rb +4/-3
lib/unicode/emoji/generated/regex.rb +1/-1
lib/unicode/emoji/generated/regex_basic.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated/regex_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_picto.rb +1/-1
lib/unicode/emoji/generated/regex_picto_no_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_possible.rb +1/-1
lib/unicode/emoji/generated/regex_prop_emoji.rb +1/-1
lib/unicode/emoji/generated/regex_prop_presentation.rb +1/-1
lib/unicode/emoji/generated/regex_text.rb +1/-1
lib/unicode/emoji/generated/regex_valid.rb +1/-1
lib/unicode/emoji/generated/regex_valid_include_text.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed.rb +1/-1
lib/unicode/emoji/generated/regex_well_formed_include_text.rb +1/-1
lib/unicode/emoji/generated_native/regex.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_mqe_uqe.rb +1/-1
lib/unicode/emoji/generated_native/regex_include_text.rb +1/-1
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
unicode-emoji.gemspec +1/-1
DIFFERENT test_files:
4.0.4->4.2.0:
* Changed:
spec/emoji_test_txt_spec.rb +2/-2
spec/unicode_emoji_spec.rb +7/-2
DIFFERENT Gemfile dependencies
4.0.4->4.2.0:
* Added:
mutex_m [">= 0"] (runtime)
ostruct [">= 0"] (runtime) |
Contributor
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps rubocop from 1.79.2 to 1.86.1.
Release notes
Sourced from rubocop's releases.
... (truncated)
Changelog
Sourced from rubocop's changelog.
... (truncated)
Commits
af80266Cut 1.86.1eb504ceUpdate Changelog9c8fe2cMerge pull request #15085 from G-Rath/fix-style-guard11d796aMerge pull request #15093 from koic/fix_return_tool_execution_errors_instead_...4450067Return tool execution errors instead of protocol errors in MCP serverff64180Merge pull request #15092 from viralpraxis/fix-an-error-for-layout-end-alignm...11e04c0Merge pull request #15091 from eugeneius/duplicate_methods_anonymous_classesb8deea4Merge pull request #15090 from eugeneius/guard_clause_and_returne130020FixLayout/EndAlignmentcop error on an emptybegin4808594FixDuplicateMethodsfor anonymous classes in constant assignments and methodsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)