From 2dfcd5bea095466511a3ec1e785f6f5398d4b09e Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Sun, 30 Aug 2026 05:05:15 +0200 Subject: [PATCH 1/2] Forward legacy options from String extension --- lib/unicode/display_width/string_ext.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/unicode/display_width/string_ext.rb b/lib/unicode/display_width/string_ext.rb index e19cff8..e603f7a 100644 --- a/lib/unicode/display_width/string_ext.rb +++ b/lib/unicode/display_width/string_ext.rb @@ -4,6 +4,6 @@ class String def display_width(ambiguous = nil, overwrite = nil, old_options = {}, **options) - Unicode::DisplayWidth.of(self, ambiguous, overwrite, old_options = {}, **options) + Unicode::DisplayWidth.of(self, ambiguous, overwrite, old_options, **options) end end From 0f7cedcd335c84e30c212f06950442b22d52e2a6 Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Sun, 27 Sep 2026 12:12:31 +0700 Subject: [PATCH 2/2] Cover legacy String option forwarding --- spec/display_width_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/display_width_spec.rb b/spec/display_width_spec.rb index 067dd97..1ee4623 100644 --- a/spec/display_width_spec.rb +++ b/spec/display_width_spec.rb @@ -3,6 +3,13 @@ require_relative '../lib/unicode/display_width/string_ext' describe 'Unicode::DisplayWidth.of' do + it 'forwards positional legacy options from String with the same precedence as .of' do + expect( '·'.display_width(nil, nil, { ambiguous: 2 }) ).to eq 2 + expect( '·'.display_width(nil, nil, { ambiguous: 2 }, ambiguous: 1) ).to eq( + Unicode::DisplayWidth.of('·', nil, nil, { ambiguous: 2 }, ambiguous: 1) + ) + end + describe '[east asian width]' do it 'returns 2 for F' do expect( '!'.display_width ).to eq 2