medieval_latina 1.2.5 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43d5f39268359a6e036e552b33f1320d6048a57d13bbcf8371574d00b3f4b729
4
- data.tar.gz: 53caa0736a7cf096046621ceb84b46736cdf8b7d80239cb53b6c0ce71f8a3eed
3
+ metadata.gz: 76d9ee49f0f6769ceaf009a097b7966c4ac453e946fcc97135e8706d9e45f051
4
+ data.tar.gz: 47321a09e37698234ea721dc9934852668032158ba82c3f3e2792accf5fae837
5
5
  SHA512:
6
- metadata.gz: 447cd93debfa02fd6c4c3c830a3e172ab22612206fd1fdb058d3cd0747c3df6598a77502f83d3c0fe4e7ef9fa33ffe5d7db88aeee0ff4ccd47d12f1795a212b9
7
- data.tar.gz: 187e5b5686df7c58a735505fad97294f36c1645aae5c506d63e5c6dca975784594db1e68afb83bbd47b83e2ca1b869ed6c34e3b5e1265aa969cf3d45bf9d9165
6
+ metadata.gz: 6802714afcad8201d94f5d03fa1131d980aa33fd38f24333f5596da24800e4791c79f70d7b6a0947dafdf6713e25779fdc6680a35ddd8e00bd1257080f8a98ad
7
+ data.tar.gz: 5a4ea8dce20962c4ffdb43dde5c81e9bdfff459989b9c70c11027227e81526ab4c09e2972d959d3d85eaf40bb72a42d7fd5d734820506cf3a200a18e10620e5d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- medieval_latina (1.2.5)
4
+ medieval_latina (1.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -33,7 +33,10 @@ MedievalLatina.verbs.include?("voco")
33
33
  MedievalLatina.verbs.include?("nauta")
34
34
  => false
35
35
 
36
- MedievalLatina.adverbs?("facile")
36
+ MedievalLatina.adverbs.include?("facile")
37
+ => true
38
+
39
+ MedievalLatina.adjectives.include?("certus")
37
40
  => true
38
41
  ```
39
42
 
@@ -1,3 +1,5 @@
1
+ require "set"
2
+
1
3
  class MedievalLatina
2
4
  DICTIONARY = {
3
5
  "ad" => "add",
@@ -48,6 +50,114 @@ class MedievalLatina
48
50
  "undeviginti" => "oon-day-veejin-tee"
49
51
  }.freeze
50
52
 
53
+ ADJECTIVES = %w[
54
+ acer
55
+ acerbus
56
+ adultus
57
+ aeguus
58
+ alius
59
+ altus
60
+ asper
61
+ audax
62
+ aureus
63
+ avarus
64
+ bellus
65
+ brevis
66
+ carus
67
+ celer
68
+ certus
69
+ civilis
70
+ clarus
71
+ communis
72
+ conscius
73
+ crudelis
74
+ cupidus
75
+ demens
76
+ desidiosus
77
+ difficilis
78
+ dignus
79
+ doctus
80
+ dulcis
81
+ durus
82
+ eloquens
83
+ eximius
84
+ extremus
85
+ facilis
86
+ falsus
87
+ felix
88
+ ferus
89
+ fortis
90
+ fortunatus
91
+ gratus
92
+ humanus
93
+ humilis
94
+ immortalis
95
+ inanis
96
+ incertus
97
+ infirmus
98
+ informis
99
+ ingens
100
+ iniustus
101
+ integer
102
+ invictus
103
+ iratus
104
+ iustus
105
+ laetus
106
+ levis
107
+ liber
108
+ longus
109
+ magnus
110
+ malus
111
+ medius
112
+ meus
113
+ militaris
114
+ mirus
115
+ mortalis
116
+ multus
117
+ novus
118
+ obstinatus
119
+ opportunus
120
+ parvus
121
+ plenus
122
+ praeclarus
123
+ praeteritus
124
+ proprius
125
+ prudens
126
+ publicus
127
+ pudicus
128
+ pulcher
129
+ rarus
130
+ rectus
131
+ rusticus
132
+ sacer
133
+ sacrilegus
134
+ salvus
135
+ sanctus
136
+ sapiens
137
+ scelestus
138
+ securus
139
+ serius
140
+ similis
141
+ simplex
142
+ sollicitus
143
+ solus
144
+ stabilis
145
+ studiosus
146
+ subitus
147
+ superbus
148
+ tardus
149
+ totus
150
+ tristis
151
+ turpis
152
+ tuus
153
+ urbanus
154
+ utilis
155
+ vehemens
156
+ velox
157
+ verus
158
+ vetus
159
+ ].to_set.freeze
160
+
51
161
  ADVERBS = %w[
52
162
  abhinc
53
163
  adhuc
@@ -105,7 +215,7 @@ class MedievalLatina
105
215
  utinam
106
216
  vere
107
217
  vix
108
- ].freeze
218
+ ].to_set.freeze
109
219
 
110
220
  VERBS = %w[
111
221
  abeo
@@ -335,5 +445,5 @@ class MedievalLatina
335
445
  voco
336
446
  volo
337
447
  vulnero
338
- ].freeze
448
+ ].to_set.freeze
339
449
  end
@@ -1,3 +1,3 @@
1
1
  class MedievalLatina
2
- VERSION = "1.2.5".freeze
2
+ VERSION = "1.3.0".freeze
3
3
  end
@@ -4,13 +4,35 @@ require "set"
4
4
 
5
5
  class MedievalLatina
6
6
  def self.[](text)
7
- prepare(text).map do |word|
7
+ prepare_text(text).map do |word|
8
8
  DICTIONARY[word] || new(word).call
9
9
  end.join(" ")
10
10
  end
11
11
 
12
- def self.prepare(text)
13
- text.gsub(/\W+/, " ").downcase.split(" ")
12
+ def self.prepare_text(text)
13
+ text.split(" ").map do |word|
14
+ prepare_word(word)
15
+ end
16
+ end
17
+
18
+ def self.prepare_word(word)
19
+ word.gsub(/\W+/, " ").strip.downcase
20
+ end
21
+
22
+ def self.adjective?(word)
23
+ ADJECTIVES.member?(prepare_word(word))
24
+ end
25
+
26
+ def self.adverb?(word)
27
+ ADVERBS.member?(prepare_word(word))
28
+ end
29
+
30
+ def self.verb?(word)
31
+ VERBS.member?(prepare_word(word))
32
+ end
33
+
34
+ def self.adjectives
35
+ ADJECTIVES
14
36
  end
15
37
 
16
38
  def self.adverbs
@@ -21,6 +43,10 @@ class MedievalLatina
21
43
  VERBS
22
44
  end
23
45
 
46
+ def self.words
47
+ ADJECTIVES | ADVERBS | Set.new(DICTIONARY.keys) | VERBS
48
+ end
49
+
24
50
  def initialize(word)
25
51
  @index = 0
26
52
  @word = word.downcase
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.2.5
4
+ version: 1.3.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-12 00:00:00.000000000 Z
11
+ date: 2022-12-18 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.