turkish_cities 0.1.3 → 0.2.0

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.
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