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 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