turkish_cities 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +5 -0
  3. data/.hound.yml +1 -1
  4. data/.older.rubocop.yml +23 -0
  5. data/.rubocop.yml +8 -0
  6. data/.travis.yml +9 -0
  7. data/CHANGELOG.md +18 -0
  8. data/Gemfile.lock +3 -5
  9. data/README.md +155 -31
  10. data/lib/turkish_cities/city.rb +15 -27
  11. data/lib/turkish_cities/data/cities.yaml +134 -1
  12. data/lib/turkish_cities/data/districts/adana.yaml +1043 -0
  13. data/lib/turkish_cities/data/districts/adiyaman.yaml +1243 -0
  14. data/lib/turkish_cities/data/districts/afyon.yaml +1253 -0
  15. data/lib/turkish_cities/data/districts/agri.yaml +1038 -0
  16. data/lib/turkish_cities/data/districts/aksaray.yaml +491 -0
  17. data/lib/turkish_cities/data/districts/amasya.yaml +753 -0
  18. data/lib/turkish_cities/data/districts/ankara.yaml +1712 -0
  19. data/lib/turkish_cities/data/districts/antalya.yaml +1114 -0
  20. data/lib/turkish_cities/data/districts/ardahan.yaml +396 -0
  21. data/lib/turkish_cities/data/districts/artvin.yaml +1956 -0
  22. data/lib/turkish_cities/data/districts/aydin.yaml +761 -0
  23. data/lib/turkish_cities/data/districts/balikesir.yaml +1338 -0
  24. data/lib/turkish_cities/data/districts/bartin.yaml +1065 -0
  25. data/lib/turkish_cities/data/districts/batman.yaml +790 -0
  26. data/lib/turkish_cities/data/districts/bayburt.yaml +263 -0
  27. data/lib/turkish_cities/data/districts/bilecik.yaml +425 -0
  28. data/lib/turkish_cities/data/districts/bingol.yaml +1159 -0
  29. data/lib/turkish_cities/data/districts/bitlis.yaml +818 -0
  30. data/lib/turkish_cities/data/districts/bolu.yaml +1730 -0
  31. data/lib/turkish_cities/data/districts/burdur.yaml +592 -0
  32. data/lib/turkish_cities/data/districts/bursa.yaml +1266 -0
  33. data/lib/turkish_cities/data/districts/canakkale.yaml +1035 -0
  34. data/lib/turkish_cities/data/districts/cankiri.yaml +719 -0
  35. data/lib/turkish_cities/data/districts/corum.yaml +1576 -0
  36. data/lib/turkish_cities/data/districts/denizli.yaml +724 -0
  37. data/lib/turkish_cities/data/districts/diyarbakir.yaml +1132 -0
  38. data/lib/turkish_cities/data/districts/duzce.yaml +756 -0
  39. data/lib/turkish_cities/data/districts/edirne.yaml +457 -0
  40. data/lib/turkish_cities/data/districts/elazig.yaml +1560 -0
  41. data/lib/turkish_cities/data/districts/erzincan.yaml +1086 -0
  42. data/lib/turkish_cities/data/districts/erzurum.yaml +1278 -0
  43. data/lib/turkish_cities/data/districts/eskisehir.yaml +673 -0
  44. data/lib/turkish_cities/data/districts/gaziantep.yaml +872 -0
  45. data/lib/turkish_cities/data/districts/giresun.yaml +2753 -0
  46. data/lib/turkish_cities/data/districts/gumushane.yaml +1185 -0
  47. data/lib/turkish_cities/data/districts/hakkari.yaml +478 -0
  48. data/lib/turkish_cities/data/districts/hatay.yaml +680 -0
  49. data/lib/turkish_cities/data/districts/igdir.yaml +272 -0
  50. data/lib/turkish_cities/data/districts/isparta.yaml +676 -0
  51. data/lib/turkish_cities/data/districts/istanbul.yaml +1812 -0
  52. data/lib/turkish_cities/data/districts/izmir.yaml +1657 -0
  53. data/lib/turkish_cities/data/districts/kahramanmaras.yaml +776 -0
  54. data/lib/turkish_cities/data/districts/karabuk.yaml +1171 -0
  55. data/lib/turkish_cities/data/districts/karaman.yaml +477 -0
  56. data/lib/turkish_cities/data/districts/kars.yaml +572 -0
  57. data/lib/turkish_cities/data/districts/kastamonu.yaml +4485 -0
  58. data/lib/turkish_cities/data/districts/kayseri.yaml +852 -0
  59. data/lib/turkish_cities/data/districts/kilis.yaml +328 -0
  60. data/lib/turkish_cities/data/districts/kirikkale.yaml +423 -0
  61. data/lib/turkish_cities/data/districts/kirklareli.yaml +384 -0
  62. data/lib/turkish_cities/data/districts/kirsehir.yaml +475 -0
  63. data/lib/turkish_cities/data/districts/kocaeli.yaml +597 -0
  64. data/lib/turkish_cities/data/districts/konya.yaml +1418 -0
  65. data/lib/turkish_cities/data/districts/kutahya.yaml +1042 -0
  66. data/lib/turkish_cities/data/districts/malatya.yaml +828 -0
  67. data/lib/turkish_cities/data/districts/manisa.yaml +1318 -0
  68. data/lib/turkish_cities/data/districts/mardin.yaml +762 -0
  69. data/lib/turkish_cities/data/districts/mersin.yaml +1013 -0
  70. data/lib/turkish_cities/data/districts/mugla.yaml +622 -0
  71. data/lib/turkish_cities/data/districts/mus.yaml +749 -0
  72. data/lib/turkish_cities/data/districts/nevsehir.yaml +481 -0
  73. data/lib/turkish_cities/data/districts/nigde.yaml +437 -0
  74. data/lib/turkish_cities/data/districts/ordu.yaml +857 -0
  75. data/lib/turkish_cities/data/districts/osmaniye.yaml +655 -0
  76. data/lib/turkish_cities/data/districts/rize.yaml +1447 -0
  77. data/lib/turkish_cities/data/districts/sakarya.yaml +744 -0
  78. data/lib/turkish_cities/data/districts/samsun.yaml +1363 -0
  79. data/lib/turkish_cities/data/districts/sanliurfa.yaml +1505 -0
  80. data/lib/turkish_cities/data/districts/siirt.yaml +579 -0
  81. data/lib/turkish_cities/data/districts/sinop.yaml +2061 -0
  82. data/lib/turkish_cities/data/districts/sirnak.yaml +404 -0
  83. data/lib/turkish_cities/data/districts/sivas.yaml +2476 -0
  84. data/lib/turkish_cities/data/districts/tekirdag.yaml +436 -0
  85. data/lib/turkish_cities/data/districts/tokat.yaml +1553 -0
  86. data/lib/turkish_cities/data/districts/trabzon.yaml +794 -0
  87. data/lib/turkish_cities/data/districts/tunceli.yaml +1074 -0
  88. data/lib/turkish_cities/data/districts/usak.yaml +735 -0
  89. data/lib/turkish_cities/data/districts/van.yaml +754 -0
  90. data/lib/turkish_cities/data/districts/yalova.yaml +151 -0
  91. data/lib/turkish_cities/data/districts/yozgat.yaml +939 -0
  92. data/lib/turkish_cities/data/districts/zonguldak.yaml +1599 -0
  93. data/lib/turkish_cities/data/neighborhoods_parser.rb +52 -0
  94. data/lib/turkish_cities/district.rb +61 -0
  95. data/lib/turkish_cities/helpers/decomposer_helper.rb +92 -0
  96. data/lib/turkish_cities/postcode.rb +27 -0
  97. data/lib/turkish_cities/version.rb +1 -1
  98. data/lib/turkish_cities.rb +20 -2
  99. data/turkish_cities.gemspec +1 -1
  100. metadata +90 -3
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'csv'
4
+ require 'yaml'
5
+
6
+ require_relative '../helpers/decomposer_helper'
7
+
8
+ module NeighborhoodsParser
9
+ include DecomposerHelper
10
+
11
+ district_hash = Hash.new { |h, k| h[k] = Hash.new(&h.default_proc) }
12
+ mahalle_array = []
13
+ last_city = 'Adana'
14
+ last_district = ''
15
+ last_subdistrict = ''
16
+ last_postcode = 1720
17
+
18
+ # rubocop:disable Metrics/BlockLength
19
+ CSV.parse(File.read('ptt_list.csv'), headers: true).each do |row|
20
+ data_array = row['il;ilçe;semt_bucak_belde;Mahalle;PK'].split(';')
21
+
22
+ if data_array[0].downcase(:turkic).strip.capitalize(:turkic) != last_city ||
23
+ data_array[4].to_i != last_postcode
24
+ district_hash[last_district][last_subdistrict]['postcode'] = last_postcode
25
+ district_hash[last_district][last_subdistrict]['neighborhoods'] = mahalle_array
26
+ mahalle_array = []
27
+ if data_array[0].downcase(:turkic).strip.capitalize(:turkic) != last_city
28
+ file_name = create_file_path(last_city)
29
+ File.write("#{file_name}.yaml", district_hash.to_yaml)
30
+ district_hash = Hash.new { |h, k| h[k] = Hash.new(&h.default_proc) }
31
+ end
32
+ end
33
+
34
+ mahalle = []
35
+ data_array[3].downcase(:turkic).strip.split(' ').each do |word|
36
+ if word[0] == '('
37
+ word[1] = word[1].capitalize!(:turkic) unless word[1].to_i.to_s == word[1]
38
+ else
39
+ word.capitalize!(:turkic)
40
+ end
41
+ mahalle << word
42
+ end
43
+
44
+ mahalle_array << mahalle.join(' ')
45
+
46
+ last_city = data_array[0].downcase(:turkic).strip.capitalize(:turkic)
47
+ last_district = data_array[1].downcase(:turkic).strip.capitalize(:turkic)
48
+ last_subdistrict = data_array[2].downcase(:turkic).strip.capitalize(:turkic)
49
+ last_postcode = data_array[4].to_i
50
+ end
51
+ # rubocop:enable Metrics/BlockLength
52
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'i18n'
4
+ require 'yaml'
5
+
6
+ require_relative '../turkish_cities/helpers/decomposer_helper'
7
+
8
+ class District
9
+ include DecomposerHelper
10
+
11
+ def list_subdistricts(city_name, district_name)
12
+ district_list = create_district_list(city_name)
13
+
14
+ if !district_list[district_name].nil?
15
+ subdistricts = []
16
+ district_list[district_name].each do |subdistrict|
17
+ subdistricts << subdistrict[0]
18
+ end
19
+ sort_alphabetically(subdistricts)
20
+ else
21
+ district_not_found_error(district_name, city_name)
22
+ end
23
+ end
24
+
25
+ def list_neighborhoods(city_name, district_name, subdistrict_name)
26
+ district_list = create_district_list(city_name)
27
+
28
+ if !district_list[district_name].nil?
29
+ neighborhoods = if subdistrict_name.nil?
30
+ create_neighborhoods_without_subdistrict_name(district_list, district_name)
31
+ else
32
+ create_neighborhoods_with_subdistrict_name(district_list,
33
+ district_name,
34
+ subdistrict_name)
35
+ end
36
+ sort_alphabetically(neighborhoods)
37
+ else
38
+ district_not_found_error(district_name, city_name)
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def create_neighborhoods_without_subdistrict_name(district_list, district_name)
45
+ neighborhoods = []
46
+ district_list[district_name].each do |subdistrict|
47
+ subdistrict[1]['neighborhoods'].each do |neighborhood|
48
+ neighborhoods << neighborhood
49
+ end
50
+ end
51
+ neighborhoods
52
+ end
53
+
54
+ def create_neighborhoods_with_subdistrict_name(district_list, district_name, subdistrict_name)
55
+ neighborhoods = []
56
+ district_list[district_name][subdistrict_name]['neighborhoods'].each do |neighborhood|
57
+ neighborhoods << neighborhood
58
+ end
59
+ neighborhoods
60
+ end
61
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DecomposerHelper
4
+ def check_input_range(input, min, max)
5
+ return if input.to_i.between?(min, max)
6
+
7
+ raise RangeError, "Given value [#{input}] is outside bounds of #{min} to #{max}."
8
+ end
9
+
10
+ def city_not_found_error(input)
11
+ "Couldn't find city name with '#{input}'"
12
+ end
13
+
14
+ def convert_chars(string)
15
+ I18n.transliterate(string.downcase(:turkic))
16
+ end
17
+
18
+ def create_district_list(city_name)
19
+ file_name = create_file_path(city_name)
20
+ file_path = File.join(File.dirname(__FILE__), "../data/districts/#{file_name}.yaml")
21
+ begin
22
+ YAML.load_file(file_path)
23
+ rescue Errno::ENOENT => e
24
+ "Caught the exception: #{e}"
25
+ end
26
+ end
27
+
28
+ def create_file_path(city_name)
29
+ char_fallbacks = { 'ç' => 'c', 'ğ' => 'g', 'ı' => 'i', 'ö' => 'o', 'ş' => 's', 'ü' => 'u' }
30
+ city_name.downcase(:turkic).encode('ASCII', 'UTF-8', fallback: char_fallbacks)
31
+ end
32
+
33
+ def district_not_found_error(district_input, city_input)
34
+ "Couldn't find district name with '#{district_input}' of '#{city_input}'"
35
+ end
36
+
37
+ def postcode_not_found_error(postcode_input)
38
+ "Couldn't find any subdistrict with postcode '#{postcode_input}'"
39
+ end
40
+
41
+ def prepare_city_list(city_list, options)
42
+ if options.dig(:with)
43
+ city_list.map do |city|
44
+ result = {}
45
+ result[:name] = city['name']
46
+
47
+ add_plate_number_if_requested(result, city, options)
48
+ add_phone_code_if_requested(result, city, options)
49
+ add_metropolitan_municipality_if_requested(result, city, options)
50
+
51
+ result[:region] = city['region'] if options.dig(:with, :region) || options.dig(:with, :all)
52
+ result
53
+ end
54
+ else
55
+ city_list.map do |city|
56
+ city['name']
57
+ end
58
+ end
59
+ end
60
+
61
+ def sort_alphabetically(list, options = nil)
62
+ turkish_alphabet = ' -0123456789abcçdefgğhıijklmnoöprsştuüvyz'
63
+ list.sort_by do |item|
64
+ item_to_sort = if options.nil? || options.dig(:with).nil?
65
+ item
66
+ else
67
+ item[:name]
68
+ end
69
+ item_to_sort.downcase(:turkic).chars.map { |char| turkish_alphabet.index(char) }
70
+ end
71
+ end
72
+
73
+ private
74
+
75
+ def add_plate_number_if_requested(result, city, options = nil)
76
+ return unless options.dig(:with, :plate_number) || options.dig(:with, :all)
77
+
78
+ result[:plate_number] = city['plate_number']
79
+ end
80
+
81
+ def add_phone_code_if_requested(result, city, options = nil)
82
+ return unless options.dig(:with, :phone_code) || options.dig(:with, :all)
83
+
84
+ result[:phone_code] = city['phone_code']
85
+ end
86
+
87
+ def add_metropolitan_municipality_if_requested(result, city, options = nil)
88
+ return unless options.dig(:with, :metropolitan_municipality_since) || options.dig(:with, :all)
89
+
90
+ result[:metropolitan_municipality_since] = city['metropolitan_municipality_since']
91
+ end
92
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'i18n'
4
+ require 'yaml'
5
+
6
+ require_relative '../turkish_cities/helpers/decomposer_helper'
7
+
8
+ class Postcode
9
+ include DecomposerHelper
10
+
11
+ def find_by_postcode(postcode)
12
+ check_input_range(postcode, 1010, 81_952)
13
+
14
+ city_name = City.new.find_by_id(postcode.to_i / 1000)
15
+ city_file = create_district_list(city_name)
16
+
17
+ city_file.each do |district|
18
+ district_name = district[0]
19
+ district[1].each do |subdistrict|
20
+ if subdistrict[1]['postcode'] == postcode.to_i
21
+ return [city_name, district_name, subdistrict[0]]
22
+ end
23
+ end
24
+ end
25
+ postcode_not_found_error(postcode)
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class TurkishCities
4
- VERSION = '0.1.3'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -1,7 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'turkish_cities/city'
4
- require 'turkish_cities/version'
3
+ require_relative '../lib/turkish_cities/city'
4
+ require_relative '../lib/turkish_cities/district'
5
+ require_relative '../lib/turkish_cities/postcode'
6
+ require_relative '../lib/turkish_cities/version'
5
7
 
