medieval_latina 1.0.21 → 1.1.1

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: 9f2c50ed0ff5f38fc769e71563efea8dba16bf01437cfc65ba65b44141e48843
4
- data.tar.gz: 8d354a14fd2b7911cf6dbf0eabe033682ff491dd1d685c61ece984bc037c3f1f
3
+ metadata.gz: 1ef4eda31e51cce9dd3a6490027cca9232cf90c331ca910806e0b130075732b2
4
+ data.tar.gz: b748a011fe0b8b4c87d233010e1749d568f69a1e4ea9ddd29ac04a863c6d1972
5
5
  SHA512:
6
- metadata.gz: 12c29ab5a581e8fba850636d0391c2d35661170cc37bd34f9e46f4e6932424677288bb4daea8dfeb7e113fb291c4309fced60fbbfc7ccbdfc00146820c109462
7
- data.tar.gz: a0661346a78b07f636ec3a86012577d474ac2c5602d8cd5fb6ee6bbd3d1c411a2ccfbbc7fe485aeefa7f45f8a601f2b1d82bdf18203fc3cf073fd62e242ab992
6
+ metadata.gz: 34ded5e4566d025bc600f8a0643c430c7f1e306698fe3c61921f236430cc096389a35d57a4423c1d7c4291c1267c9977ffdfa5246026d8c7c88e38620584d01b
7
+ data.tar.gz: 38fbca59ce3f7bcc7aaa6a1d7742838001c17040e765950b01996c5ed456a80fff83f21689a9ee572b895cc4df4cd3b7ffb02908654e32a638e734bf5f91928d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- medieval_latina (1.0.21)
4
+ medieval_latina (1.1.1)
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
@@ -3,6 +3,7 @@ class MedievalLatina
3
3
  "ad" => "add",
4
4
  "adveniat" => "ad-vayniat",
5
5
  "aeternus" => "aeternus",
6
+ "africa" => "africa",
6
7
  "alma" => "almuh",
7
8
  "amo" => "amo",
8
9
  "appello" => "appello",
@@ -20,8 +21,10 @@ class MedievalLatina
20
21
  "omnia" => "ohm-nia",
21
22
  "optime" => "op-tee-may",
22
23
  "pater" => "pah-tare",
24
+ "principio" => "preen-cheepio",
23
25
  "puella" => "poo-elah",
24
26
  "quo" => "quo",
27
+ "rex" => "rex",
25
28
  "sanctificetur" => "sahnk-teefee-chaytoor",
26
29
  "sextus" => "sextus",
27
30
  "stibium" => "stih-bium",
@@ -1,3 +1,3 @@
1
1
  class MedievalLatina
2
- VERSION = "1.0.21"
2
+ VERSION = "1.1.1"
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.21
4
+ version: 1.1.1
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-06-07 00:00:00.000000000 Z
11
+ date: 2022-09-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.