tc_kimlik_no_dogrulama 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27dcf758ed7fe301fc93524f31a5e20c557e3092
4
- data.tar.gz: 2fcc82af6818d38948288e4ef59c6457bbecae8e
3
+ metadata.gz: 770c4b6419fc28d6ab8b98cdefb8d95e0e0a9f70
4
+ data.tar.gz: 551d0e8a585ee5c1a5bc4b89d73d506e3e78497b
5
5
  SHA512:
6
- metadata.gz: 2208a3cad6e2cd22710efad6ad1c28299ef50e936221aa4927cbd13465c3bef1c1b9eb6a65ba42555450d3bbe0ba15fbab388337e2e444d06004630fd8ed8940
7
- data.tar.gz: 87f998070c60e55163cddacba36fb336e2f12cba8d0c3b758aef01a99667d9456cc9cf9c4c1f9187da613fb700d7799d193b6604c2f12b200a5f7aab8a108f0f
6
+ metadata.gz: 1766b45d7f98b5ac0b8779bbe8f2c498cb324f9bb0afc41a4fb63aa06e2f1d53ba81b956306251e62c8f765be6d2d2e868869cc73cd1cc7b6c182a740d04ad82
7
+ data.tar.gz: 5611901502de0dfc075ec18a04cef8107815f1405fbb41583c48078fba3b9c9e844a0d6678dd3f185d39a8c8d79e18f9380ebfacc3adb9a877843acddc96305c
data/README.md CHANGED
@@ -4,7 +4,7 @@ Ruby için T.C. Kimlik Numarası doğrulama sistemi
4
4
 
5
5
  ## Kurulum
6
6
 
7
- Gemfile dosyasınıza aşağıdaki kodu ekleyin:
7
+ Gemfile dosyasına aşağıdaki kodu ekleyin:
8
8
 
9
9
  ```ruby
10
10
  gem 'tc_kimlik_no_dogrulama'
@@ -26,9 +26,19 @@ TcKimlikNoDogrulama::verify(18071470110)
26
26
  # Sonuç true ya da false dönecektir.
27
27
  ```
28
28
 
29
+
30
+ **Rails 4**
31
+ ```ruby
32
+ TcKimlikNoDogrulama::verify(18071470110)
33
+ # Sonuç true ya da false dönecektir.
34
+ ```
35
+
36
+
29
37
  ## Algoritma ve kontroller
30
38
  - T.C. Kimlik numarası 11 karakter olmalıdır.
31
39
  - T.C. Kimlik numarası 0 ile başlayamaz.
32
40
  - T.C. Kimlik numarasının tüm karakterleri sayı olmalıdır.
