tibetan 0.1.1 → 0.1.2

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: ba53668c3dc2032bc210c35ee0d082c6a3c6f366ec86ecb682e0242e8084b2be
4
- data.tar.gz: 0f9b98b0a5fa154ed9cf8b9b2c3e27c19645d493b73234c1260efff97024d2c6
3
+ metadata.gz: 6a99a8e45fb7a5b6fed9a82889c461a1ceec66df63086ec14e6ae60c784ae3c3
4
+ data.tar.gz: ba0c75c246e09eea0ea54c4838854e419954c7b8aef1f3ed6edcd6b6beca3b80
5
5
  SHA512:
6
- metadata.gz: 90be6411bfb7eda39aa4dc52911a873af4e29e62c4274dedb6faad400ee5fba5ef422cad2e01a83c0758b7b356e88682c4834e2967d02b1547cc6af8582c2753
7
- data.tar.gz: 72a3e240523afe6011d3eba406af85cd8914c41c8b52786c9969ae0c7ecf370fe41f883e95fd4c5c6331cff01fc81ca61e3bf455d9084d106ecb12d7a93a4a57
6
+ metadata.gz: a9c5c6085a9feada4da87b7017efc377cf25bbe530d45834eaf84d5ba781229df1ddf8fc7be515a911a1d4556ec879740830a871212b6a9dfb648c60221b1c62
7
+ data.tar.gz: 8cf0da67912ae5beedb1a2eda338b8477816d4d1627328876cc5f4cdc3debb915a9912fbafed71de00f9d57be2800174f75bd03a4685f536fa36f6b2c900215d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tibetan (0.1.1)
4
+ tibetan (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Tibetan
1
+ # Tibetan -> Wylie
2
2
 
3
- Romanization of Tibetan. It transliterates Tibetan text to the Roman (Latin) script.
3
+ Romanization of Tibetan. It transliterates Tibetan text to the Latin script using THL EWTS (Extended Wylie Transliteration Scheme).
4
4
 
5
5
  ## Installation
6
6
 
@@ -27,12 +27,16 @@ require "tibetan"
27
27
  And then
28
28
 
29
29
  ```ruby
30
- Tibetan.transliterate("བོད་སྐད་")
30
+ Tibetan.transliterate("བོད་སྐད་") # => "bod skad"
31
+ Tibetan.transliterate("༡༢༣") # => "123"
32
+ Tibetan.transliterate("༪") # => "0.5"
31
33
  ```
32
34
  or
33
35
 
34
36
  ```ruby
35
- Tibetan.t("བོད་སྐད་")
37
+ Tibetan.t("བོད་སྐད་") # => "bod skad"
38
+ Tibetan.t("༡༢༣") # => "123"
39
+ Tibetan.t("༪") # => "0.5"
36
40
  ```
37
41
 
38
42
  ## Development
@@ -1,3 +1,3 @@
1
1
  module Tibetan
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/tibetan.rb CHANGED
@@ -123,13 +123,42 @@ module Tibetan
123
123
  "ླྀ" => "ḷ",
124
124
  "ཹ" => "ḹ",
125
125
  }
126
+
127
+ CONSONANTS = %w(ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ)
128
+ SUBSCRIPTS = %w(ྐ ྑ ྒ ྔ ྕ ྖ ྗ ྙ ྟ ྠ ྡ ྣ ྤ ྥ ྦ ྨ ྩ ྪ ྫ ྭ ྮ ྯ ྰ ྱ ྲ ླ ྴ ྶ ྷ)
129
+ VOWELS = %w(ྸ ི ུ ེ ོ a)
130
+ SEP = "་"
131
+ DEFAULT_VOWEL = "a"
126
132
 
127
133
  class << self
128
134
  def transliterate(string="", to=:tibetan)
135
+ string = string.to_s
136
+
137
+ # Split long phrase into small parts and transliterate separately
138
+ if string.split(SEP).size > 1
139
+ string = string.split(SEP).map do |str|
140
+ transliterate(str)
141
+ end.join(SEP)
142
+ end
143
+
144
+ insert_default_vowel!(string)
145
+
129
146
  character_table = Module.const_get(to.to_s.capitalize)::CHARACTER_TABLE
130
- string.to_s.gsub(/#{Regexp.union(character_table.keys).source}/i, character_table)
147
+ string.to_s.gsub(/#{Regexp.union(character_table.keys).source}/i, character_table)
131
148
  end
132
149
  alias_method :t, :transliterate
133
- end
134
150
 
151
+ def insert_default_vowel!(string="")
152
+ # 1. after subscript
153
+ if (string.chars & VOWELS).empty?
154
+ index = string.rindex(/#{SUBSCRIPTS.join('|')}/)
155
+ string = string.insert(index+1, DEFAULT_VOWEL) unless index.nil?
156
+ end
157
+ # 2. after consonant, if not added in 1st step
158
+ if (string.chars & VOWELS).empty? && (string.chars & CONSONANTS).any?
159
+ index = string.size > 2 ? 1 : 0
160
+ string = string.insert(index+1, DEFAULT_VOWEL) unless index.nil?
161
+ end
162
+ end
163
+ end
135
164
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tibetan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - rovetz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-28 00:00:00.000000000 Z
11
+ date: 2018-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler