renamr 1.0.16 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa2277535f12269fea504e41087d5d20d762ccec138969cac71f399fa845b0f2
4
- data.tar.gz: 9eae0471d031870cc7a44586d5634b4f1e31464c1b573dd923e1bbb9207c7108
3
+ metadata.gz: 7bdc397de28bfad991bced9b577d5f69b510052389ed06af3044490fac938336
4
+ data.tar.gz: 56e4d20a103f4c330ba2ed9767d4ced07076b0eaf602a14a89ee3c25af7d0f26
5
5
  SHA512:
6
- metadata.gz: bfc1abe2a3672e9461e40fde27bc58d5d0b0a9f91fce0c37f77d7132adcdf2787914d8f5b2fccbde8da53425626743e627b329633f9435eda870cdf171cce0bf
7
- data.tar.gz: '095378848bee64538adcc2979b54b75527643060ed226390c7dfb476be82b347e4fcb8ec35f52f8a2c1d508b343942173b8c4ca530086b9e7c1e4794c3a091e0'
6
+ metadata.gz: 91bd8b832ccd58c174d91825a2690641ec21b8b408ab9da3ee16c3625530748373520aa5417d16ca707bcdf8a7f552cfdfd8e19c1e843d44f0492a8be155d761
7
+ data.tar.gz: 3f2e603f6ae91a1d3963fb0386c9c9b8f50c8fd12e109b675e6375aa70fd407440ca0df56c17bc3c347b074a94fe455c0445fb4fdbcda10d30600a3f142bd8d5
data/lib/renamr/utils.rb CHANGED
@@ -5,12 +5,20 @@
5
5
  # SPDX-License-Identifier: 0BSD
6
6
 
7
7
  require 'ellipsized'
8
+ require 'unicode/display_width'
8
9
 
9
10
  # Provides utility methods.
10
11
  class Utils
11
12
  class << self
13
+ # Trims src to fit lim terminal columns. Wide characters such as CJK
14
+ # occupy two columns, so the string keeps shrinking until its display
15
+ # width fits the limit.
12
16
  def trim(src, lim)
13
- src.ellipsized(lim, '~', :center)
17
+ out = src.ellipsized(lim, '~', :center)
18
+ while out.length > 1 && Unicode::DisplayWidth.of(out) > lim
19
+ out = out.ellipsized(out.length - 1, '~', :center)
20
+ end
21
+ out
14
22
  end
15
23
  end
16
24
  end
@@ -5,6 +5,6 @@
5
5
  # SPDX-License-Identifier: 0BSD
6
6
 
7
7
  module Renamr
8
- VERSION = '1.0.16'
9
- DATE = '2026-07-12'
8
+ VERSION = '1.0.17'
9
+ DATE = '2026-07-13'
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renamr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.16
4
+ version: 1.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rabkin
@@ -51,6 +51,26 @@ dependencies:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '4.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: unicode-display_width
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '2.4'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '4'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '2.4'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '4'
54
74
  description: |2
55
75
  Renamr normalizes file and directory names. It rewrites them with
56
76
  lowercase English letters, digits, and hyphens in place of spaces and
@@ -112,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
132
  - !ruby/object:Gem::Version
113
133
  version: '0'
114
134
  requirements: []
115
- rubygems_version: 4.0.4
135
+ rubygems_version: 3.6.9
116
136
  specification_version: 4
117
137
  summary: File and directory name normalizer
118
138
  test_files: []