33
- - 1 3 5 7 ve 9 hanelerinin toplamının 7 katından, 2 4 6 ve 8 hanelerin toplamı çıkartıldığında, elde edilen sonucun 10a bölümünden kalan sayı, yani Mod 10u bize 10. haneyi vermelidir.
34
- - 1 2 3 4 5 6 7 8 9 ve 10 hanelerinin toplamından elde edilen sonucun 10a bölümünden kalan sayı, yani Mod 10u bize 11. haneyi vermelidir.
41
+ - 1 3 5 7 ve 9 hanelerinin toplamının 7 katından, 2 4 6 ve 8 hanelerin toplamı çıkartıldığında, elde edilen sonucun 10'a bölümünden kalan sayı, yani Mod 10'u bize 10. haneyi vermelidir.
42
+ - 1 2 3 4 5 6 7 8 9 ve 10 hanelerinin toplamından elde edilen sonucun 10'a bölümünden kalan sayı, yani Mod 10'u bize 11. haneyi vermelidir.
43
+
44
+ *Algoritma kuralları için [Murat Çorlu](http://muratcorlu.com/post/python-ile-tc-kimlik-numarasi-dogrulama/)'ya teşekkürler.*
@@ -6,47 +6,41 @@ module TcKimlikNoDogrulama
6
6
 
7
7
  # Kontrol 1: TC Kimlik numarası boş olmamalıdır.
8
8
  # Kontrol 2: T.C. Kimlik numarası 11 karakter olmalıdır.
9
- # Kontrol 3: T.C. Kimlik numarası 0 ile başlayamaz.
10
- # Kontrol 4: T.C. Kimlik numarasının tüm karakterleri sayı olmalıdır.
11
- if (tcKimlikNo.nil? || tcKimlikNo.length != 11 || !numeric?(tcKimlikNo) || tcKimlikNo[0] == 0)
12
- return false
13
- end
14
-
15
- digits = tcKimlikNo.each_char.map(&:to_i)
9
+ # Kontrol 3: T.C. Kimlik numarasının tüm karakterleri sayı olmalıdır.
10
+ # Kontrol 4: T.C. Kimlik numarası 0 ile başlayamaz.
11
+ if ((!tcKimlikNo.nil?) && (tcKimlikNo.length == 11) && (numeric?(tcKimlikNo)) && (tcKimlikNo[0] != 0))
12
+ digits = tcKimlikNo.each_char.map(&:to_i)
13
+
14
+ sum = 0
15
+ sum_odd = 0
16
+ sum_even = 0
17
+ digits[0..9].each_with_index do |value, i|
18
+ sum += value
19
+ if i.even?
20
+ sum_even += value
21
+ else
22
+ sum_odd += value
23
+ end
24
+ end
16
25
 
17
- sum = 0
18
- sum_odd = 0
19
- sum_even = 0
20
- digits[0..9].each_with_index do |value, i|
21
- sum += value
22
- if i.even?
23
- sum_even += value
26
+ # 2 Adet Kontrol
27
+ # Kontrol #1: 1 3 5 7 ve 9 hanelerinin toplamının 7 katından, 2 4 6 ve 8 hanelerin toplamı çıkartıldığında,
28
+ # elde edilen sonucun 10'a bölümünden kalan sayı,
29
+ # yani Mod 10'u bize 10. haneyi vermelidir.
30
+ # Kontrol #2: 1 2 3 4 5 6 7 8 9 ve 10 hanelerinin toplamından elde edilen sonucun
31
+ # 10'a bölümünden kalan sayı, yani Mod 10'u bize 11. haneyi vermelidir.
32
+ if (((sum_odd * 7 - sum_even) % 10 == digits[9]) || (sum % 10 == digits[10]))
33
+ return true
24
34
  else
25
- sum_odd += value
35
+ return false
26
36
  end
37
+ else
38
+ return false
27
39
  end
28
-
29
- # Kontrol 1
30
- # 1 3 5 7 ve 9 hanelerinin toplamının 7 katından, 2 4 6 ve 8 hanelerin toplamı çıkartıldığında,
31
- # elde edilen sonucun 10'a bölümünden kalan sayı,
32
- # yani Mod 10'u bize 10. haneyi vermelidir.
33
- if(sum_odd * 7 - sum_even) % 10 == digits[9]
34
- return true
35
- end
36
-
37
- # Kontrol 2
38
- # 1 2 3 4 5 6 7 8 9 ve 10 hanelerinin toplamından elde edilen sonucun
39
- # 10'a bölümünden kalan sayı, yani Mod 10'u bize 11. haneyi vermelidir.
40
- if sum % 10 == digits[10]
41
- return true
42
- end
43
-
44
- # TC Kimlik no kontrollerden geçemedi.
45
- return false
46
40
  end
47
41
 
48
42
  private
49
43
  def self.numeric?(str)
50
44
  !!(str =~ /\A[[:digit:]]+\Z/)
51
45
  end
52
- end
46
+ end
@@ -1,3 +1,3 @@
1
1
  module TcKimlikNoDogrulama
2
- VERSION = "0.1"
2
+ VERSION = '0.1.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tc_kimlik_no_dogrulama
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tolga Gezginiş
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-15 00:00:00.000000000 Z
11
+ date: 2017-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  requirements: []
90
90
  rubyforge_project:
91
- rubygems_version: 2.4.3
91
+ rubygems_version: 2.6.10
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: T.C. Kimlik No Doğrulama