medieval_latina 1.2.5 → 1.3.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: 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.