medieval_latina 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76d9ee49f0f6769ceaf009a097b7966c4ac453e946fcc97135e8706d9e45f051
4
- data.tar.gz: 47321a09e37698234ea721dc9934852668032158ba82c3f3e2792accf5fae837
3
+ metadata.gz: 01eca8c2e6d2b4f07f3c53c3e4ad5b8b8a965ac44eb4b83fd3336214ff48ee48
4
+ data.tar.gz: e937aaf342fe71e88dfdd30f4c370bb7be2ea623f769a2e0e01b96d82a7dc9a2
5
5
  SHA512:
6
- metadata.gz: 6802714afcad8201d94f5d03fa1131d980aa33fd38f24333f5596da24800e4791c79f70d7b6a0947dafdf6713e25779fdc6680a35ddd8e00bd1257080f8a98ad
7
- data.tar.gz: 5a4ea8dce20962c4ffdb43dde5c81e9bdfff459989b9c70c11027227e81526ab4c09e2972d959d3d85eaf40bb72a42d7fd5d734820506cf3a200a18e10620e5d
6
+ metadata.gz: 320e9b86260e6cb8842da8892eeda25a1f89b61f0f13dce652089094d88f748e7921812e5fd6443a2e25def60fa8fb37cadb53aefbed266029c1421a8d7d812b
7
+ data.tar.gz: 447bbd6c1aa938a9bc21e4b75bd27c654efb0bd7378a1733c808320eaf09f6b8b01e56c7a8f28ac7b4b46d710bcdb75554605fafe4623298c909b3513d453a9a
@@ -19,12 +19,11 @@ jobs:
19
19
  - macos
20
20
  - ubuntu
21
21
  ruby:
22
- - 2.4
23
- - 2.5
24
22
  - 2.6
25
23
  - 2.7
26
24
  - 3.0
27
25
  - 3.1
26
+ - 3.2
28
27
  allow_failures:
29
28
  - false
30
29
  include:
