medieval_latina 1.0.20 → 1.1.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: 8181a56df84dd5b6f8d84a8e9aebd0bb2bb696cbce37189ec257ec711fb47e29
4
- data.tar.gz: ea961d3bb9474308c2234cf1e643e34b4204a2c5f1c4868e6acc518b9aacf957
3
+ metadata.gz: e68e66e3f4eff030e0a8d38e9856f5fc854aea5f7c5b1f03516537a07a74a569
4
+ data.tar.gz: 81c6b0f52be99ec12ec9c39895edcad1f89d893302cc5131a1b0c99d8eb49583
5
5
  SHA512:
6
- metadata.gz: 8a74afe75a34f14ea038726c0d68bb5fec407a176d4f727f187226b62e53459e05bfe21e5395c5f645f1bd27d16d3dbe72c0cfe39cee65fca8105112c2e32905
7
- data.tar.gz: 595c51765a21328d72f79e9dffc29bb8ffbd92351bd996bf4e5d576a986c14e950082ae30665e4de2805b0428d6d87ab3ff340038955ff8ed96bea1777592105
6
+ metadata.gz: 87e847ad4dd6d37ba84e92b5345a936fcb32809fe773f9b2af4044768f177253e3dae686c1ca90eeaed9dc690df7a3fdf1db5057e529964c353c9623ef4cdddf
7
+ data.tar.gz: 016f557843f2d116f2d0d68b4fbf719d7aa640cf00a07c322213653f0ae7d3b5439a69e168ac93f11a6c7b000b4643f03956a9fd9ef02babea778007c56fa1ed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- medieval_latina (1.0.20)
4
+ medieval_latina (1.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -23,9 +23,9 @@ Or install it yourself as:
23
23
 
24
24
  ```ruby
25
25
  ["caelum", "omnia", "pugno"].each { |word| puts MedievalLatina[word] }
26
- # "chay-loom"
27
- # "onm-nee-ah"
28
- # "poon-yoh"
26
+ # "chayloom"
27
+ # "ohm-nia"
28
+ # "poon-yoh"
29
29
  ```
30
30
 
31
31
  ## Development
@@ -20,10 +20,13 @@ class MedievalLatina
20
20
  "omnia" => "ohm-nia",
21
21
  "optime" => "op-tee-may",
22
22
  "pater" => "pah-tare",
23
+ "principio" => "preen-cheepio",
23
24
  "puella" => "poo-elah",
24
25
  "quo" => "quo",
26
+ "rex" => "rex",
25
27
  "sanctificetur" => "sahnk-teefee-chaytoor",
26
28
  "sextus" => "sextus",
29
+ "stibium" => "stih-bium",
27
30
  "timeo" => "teemayo",
28
31
  "toga" => "toga"
29
32
  }.freeze
@@ -1,3 +1,3 @@
1
1
  class MedievalLatina
2
- VERSION = "1.0.20"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -1,13 +1,24 @@
1
1
  require "medieval_latina/dictionary"
2
2
  require "medieval_latina/version"
3
+ require "set"
3
4
 
4
5
  class MedievalLatina
5
6
  def self.[](text)
6
- text.split(" ").map { |word|
7
+ clean(text).split(" ").map { |word|
7
8
  DICTIONARY[word.downcase] || new(word).call
8
9
  }.join(" ")
9
10
  end
10
11
 
12
+ def self.clean(text)
13
+ text.chars.map do |character|
14
+ if PUNCTUATION.member?(character)
15
+ " "
16
+ else
17
+ character
18
+ end
19
+ end.join
20
+ end
21
+
11
22
  def initialize(word)
12
23
  @index = 0
13
24
  @word = word.downcase
@@ -39,6 +50,7 @@ class MedievalLatina
39
50
  x: ->(rest) { "ks" }
40
51
  }
41
52
  CONSONENT_TEAMS = {gn: "n-y", qu: "kw"}.freeze
53
+ PUNCTUATION = Set.new([".", ",", "!"]).freeze
42
54
  SOFT_C = ["e", "i", "ae", "oe"].freeze
43
55
  SOFT_G = SOFT_C
44
56
  SOFT_T = ["i"].freeze
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.0.20
4
+ version: 1.1.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-05-21 00:00:00.000000000 Z
11
+ date: 2022-06-20 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.