Module: Tamil

Defined in:
lib/tamil.rb

Constant Summary collapse

TA_ACCENT_LEN =

constants

13
TA_AYUDHA_LEN =

12 + 1

1
TA_UYIR_LEN =
12
TA_MEI_LEN =
18
TA_AGARAM_LEN =
18
TA_SANSKRIT_LEN =
6
TA_UYIRMEI_LEN =
216
TA_GRANTHA_UYIRMEI_LEN =
24*12
TA_LETTERS_LEN =

323

247 + 6*12 + 22 + 4 - TA_AGARAM_LEN - 4
AGARAM_LETTERS =
@@agaram_letters.clone
@@agaram_letters =

List of letters you can use

["","","","","","","","","","","","","","","","","",""]
@@uyir_letters =
["","","","","","","","","","","",""]
@@ayudha_letter =
""
@@kuril_letters =
["", "", "", "", ""]
@@nedil_letters =
["", "", "", "", ""]
@@vallinam_letters =
["க்", "ச்", "ட்", "த்", "ப்", "ற்"]
@@mellinam_letters =
["ங்", "ஞ்", "ண்", "ந்", "ம்", "ன்"]
@@idayinam_letters =
["ய்", "ர்", "ல்", "வ்", "ழ்", "ள்"]
@@mei_letters =
["க்","ச்","ட்","த்","ப்","ற்","ஞ்","ங்","ண்","ந்","ம்","ன்","ய்","ர்","ல்","வ்","ழ்","ள்" ]
@@accent_symbols =
["","","ி","","","","","","","","","",""]
@@pulli_symbols =
[""]
@@sanskrit_letters =
["","","", "","","க்ஷ"]
@@sanskrit_mei_letters =
["ஶ்","ஜ்","ஷ்", "ஸ்","ஹ்","க்ஷ்"]
@@grantha_mei_letters =
@@mei_letters.clone()
@@grantha_agaram_letters =
@@agaram_letters.clone()
@@uyirmei_letters =
[ ""  ,"கா"  ,"கி"  ,"கீ"  ,"கு"  ,"கூ"  ,"கெ"  ,"கே"  ,"கை"  ,"கொ"  ,"கோ"  ,"கௌ"  ,
""  ,"சா"  ,"சி"  ,"சீ"  ,"சு"  ,"சூ"  ,"செ"  ,"சே"  ,"சை"  ,"சொ"  ,"சோ"  ,"சௌ" , 
""  ,"டா"  ,"டி"  ,"டீ"  ,"டு"  ,"டூ"  ,"டெ"  ,"டே"  ,"டை"  ,"டொ"  ,"டோ"  ,"டௌ", 
""  ,"தா"  ,"தி"  ,"தீ"  ,"து"  ,"தூ"  ,"தெ"  ,"தே"  ,"தை"  ,"தொ"  ,"தோ"  ,"தௌ", 
""  ,"பா"  ,"பி"  ,"பீ"  ,"பு"  ,"பூ"  ,"பெ"  ,"பே"  ,"பை"  ,"பொ"  ,"போ"  ,"பௌ" , 
""  ,"றா"  ,"றி"  ,"றீ"  ,"று"  ,"றூ"  ,"றெ"  ,"றே"  ,"றை"  ,"றொ"  ,"றோ"  ,"றௌ", 
""  ,"ஞா"  ,"ஞி"  ,"ஞீ"  ,"ஞு"  ,"ஞூ"  ,"ஞெ"  ,"ஞே"  ,"ஞை"  ,"ஞொ"  ,"ஞோ"  ,"ஞௌ"  ,
""  ,"ஙா"  ,"ஙி"  ,"ஙீ"  ,"ஙு"  ,"ஙூ"  ,"ஙெ"  ,"ஙே"  ,"ஙை"  ,"ஙொ"  ,"ஙோ"  ,"ஙௌ"  ,
""  ,"ணா"  ,"ணி"  ,"ணீ"  ,"ணு"  ,"ணூ"  ,"ணெ"  ,"ணே"  ,"ணை"  ,"ணொ"  ,"ணோ"  ,"ணௌ"  ,
""  ,"நா"  ,"நி"  ,"நீ"  ,"நு"  ,"நூ"  ,"நெ"  ,"நே"  ,"நை"  ,"நொ"  ,"நோ"  ,"நௌ"  ,
""  ,"மா"  ,"மி"  ,"மீ"  ,"மு"  ,"மூ"  ,"மெ"  ,"மே"  ,"மை"  ,"மொ"  ,"மோ"  ,"மௌ" , 
""  ,"னா"  ,"னி"  ,"னீ"  ,"னு"  ,"னூ"  ,"னெ"  ,"னே"  ,"னை"  ,"னொ"  ,"னோ"  ,"னௌ", 
""  ,"யா"  ,"யி"  ,"யீ"  ,"யு"  ,"யூ"  ,"யெ"  ,"யே"  ,"யை"  ,"யொ"  ,"யோ"  ,"யௌ", 
""  ,"ரா"  ,"ரி"  ,"ரீ"  ,"ரு"  ,"ரூ"  ,"ரெ"  ,"ரே"  ,"ரை"  ,"ரொ"  ,"ரோ"  ,"ரௌ", 
""  ,"லா"  ,"லி"  ,"லீ"  ,"லு"  ,"லூ"  ,"லெ"  ,"லே"  ,"லை"  ,"லொ"  ,"லோ"  ,"லௌ" , 
""  ,"வா"  ,"வி"  ,"வீ"  ,"வு"  ,"வூ"  ,"வெ"  ,"வே"  ,"வை"  ,"வொ"  ,"வோ"  ,"வௌ" , 
""  ,"ழா"  ,"ழி"  ,"ழீ"  ,"ழு"  ,"ழூ"  ,"ழெ"  ,"ழே"  ,"ழை"  ,"ழொ"  ,"ழோ"  ,"ழௌ" , 
""  ,"ளா"  ,"ளி"  ,"ளீ"  ,"ளு"  ,"ளூ"  ,"ளெ"  ,"ளே"  ,"ளை"  ,"ளொ"  ,"ளோ"  ,"ளௌ" ]