6
8
  class TurkishCities
7
9
  def self.find_name_by_plate_number(plate_number)
@@ -23,4 +25,20 @@ class TurkishCities
23
25
  def self.list_cities(options = {})
24
26
  City.new.list_cities(options)
25
27
  end
28
+
29
+ def self.list_districts(city_name)
30
+ City.new.list_districts(city_name)
31
+ end
32
+
33
+ def self.list_subdistricts(city_name, district_name)
34
+ District.new.list_subdistricts(city_name, district_name)
35
+ end
36
+
37
+ def self.list_neighborhoods(city_name, district_name, subdistrict_name = nil)
38
+ District.new.list_neighborhoods(city_name, district_name, subdistrict_name)
39
+ end
40
+
41
+ def self.find_by_postcode(postcode)
42
+ Postcode.new.find_by_postcode(postcode)
43
+ end
26
44
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency 'bundler', '~> 2.1.4'
25
25
  s.add_development_dependency 'coveralls', '~> 0.8.23'
26
26
  s.add_development_dependency 'rspec', '~> 3.9.0'
27
- s.add_development_dependency 'rubocop', '~> 0.82.0'
27
+ s.add_development_dependency 'rubocop', '~> 0.83.0'
28
28
 
29
29
  if s.respond_to?(:metadata)
