Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/haller.rb

Instance Method Summary collapse

Instance Method Details

#to_hal(hal) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/haller.rb', line 4

def to_hal(hal)
  isim = UnicodeUtils.downcase(self, :tr).split.last

  iyelik   = 'iyelik'
  i_hali   = 'i'
  e_hali   = 'e'
  de_hali  = 'de'
  den_hali = 'den'
  i_ekleri = 'ııiiuuüü'

  son_harf  = isim[-1,1]
  istisna   = (isim =~ /^[^i][ei][^ıüoö]*[au]l$|alp$|^alp$/).nil? ? 0 : 2
  son_sesli = isim.scan(/[aıeiouöü]/).last

  if hal == iyelik || hal == i_hali
    ek = i_ekleri['aıeiouöü'.index(son_sesli) + istisna]
  else
    ek = (son_sesli =~ /[aıou]/).nil? ? 'e' : (istisna == 2) ? 'e' : 'a'
  end

  if son_harf == son_sesli
    ek = (hal == iyelik) ? 'n' + ek : (hal == i_hali || hal == e_hali) ? 'y' + ek : ek
  end

  if hal == de_hali || hal == den_hali
    ek = (son_harf =~ /[fstkçşhp]/ ? 't' : 'd') + ek
  end

  if hal == iyelik || hal == den_hali
    ek << 'n'
  end

  "#{self}'#{ek}"
end