Class Method Summary collapse

Class Method Details

.accent_lenObject

length of the definitions



113
114
115
# File 'lib/tamil.rb', line 113

def Tamil.accent_len( )
    return Tamil::TA_ACCENT_LEN ## 13 = 12 + 1
end

.agaram(idx) ⇒ Object



148
149
150
151
# File 'lib/tamil.rb', line 148

def Tamil.agaram( idx )
    assert {( idx >= 0) and ( idx < Tamil.agaram_len() )}
    return @@agaram_letters[idx]
end

.agaram_lenObject



129
130
131
132
# File 'lib/tamil.rb', line 129

def Tamil.agaram_len( )
    assert { @@agaram_letters.length == Tamil::TA_AGARAM_LEN }
    return Tamil::TA_AGARAM_LEN ##18
end

.ayudha_lenObject



117
118
119
# File 'lib/tamil.rb', line 117

def Tamil.ayudha_len( )
    return Tamil::TA_AYUDHA_LEN ## 1 
end

.get_letters(word) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/tamil.rb', line 70

def Tamil.get_letters(word)
    ## Split a tamil-unicode stream into
    ## tamil characters (individuals).
    """ splits the word into a character-list of tamil/english
        characters present in the stream """ 
    ta_letters = Array.new()
    not_empty = false
    wlen = word.length()
    idx = 0
    while (idx < wlen)
        c = word[idx]
        if @@uyir_letters.include?(c) or c == @@ayudha_letter
            ta_letters.insert(-1,c)
            not_empty = true
        elsif @@grantha_agaram_letters.include?(c)
            ta_letters.insert(-1,c)
            not_empty = true
        elsif @@accent_symbols.include?(c)
            if not not_empty
               # odd situation
               ta_letters.insert(-1,c)
               not_empty = true
            else
               ta_letters[-1] += c 
            end                   
        else
            if c < "\u00FF"
               ta_letters.insert(-1, c )
            else
               if not_empty
                  ta_letters[-1]+= c
               else
                  ta_letters.insert(-1,c)
                  not_empty = true
               end
            end
        end
        idx = idx + 1
    end
    return ta_letters
end

.mei(idx) ⇒ Object



153
154
155
156
# File 'lib/tamil.rb', line 153

def Tamil.mei( idx )
    assert {( idx >= 0 ) and ( idx < Tamil.mei_len() )}
    return @@mei_letters[idx]
end

.mei_lenObject



125
126
127
# File 'lib/tamil.rb', line 125

def Tamil.mei_len( )
    return Tamil::TA_MEI_LEN ##18
end

.tamil_lenObject



138
139
140
# File 'lib/tamil.rb', line 138

def Tamil.tamil_len(  )
    return @@tamil_letters.length
end

.uyir(idx) ⇒ Object

access the letters



143
144
145
146
# File 'lib/tamil.rb', line 143

def Tamil.uyir( idx )
    assert { ( idx >= 0 ) and  ( idx < Tamil.uyir_len() ) }
    return Tamil::uyir_letters[idx]
end

.uyir_lenObject



121
122
123
# File 'lib/tamil.rb', line 121

def Tamil.uyir_len( )
    return Tamil::TA_UYIR_LEN ##12
end

.uyirmei(idx) ⇒ Object



158
159
160
161
# File 'lib/tamil.rb', line 158

def Tamil.uyirmei( idx )
    assert {( idx >= 0 ) and  ( idx < Tamil.uyirmei_len() ) }
    return @@uyirmei_letters[idx]
end

.uyirmei_lenObject



134
135
136
# File 'lib/tamil.rb', line 134

def Tamil.uyirmei_len( )
    return Tamil::TA_UYIRMEI_LEN ##216
end