30
30
  s.metadata['changelog_uri'] = 'https://github.com/sarslanoglu/turkish_cities/blob/master/CHANGELOG.md'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turkish_cities
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Semih Arslanoglu
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 0.82.0
81
+ version: 0.83.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 0.82.0
88
+ version: 0.83.0
89
89
  description: Simple ruby gem for listing and finding Turkish cities via name, plate
90
90
  number or size
91
91
  email: arslanoglusemih93@gmail.com
@@ -93,8 +93,10 @@ executables: []
93
93
  extensions: []
94
94
  extra_rdoc_files: []
95
95
  files:
96
+ - ".codeclimate.yml"
96
97
  - ".gitignore"
97
98
  - ".hound.yml"
99
+ - ".older.rubocop.yml"
98
100
  - ".rspec"
99
101
  - ".rubocop.yml"
100
102
  - ".travis.yml"
@@ -108,6 +110,91 @@ files:
108
110
  - lib/turkish_cities.rb
109
111
  - lib/turkish_cities/city.rb
110
112
  - lib/turkish_cities/data/cities.yaml
113
+ - lib/turkish_cities/data/districts/adana.yaml
114
+ - lib/turkish_cities/data/districts/adiyaman.yaml
115
+ - lib/turkish_cities/data/districts/afyon.yaml
116
+ - lib/turkish_cities/data/districts/agri.yaml
117
+ - lib/turkish_cities/data/districts/aksaray.yaml
118
+ - lib/turkish_cities/data/districts/amasya.yaml
119
+ - lib/turkish_cities/data/districts/ankara.yaml
120
+ - lib/turkish_cities/data/districts/antalya.yaml
121
+ - lib/turkish_cities/data/districts/ardahan.yaml
122
+ - lib/turkish_cities/data/districts/artvin.yaml
123
+ - lib/turkish_cities/data/districts/aydin.yaml
124
+ - lib/turkish_cities/data/districts/balikesir.yaml
125
+ - lib/turkish_cities/data/districts/bartin.yaml
126
+ - lib/turkish_cities/data/districts/batman.yaml
127
+ - lib/turkish_cities/data/districts/bayburt.yaml
128
+ - lib/turkish_cities/data/districts/bilecik.yaml
129
+ - lib/turkish_cities/data/districts/bingol.yaml
130
+ - lib/turkish_cities/data/districts/bitlis.yaml
131
+ - lib/turkish_cities/data/districts/bolu.yaml
132
+ - lib/turkish_cities/data/districts/burdur.yaml
133
+ - lib/turkish_cities/data/districts/bursa.yaml
134
+ - lib/turkish_cities/data/districts/canakkale.yaml
135
+ - lib/turkish_cities/data/districts/cankiri.yaml
136
+ - lib/turkish_cities/data/districts/corum.yaml
137
+ - lib/turkish_cities/data/districts/denizli.yaml
138
+ - lib/turkish_cities/data/districts/diyarbakir.yaml
139
+ - lib/turkish_cities/data/districts/duzce.yaml
140
+ - lib/turkish_cities/data/districts/edirne.yaml
141
+ - lib/turkish_cities/data/districts/elazig.yaml
142
+ - lib/turkish_cities/data/districts/erzincan.yaml
143
+ - lib/turkish_cities/data/districts/erzurum.yaml
144
+ - lib/turkish_cities/data/districts/eskisehir.yaml
145
+ - lib/turkish_cities/data/districts/gaziantep.yaml
146
+ - lib/turkish_cities/data/districts/giresun.yaml
147
+ - lib/turkish_cities/data/districts/gumushane.yaml
148
+ - lib/turkish_cities/data/districts/hakkari.yaml
149
+ - lib/turkish_cities/data/districts/hatay.yaml
150
+ - lib/turkish_cities/data/districts/igdir.yaml
151
+ - lib/turkish_cities/data/districts/isparta.yaml
152
+ - lib/turkish_cities/data/districts/istanbul.yaml
153
+ - lib/turkish_cities/data/districts/izmir.yaml
154
+ - lib/turkish_cities/data/districts/kahramanmaras.yaml
155
+ - lib/turkish_cities/data/districts/karabuk.yaml
156
+ - lib/turkish_cities/data/districts/karaman.yaml
157
+ - lib/turkish_cities/data/districts/kars.yaml
158
+ - lib/turkish_cities/data/districts/kastamonu.yaml
159
+ - lib/turkish_cities/data/districts/kayseri.yaml
160
+ - lib/turkish_cities/data/districts/kilis.yaml
161
+ - lib/turkish_cities/data/districts/kirikkale.yaml
162
+ - lib/turkish_cities/data/districts/kirklareli.yaml
163
+ - lib/turkish_cities/data/districts/kirsehir.yaml
164
+ - lib/turkish_cities/data/districts/kocaeli.yaml
165
+ - lib/turkish_cities/data/districts/konya.yaml
166
+ - lib/turkish_cities/data/districts/kutahya.yaml
167
+ - lib/turkish_cities/data/districts/malatya.yaml
168
+ - lib/turkish_cities/data/districts/manisa.yaml
169
+ - lib/turkish_cities/data/districts/mardin.yaml
170
+ - lib/turkish_cities/data/districts/mersin.yaml
171
+ - lib/turkish_cities/data/districts/mugla.yaml
172
+ - lib/turkish_cities/data/districts/mus.yaml
173
+ - lib/turkish_cities/data/districts/nevsehir.yaml
174
+ - lib/turkish_cities/data/districts/nigde.yaml
175
+ - lib/turkish_cities/data/districts/ordu.yaml
176
+ - lib/turkish_cities/data/districts/osmaniye.yaml
177
+ - lib/turkish_cities/data/districts/rize.yaml
178
+ - lib/turkish_cities/data/districts/sakarya.yaml
179
+ - lib/turkish_cities/data/districts/samsun.yaml
180
+ - lib/turkish_cities/data/districts/sanliurfa.yaml
181
+ - lib/turkish_cities/data/districts/siirt.yaml
182
+ - lib/turkish_cities/data/districts/sinop.yaml
183
+ - lib/turkish_cities/data/districts/sirnak.yaml
184
+ - lib/turkish_cities/data/districts/sivas.yaml
185
+ - lib/turkish_cities/data/districts/tekirdag.yaml
186
+ - lib/turkish_cities/data/districts/tokat.yaml
187
+ - lib/turkish_cities/data/districts/trabzon.yaml
188
+ - lib/turkish_cities/data/districts/tunceli.yaml
189
+ - lib/turkish_cities/data/districts/usak.yaml
190
+ - lib/turkish_cities/data/districts/van.yaml
191
+ - lib/turkish_cities/data/districts/yalova.yaml
192
+ - lib/turkish_cities/data/districts/yozgat.yaml
193
+ - lib/turkish_cities/data/districts/zonguldak.yaml
194
+ - lib/turkish_cities/data/neighborhoods_parser.rb
195
+ - lib/turkish_cities/district.rb
196
+ - lib/turkish_cities/helpers/decomposer_helper.rb
197
+ - lib/turkish_cities/postcode.rb
111
198
  - lib/turkish_cities/version.rb
112
199
  - turkish_cities.gemspec
113
200
  homepage: https://github.com/sarslanoglu/turkish_cities