data/.standard.yml ADDED
@@ -0,0 +1,3 @@
1
+ fix: true
2
+ parallel: true
3
+ ruby_version: 2.6
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.0.2
1
+ ruby 3.2.0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- medieval_latina (1.3.0)
4
+ medieval_latina (1.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -52,4 +52,4 @@ DEPENDENCIES
52
52
  standard
53
53
 
54
54
  BUNDLED WITH
55
- 2.2.22
55
+ 2.4.1
data/README.md CHANGED
@@ -27,16 +27,19 @@ Or install it yourself as:
27
27
  => "ohm-nia"
28
28
  => "poon-yoh"
29
29
 
30
- MedievalLatina.verbs.include?("voco")
30
+ MedievalLatina.verb?("voco")
31
31
  => true
32
32
 
33
- MedievalLatina.verbs.include?("nauta")
33
+ MedievalLatina.verb?("nauta")
34
34
  => false
35
35
 
36
- MedievalLatina.adverbs.include?("facile")
36
+ MedievalLatina.adverb?("facile")
37
37
  => true
38
38
 
39
- MedievalLatina.adjectives.include?("certus")
39
+ MedievalLatina.adjective?("certus")
40
+ => true
41
+
42
+ MedievalLatina.noun?("canis")
40
43
  => true
41
44
  ```
42
45
 
@@ -217,6 +217,292 @@ class MedievalLatina
217
217
  vix
218
218
  ].to_set.freeze
219
219
 
220
+ NOUNS = %w[
221
+ accusator
222
+ acerbitas
223
+ acies
224
+ adulatio
225
+ adulescens
226
+ adulescentia
227
+ aedificium
228
+ aequitas
229
+ aes
230
+ aetas
231
+ aevum
232
+ ager
233
+ agricola
234
+ agricola
235
+ agricultura
236
+ ambitio
237
+ amicitia
238
+ amicus
239
+ amnis
240
+ amor
241
+ ancilla
242
+ angellus
243
+ anima
244
+ animal
245
+ annus
246
+ apparatus
247
+ aqua
248
+ ara
249
+ aratrum
250
+ arbitrium
251
+ arbor
252
+ arcus
253
+ argentum
254
+ argumentum
255
+ arma
256
+ ars
257
+ arx
258
+ astrum
259
+ auctor
260
+ audacia
261
+ auditor
262
+ augur
263
+ auris
264
+ aurum
265
+ auxilium
266
+ avaritia
267
+ aviditas
268
+ avis
269
+ bellum
270
+ belua
271
+ beneficium
272
+ bestia
273
+ bos
274
+ caelum
275
+ calamitas
276
+ canis
277
+ caput
278
+ caritas
279
+ carmen
280
+ castrum
281
+ casus
282
+ causa
283
+ celeritas
284
+ cena
285
+ certamen
286
+ civis
287
+ civitas
288
+ clementia
289
+ concilium
290
+ coniuratio
291
+ conscientia
292
+ consilium
293
+ consul
294
+ consultum
295
+ copia
296
+ copiae
297
+ cor
298
+ cornu
299
+ corpus
300
+ culpa
301
+ cupiditas
302
+ cura
303
+ custodia
304
+ dea
305
+ decor
306
+ decretum
307
+ detrimentum
308
+ deus
309
+ dictator
310
+ dies
311
+ dignitas
312
+ diligentia
313
+ discessus
314
+ discipulus
315
+ disputatio
316
+ divitiae
317
+ doctrina
318
+ dolor
319
+ dominatus
320
+ dominus
321
+ domus
322
+ dux
323
+ ecclesia
324
+ eloquentia
325
+ eques
326
+ equus
327
+ excellentia
328
+ excidium
329
+ exercitus
330
+ exilium
331
+ exitium
332
+ exsul
333
+ fabula
334
+ factum
335
+ facultas
336
+ fama
337
+ familia
338
+ fatum
339
+ femina
340
+ feriae
341
+ ferrum
342
+ fides
343
+ flumen
344
+ forma
345
+ fortuna
346
+ forum
347
+ frigus
348
+ fructus
349
+ fuga
350
+ furor
351
+ gemma
352
+ gens
353
+ genus
354
+ gloria
355
+ gravitas
356
+ habitus
357
+ hasta
358
+ homo
359
+ honor
360
+ hospes
361
+ hostis
362
+ ignavia
363
+ ignominia
364
+ imperium
365
+ industria
366
+ ingenium
367
+ iniuria
368
+ insidia
369
+ insula
370
+ invidia
371
+ ira
372
+ iudex
373
+ iudicium
374
+ ius
375
+ iuvenis
376
+ iuventus
377
+ labor
378
+ lapis
379
+ laus
380
+ lex
381
+ liber
382
+ libertas
383
+ litterae
384
+ ludus
385
+ luna
386
+ magister
387
+ maiores
388
+ mater
389
+ mare
390
+ medica
391
+ medicus
392
+ memoria
393
+ mens
394
+ merx
395
+ miles
396
+ miseria
397
+ mors
398
+ mores
399
+ mos
400
+ mulier
401
+ mundus
402
+ munia
403
+ nauta
404
+ navigatio
405
+ nefas
406
+ nomen
407
+ nox
408
+ nubes
409
+ nuntius
410
+ nuptiae
411
+ obses
412
+ obsidio
413
+ odium
414
+ officium
415
+ onus
416
+ opera
417
+ opes
418
+ ops
419
+ opus
420
+ oratio
421
+ os
422
+ otium
423
+ paedagogus
424
+ pars
425
+ pater
426
+ patientia
427
+ paupertas
428
+ pax
429
+ pecunia
430
+ pedes
431
+ periculum
432
+ philosophia
433
+ plebs
434
+ poena
435
+ poeta
436
+ populus
437
+ porta
438
+ portus
439
+ potestas
440
+ principium
441
+ probitas
442
+ prudentia
443
+ puella
444
+ puer
445
+ pugna
446
+ rapina
447
+ ratio
448
+ regio
449
+ regnum
450
+ rex
451
+ rus
452
+ sacerdos
453
+ sagitta
454
+ sapientia
455
+ satura
456
+ scelus
457
+ schola
458
+ scientia
459
+ scriptor
460
+ senator
461
+ senectus
462
+ senex
463
+ serva
464
+ servus
465
+ signum
466
+ silva
467
+ socius
468
+ sol
469
+ spes
470
+ status
471
+ studium
472
+ summa
473
+ temeritas
474
+ temperantia
475
+ tempestas
476
+ templum
477
+ tempus
478
+ terra
479
+ testis
480
+ timor
481
+ turba
482
+ tyrannus
483
+ urbs
484
+ uxor
485
+ valetudo
486
+ vacca
487
+ venenum
488
+ verbum
489
+ veritas
490
+ via
491
+ victor
492
+ victoria
493
+ victus
494
+ vicus
495
+ villa
496
+ vinum
497
+ vir
498
+ vires
499
+ virtus
500
+ vis
501
+ visus
502
+ vitium
503
+ vulgus
504
+ ].to_set.freeze
505
+
220
506
  VERBS = %w[
221
507
  abeo
222
508
  accedo
@@ -1,3 +1,3 @@
1
1
  class MedievalLatina
2
- VERSION = "1.3.0".freeze
2
+ VERSION = "1.4.0".freeze
3
3
  end
@@ -4,14 +4,24 @@ require "set"
4
4
 
5
5
  class MedievalLatina
6
6
  def self.[](text)
7
- prepare_text(text).map do |word|
8
- DICTIONARY[word] || new(word).call
9
- end.join(" ")
7
+ prepared_words = prepare_text(text).map do |string|
8
+ if word?(string)
9
+ DICTIONARY[string] || new(string).call
10
+ else
11
+ string
12
+ end
13
+ end
14
+
15
+ rejoin_words(prepared_words)
10
16
  end
11
17
 
12
18
  def self.prepare_text(text)
13
- text.split(" ").map do |word|
14
- prepare_word(word)
19
+ text.scan(/[\w'-]+|[[:punct:]]+/).map do |string|
20
+ if word?(string)
21
+ prepare_word(string)
22
+ else
23
+ string
24
+ end
15
25
  end
16
26
  end
17
27
 
@@ -27,6 +37,10 @@ class MedievalLatina
27
37
  ADVERBS.member?(prepare_word(word))
28
38
  end
29
39
 
40
+ def self.noun?(word)
41
+ NOUNS.member?(prepare_word(word))
42
+ end
43
+
30
44
  def self.verb?(word)
31
45
  VERBS.member?(prepare_word(word))
32
46
  end
@@ -39,12 +53,29 @@ class MedievalLatina
39
53
  ADVERBS
40
54
  end
41
55
 
56
+ def self.nouns
57
+ NOUNS
58
+ end
59
+
60
+ def self.rejoin_words(array)
61
+ array
62
+ .join(" ")
63
+ .gsub(/ +?,/, ",")
64
+ .gsub(/ +?;/, ";")
65
+ .gsub(/ +?\./, ".")
66
+ .gsub(/ +?\?/, "?")
67
+ end
68
+
42
69
  def self.verbs
43
70
  VERBS
44
71
  end
45
72
 
73
+ def self.word?(string)
74
+ string.match?(/\w/)
75
+ end
76
+
46
77
  def self.words
47
- ADJECTIVES | ADVERBS | Set.new(DICTIONARY.keys) | VERBS
78
+ ADJECTIVES | ADVERBS | Set.new(DICTIONARY.keys) | NOUNS | VERBS
48
79
  end
49
80
 
50
81
  def initialize(word)
@@ -71,10 +102,10 @@ class MedievalLatina
71
102
  attr_reader :word
72
103
 
73
104
  CONSONENTS = {
74
- c: ->(rest) { SOFT_C.any? { |item| rest.start_with?(item) } ? "ch" : "k" },
75
- g: ->(rest) { SOFT_G.any? { |item| rest.start_with?(item) } ? "j" : "g" },
105
+ c: ->(rest) { (SOFT_C.any? { |item| rest.start_with?(item) }) ? "ch" : "k" },
106
+ g: ->(rest) { (SOFT_G.any? { |item| rest.start_with?(item) }) ? "j" : "g" },
76
107
  j: ->(rest) { "y" },
77
- t: ->(rest) { SOFT_T.any? { |item| rest.start_with?(item) } ? "ts" : "t" },
108
+ t: ->(rest) { (SOFT_T.any? { |item| rest.start_with?(item) }) ? "ts" : "t" },
78
109
  x: ->(rest) { "ks" }
79
110
  }
80
111
  CONSONENT_TEAMS = {gn: "n-y", qu: "kw"}.freeze
@@ -115,7 +146,7 @@ class MedievalLatina
115
146
 
116
147
  def initialize(text, index)
117
148
  @character = text[index]
118
- @rest = text[index + 1..-1].chars.join
149
+ @rest = text[index + 1..].chars.join
119
150
  end
120
151
 
121
152
  def to_team
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.description = description
16
16
  spec.homepage = "https://github.com/jaysonvirissimo/medieval_latina"
17
17
  spec.license = "MIT"
18
- spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
18
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
19
19
  spec.metadata["allowed_push_host"] = "https://rubygems.org/"
20
20
  spec.metadata["homepage_uri"] = spec.homepage
21
21
  spec.metadata["source_code_uri"] = github_uri
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: medieval_latina
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jayson Virissimo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-18 00:00:00.000000000 Z
11
+ date: 2023-02-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  There are good text-to-speech engines for English and classical Latin, but none for medieval Latin.
@@ -22,6 +22,7 @@ files:
22
22
  - ".github/workflows/tests.yml"
23
23
  - ".gitignore"
24
24
  - ".rspec"
25
+ - ".standard.yml"
25
26
  - ".tool-versions"
26
27
  - Gemfile
27
28
  - Gemfile.lock
@@ -50,14 +51,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
50
51
  requirements:
51
52
  - - ">="
52
53
  - !ruby/object:Gem::Version
53
- version: 2.4.0
54
+ version: 2.6.0
54
55
  required_rubygems_version: !ruby/object:Gem::Requirement
55
56
  requirements:
56
57
  - - ">="
57
58
  - !ruby/object:Gem::Version
58
59
  version: '0'
59
60
  requirements: []
60
- rubygems_version: 3.3.5
61
+ rubygems_version: 3.4.1
61
62
  signing_key:
62
63
  specification_version: 4
63
64
  summary: Transform medieval Latin text into phonetic English