text-hyphen 1.5.0 → 1.6.0
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 +4 -4
- data/History.md +15 -0
- data/lib/text/hyphen.rb +21 -5
- data/test/test_text_hyphen.rb +5 -0
- metadata +10 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4f68be6e32a2f84b2525e443f3a4963aca956a8aa6519bc8626ef5e8e55bf852
|
|
4
|
+
data.tar.gz: 8fdb6d4b5e5824426f62742f8233cc03497a43c39ea08f97524f591ca4a4bd36
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7db44199be83d41accb98ad1c6daa2133544e147c6e5b8791d8e46bd3c60aee93746cc41b3a9d68f34c385c19097186c35d12409a6c92f23d22f076a6041e702
|
|
7
|
+
data.tar.gz: 31bae791ccc11da74136baf39c429a327b14fb6553aa7d911ddd89398d3e6eb86ea147aabb1fb0ed252899be7e0f5cf67e7f318cadde24c70485ce469db30253
|
data/History.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.6.0 / 2026-10-23
|
|
4
|
+
|
|
5
|
+
- Security:
|
|
6
|
+
|
|
7
|
+
- Language codes are validated before they are passed to `require`. A
|
|
8
|
+
crafted code such as `../../foo` could load any Ruby file on the load path
|
|
9
|
+
(GHSA-x432-p2c9-v84r). Codes may now only contain lowercase letters,
|
|
10
|
+
digits and underscores; anything else raises `ArgumentError`.
|
|
11
|
+
|
|
12
|
+
- Changes:
|
|
13
|
+
|
|
14
|
+
- Unknown language codes raise `ArgumentError` instead of `LoadError`.
|
|
15
|
+
|
|
16
|
+
- Language codes with dashes (`en-us`) are normalised as documented.
|
|
17
|
+
|
|
3
18
|
## 1.5.0 / 2023-03-18
|
|
4
19
|
|
|
5
20
|
- 1 new feature:
|
data/lib/text/hyphen.rb
CHANGED
|
@@ -19,7 +19,7 @@ class Text::Hyphen
|
|
|
19
19
|
require File.join(p, v, f)
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
VERSION = "1.
|
|
22
|
+
VERSION = "1.6.0"
|
|
23
23
|
|
|
24
24
|
DEFAULT_MIN_LEFT = 2
|
|
25
25
|
DEFAULT_MIN_RIGHT = 2
|
|
@@ -276,20 +276,36 @@ The language '%s' contains %d total hyphenation patterns.
|
|
|
276
276
|
return if @first_load
|
|
277
277
|
|
|
278
278
|
@iso_language ||= "en_us"
|
|
279
|
+
@iso_language = @iso_language.to_s.downcase.tr("-", "_")
|
|
280
|
+
|
|
281
|
+
unless valid_language?(@iso_language)
|
|
282
|
+
raise ArgumentError, "invalid language: #{@iso_language.inspect}"
|
|
283
|
+
end
|
|
279
284
|
|
|
280
285
|
unless @language
|
|
281
|
-
|
|
282
|
-
@language = Text::Hyphen::Language.const_get(@iso_language.upcase)
|
|
286
|
+
@language = require_language_definition(@iso_language)
|
|
283
287
|
@iso_language = @language.isocode if @language.isocode
|
|
284
288
|
end
|
|
285
289
|
|
|
286
|
-
@left
|
|
290
|
+
@left ||= @language.left
|
|
287
291
|
@right ||= @language.right
|
|
288
|
-
|
|
289
292
|
@iso_language
|
|
290
293
|
end
|
|
291
294
|
private :load_language
|
|
292
295
|
|
|
296
|
+
def valid_language?(language)
|
|
297
|
+
language.match?(/\A[a-z][a-z0-9_]+\z/) && !language.end_with?("_")
|
|
298
|
+
end
|
|
299
|
+
private :valid_language?
|
|
300
|
+
|
|
301
|
+
def require_language_definition(language)
|
|
302
|
+
require "text/hyphen/language/#{language}"
|
|
303
|
+
Text::Hyphen::Language.const_get(language.upcase)
|
|
304
|
+
rescue LoadError
|
|
305
|
+
raise ArgumentError, "unknown language: #{language.inspect}"
|
|
306
|
+
end
|
|
307
|
+
private :require_language_definition
|
|
308
|
+
|
|
293
309
|
def split_phrase(phrase)
|
|
294
310
|
phrase.split(/[[:space:]]+/)
|
|
295
311
|
end
|
data/test/test_text_hyphen.rb
CHANGED
|
@@ -85,4 +85,9 @@ class TestTextHyphen < Test::Unit::TestCase
|
|
|
85
85
|
a = Text::Hyphen.new(:left => 0, :right => 0).visualize("This useful library supports phrases and sentences.")
|
|
86
86
|
assert_equal "This use-ful li-brary sup-port-s phras-es and sen-tences.", a
|
|
87
87
|
end
|
|
88
|
+
|
|
89
|
+
def test_iso_language_uses_language_isocode
|
|
90
|
+
assert_equal "de", Text::Hyphen.new(:language => "de1").iso_language
|
|
91
|
+
assert_equal "hu", Text::Hyphen.new(:language => "hu1").iso_language
|
|
92
|
+
end
|
|
88
93
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: text-hyphen
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Austin Ziegler
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: hoe
|
|
@@ -140,20 +139,20 @@ dependencies:
|
|
|
140
139
|
requirements:
|
|
141
140
|
- - ">="
|
|
142
141
|
- !ruby/object:Gem::Version
|
|
143
|
-
version: '
|
|
142
|
+
version: '7.0'
|
|
144
143
|
- - "<"
|
|
145
144
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: '
|
|
145
|
+
version: '9'
|
|
147
146
|
type: :development
|
|
148
147
|
prerelease: false
|
|
149
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
150
149
|
requirements:
|
|
151
150
|
- - ">="
|
|
152
151
|
- !ruby/object:Gem::Version
|
|
153
|
-
version: '
|
|
152
|
+
version: '7.0'
|
|
154
153
|
- - "<"
|
|
155
154
|
- !ruby/object:Gem::Version
|
|
156
|
-
version: '
|
|
155
|
+
version: '9'
|
|
157
156
|
- !ruby/object:Gem::Dependency
|
|
158
157
|
name: simplecov
|
|
159
158
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,7 +167,7 @@ dependencies:
|
|
|
168
167
|
- - "~>"
|
|
169
168
|
- !ruby/object:Gem::Version
|
|
170
169
|
version: '0.21'
|
|
171
|
-
description:
|
|
170
|
+
description: |
|
|
172
171
|
Text::Hyphen is a Ruby library to hyphenate words in various languages using
|
|
173
172
|
Ruby-fied versions of TeX hyphenation patterns. It will properly hyphenate
|
|
174
173
|
various words according to the rules of the language the word is written in. The
|
|
@@ -184,6 +183,8 @@ description: |-
|
|
|
184
183
|
Ruby 1.8.7 and Ruby 1.9.2 support (but please read below). In short, Ruby 1.8
|
|
185
184
|
support is deprecated and I will not be providing any bug fixes related to Ruby
|
|
186
185
|
1.8. New features will be developed and tested against Ruby 1.9 only.
|
|
186
|
+
|
|
187
|
+
==== To Install:
|
|
187
188
|
email:
|
|
188
189
|
- halostatue@gmail.com
|
|
189
190
|
executables:
|
|
@@ -194,7 +195,6 @@ extra_rdoc_files:
|
|
|
194
195
|
- Contributing.md
|
|
195
196
|
- History.md
|
|
196
197
|
- Licence.md
|
|
197
|
-
- Manifest.txt
|
|
198
198
|
- README.md
|
|
199
199
|
files:
|
|
200
200
|
- ".standard.yml"
|
|
@@ -313,13 +313,11 @@ files:
|
|
|
313
313
|
- test/data/bug_9807_utf-8.rb
|
|
314
314
|
- test/test_bugs.rb
|
|
315
315
|
- test/test_text_hyphen.rb
|
|
316
|
-
homepage: https://rubygems.org/gems/text-hyphen
|
|
317
316
|
licenses:
|
|
318
317
|
- MIT
|
|
319
318
|
- Various
|
|
320
319
|
metadata:
|
|
321
320
|
rubygems_mfa_required: 'true'
|
|
322
|
-
post_install_message:
|
|
323
321
|
rdoc_options:
|
|
324
322
|
- "--main"
|
|
325
323
|
- README.md
|
|
@@ -336,8 +334,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
336
334
|
- !ruby/object:Gem::Version
|
|
337
335
|
version: '0'
|
|
338
336
|
requirements: []
|
|
339
|
-
rubygems_version:
|
|
340
|
-
signing_key:
|
|
337
|
+
rubygems_version: 4.0.20
|
|
341
338
|
specification_version: 4
|
|
342
339
|
summary: Text::Hyphen is a Ruby library to hyphenate words in various languages using
|
|
343
340
|
Ruby-fied versions of TeX hyphenation patterns
|