hebrew 0.2.1 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hebrew.rb +26 -0
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0801a90c50ccf260e20daa15b9c9691b18fc3dc6908a2221614f4c1ab6a3f453'
4
- data.tar.gz: 9b4309ede2544c914b134cfdd06c81e806d2908ba41105f7799f7e3d3e25bec3
3
+ metadata.gz: a509e56919f2055864ca238d0ce48eee1008016ce5d374d94af15493669d8af8
4
+ data.tar.gz: b4dec8e825ae6dbca6c7fc9c4fe0c86e44606892c30f06b7201e3aab49929702
5
5
  SHA512:
6
- metadata.gz: 2e6885a12245311fa51f8610fe43c8903763251bf718b2db053c9b97deb741f64b83f5f5245dcd3a56fbcb668e614b5e284f41f287ef2278f9dc347c1f6f8ea0
7
- data.tar.gz: 44dab01c3339147f11ad69567a6087d3f48680c44b226e03839a14d39c36c19fd3a39d0c2de9a0ea9ad2dd290cd63a740c0b3cec7d9f59b69a7eccf2b1d25fbd
6
+ metadata.gz: ba23fb87e55a1eba175fcbfc081ef7b9ed4ddfe554a079d4c69b52c87d676811f5f76e0c2bc417b1a998323b8dbacc9070d095060e202c0f9ab0218b9d8cd051
7
+ data.tar.gz: 31e495df211f42b7308d0e31b710396d7861e177d1b49a0df714661abc266fa910dfa64c50da99a7d884fdda8e4fb68d0444ffc7165576466da70d5c648e2282
@@ -13,6 +13,10 @@ FIANLS_CP1255 = ["\xea".force_encoding('windows-1255'), "\xed".force_encoding('w
13
13
  FINALS_UTF8 = ["\u05da", "\u05dd", "\u05df", "\u05e3", "\u05e5"]
14
14
  HEB_UTF8_START = 1424
15
15
  HEB_UTF8_END = 1535
16
+ HEB_UTF8_XIRIK = 1460
17
+ HEB_UTF8_XOLAM = 1465
18
+ HEB_UTF8_QUBBUTS = 1467
19
+ HEB_UTF8_SHURUK = 1468
16
20
 
17
21
  # extend String class
18
22
  class String
@@ -87,6 +91,28 @@ class String
87
91
  false
88
92
  end
89
93
 
94
+ # this will add matres lectionis (yods and vavs as vowels) after diacritics that denote those vowels. The result won't always be morphologically correct Hebrew, but is useful for generating mostly-likely variants users may search for, when typing inputs (almost no Hebrew users know how to produce diacritics on the keyboard).
95
+ def naive_full_nikkud
96
+ ret = ''
97
+ prev_char = nil
98
+ case self.encoding
99
+ when Encoding::UTF_8
100
+ self.each_char do |c|
101
+ if c.codepoints[0] == HEB_UTF8_QUBBUTS
102
+ ret += 'וּ' # replace Qubbuts with vav and shuruk
103
+ else
104
+ ret += c
105
+ end
106
+ ret += 'י' if c.codepoints[0] == HEB_UTF8_XIRIK
107
+ ret += 'ו' if c.codepoints[0] == HEB_UTF8_XOLAM && prev_char != 'ו'
108
+ prev_char = c
109
+ end
110
+ return ret.gsub("\u05b4יי","\u05b4י").gsub("\u05b4י\u05bcי", "\u05b4\u05bcי") # get rid of extraneous yods possibly added because we weren't looking ahead
111
+ else
112
+ return nil # not implemented for other encodings for now.
113
+ end
114
+ end
115
+
90
116
  def any_nikkud?
91
117
  func = case self.encoding
92
118
  when Encoding::UTF_8
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hebrew
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asaf Bartov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-05 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Some useful code to identify, transcode, and manipulate Hebrew text
14
14
  email: asaf.bartov@gmail.com
@@ -36,8 +36,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  requirements: []
39
- rubyforge_project:
40
- rubygems_version: 2.7.7
39
+ rubygems_version: 3.1.2
41
40
  signing_key:
42
41
  specification_version: 4
43
42
  summary: Hebrew string manipulation