locations_ng 1.0.2 → 1.0.3
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.
- checksums.yaml +4 -4
- data/lib/locations_ng.rb +1 -0
- data/lib/locations_ng/city.rb +10 -18
- data/lib/locations_ng/lga.rb +18 -31
- data/lib/locations_ng/load_file.rb +13 -0
- data/lib/locations_ng/state.rb +11 -23
- data/lib/locations_ng/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdfcb7c01c3a323698dcbd29ca166dd6444d7fde
|
4
|
+
data.tar.gz: f32b8b96950a4cb8fb307832be130888f769eb01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad89e4edd1f6e9d0cee7bdc7c978fef02c8b202b2b0e7bf9ca6ff275c7d5dcda54479a21af9e56cdf1b8ca0c07e67fa924efa7a4dd8c1fd31573c6ee8f97e1d8
|
7
|
+
data.tar.gz: a0ddc4f9be213ad0b8a3e45f908cfeb4d046f4bdae101415bb16ae25f88539e6a91b5363200a554bf1abb73931bfd466a626192adae20f9217d31b8f852a3bb7
|
data/lib/locations_ng.rb
CHANGED
data/lib/locations_ng/city.rb
CHANGED
@@ -1,35 +1,27 @@
|
|
1
1
|
module LocationsNg
|
2
2
|
class City
|
3
|
+
@all_cities = LoadFile.read('cities')
|
4
|
+
|
3
5
|
class << self
|
4
6
|
def all
|
5
|
-
|
7
|
+
@all_cities
|
6
8
|
end
|
7
9
|
|
8
10
|
def cities(state)
|
9
|
-
state_query = state.downcase.
|
10
|
-
|
11
|
+
state_query = state_query(state.downcase.tr(' ', '_'))
|
12
|
+
city_index = @all_cities.index{ |c| c['alias'] == state_query }
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
+
unless city_index.nil?
|
15
|
+
return @all_cities[city_index]['cities']
|
14
16
|
end
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
if city_index.nil?
|
19
|
-
{message: "No cities found for '#{state}'", status: 404}
|
20
|
-
else
|
21
|
-
all_cities[city_index]['cities']
|
22
|
-
end
|
18
|
+
{message: "No cities found for '#{state}'", status: 404}
|
23
19
|
end
|
24
20
|
|
25
21
|
private
|
26
22
|
|
27
|
-
def
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
def files_location(file)
|
32
|
-
File.expand_path("../locations/#{file}.yml", __FILE__)
|
23
|
+
def state_query(state)
|
24
|
+
state == 'federal_capital_territory' ? 'fct' : state
|
33
25
|
end
|
34
26
|
end
|
35
27
|
end
|
data/lib/locations_ng/lga.rb
CHANGED
@@ -1,57 +1,44 @@
|
|
1
1
|
module LocationsNg
|
2
2
|
class Lga
|
3
|
+
@all_lgas = LoadFile.read('lgas')
|
4
|
+
|
3
5
|
class << self
|
4
6
|
def all
|
5
|
-
|
7
|
+
@all_lgas
|
6
8
|
end
|
7
9
|
|
8
10
|
def lgas(state)
|
9
|
-
|
10
|
-
all_lgas = load_lgas
|
11
|
-
|
12
|
-
lga_index = all_lgas.index{|l| l['state_alias'] == query}
|
11
|
+
lga_index = @all_lgas.index{ |l| l['state_alias'] == format_query(state) }
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
else
|
17
|
-
all_lgas[lga_index]['lgas']
|
13
|
+
unless lga_index.nil?
|
14
|
+
return @all_lgas[lga_index]['lgas']
|
18
15
|
end
|
16
|
+
|
17
|
+
{message: "No lgas found for '#{state}'", status: 404}
|
19
18
|
end
|
20
19
|
|
21
20
|
def localities(state, lga)
|
22
21
|
return {message: 'You must enter a state and lga.', status: 500} unless state && lga
|
23
22
|
|
24
|
-
|
25
|
-
lga_query = format_query(lga)
|
26
|
-
all_lgas = load_lgas
|
23
|
+
state_index = @all_lgas.index{ |s| s['state_alias'] == format_query(state) }
|
27
24
|
|
28
|
-
state_index
|
25
|
+
unless state_index
|
26
|
+
return {message: "'#{state}' state not found.", status: 404}
|
27
|
+
end
|
29
28
|
|
30
|
-
|
31
|
-
lga_index = all_lgas[state_index]['locality'].index{|l| l['lga_alias'] == lga_query}
|
29
|
+
lga_index = @all_lgas[state_index]['locality'].index{ |l| l['lga_alias'] == format_query(lga) }
|
32
30
|
|
33
|
-
|
34
|
-
|
35
|
-
else
|
36
|
-
{message: "'#{lga}' LGA not found for '#{state}' state.", status: 404}
|
37
|
-
end
|
38
|
-
else
|
39
|
-
{message: "'#{state}' state not found.", status: 404}
|
31
|
+
unless lga_index
|
32
|
+
return {message: "'#{lga}' LGA not found for '#{state}' state.", status: 404}
|
40
33
|
end
|
41
|
-
end
|
42
34
|
|
43
|
-
|
44
|
-
|
45
|
-
def load_lgas
|
46
|
-
YAML.load(File.read(files_location 'lgas'))
|
35
|
+
@all_lgas[state_index]['locality'][lga_index]['localities']
|
47
36
|
end
|
48
37
|
|
49
|
-
|
50
|
-
File.expand_path("../locations/#{file}.yml", __FILE__)
|
51
|
-
end
|
38
|
+
private
|
52
39
|
|
53
40
|
def format_query(query)
|
54
|
-
query ? query.downcase.
|
41
|
+
query ? query.downcase.tr(' ', '_') : query
|
55
42
|
end
|
56
43
|
end
|
57
44
|
end
|
data/lib/locations_ng/state.rb
CHANGED
@@ -1,20 +1,19 @@
|
|
1
1
|
module LocationsNg
|
2
2
|
class State
|
3
|
+
@all_states = LocationsNg::LoadFile.read('states')
|
4
|
+
|
3
5
|
class << self
|
4
6
|
def all
|
5
|
-
|
7
|
+
@all_states.map{ |s| {name: s['name'], capital: s['capital']} }
|
6
8
|
end
|
7
9
|
|
8
10
|
def details(state)
|
9
|
-
|
10
|
-
all_states = load_states
|
11
|
-
|
12
|
-
state_index = all_states.index{|s| s['alias'] == state_query}
|
11
|
+
state_index = @all_states.index{ |s| s['alias'] == format_query(state) }
|
13
12
|
|
14
13
|
if state_index.nil?
|
15
14
|
{message: "No state found for '#{state}'", status: 404}
|
16
15
|
else
|
17
|
-
res = all_states[state_index].with_indifferent_access
|
16
|
+
res = @all_states[state_index].with_indifferent_access
|
18
17
|
res['cities'] = LocationsNg::City.cities(state)
|
19
18
|
res['lgas'] = LocationsNg::Lga.lgas(state)
|
20
19
|
res
|
@@ -22,30 +21,19 @@ module LocationsNg
|
|
22
21
|
end
|
23
22
|
|
24
23
|
def capital(state)
|
25
|
-
|
26
|
-
all_states = load_states
|
27
|
-
|
28
|
-
state_index = all_states.index{|s| s['alias'] == state_query}
|
24
|
+
state_index = @all_states.index{ |s| s['alias'] == format_query(state) }
|
29
25
|
|
30
|
-
|
31
|
-
|
32
|
-
else
|
33
|
-
all_states[state_index]['capital']
|
26
|
+
unless state_index.nil?
|
27
|
+
return @all_states[state_index]['capital']
|
34
28
|
end
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
29
|
|
39
|
-
|
40
|
-
YAML.load(File.read(files_location 'states'))
|
30
|
+
{message: "No state found for '#{state}'", status: 404}
|
41
31
|
end
|
42
32
|
|
43
|
-
|
44
|
-
File.expand_path("../locations/#{file}.yml", __FILE__)
|
45
|
-
end
|
33
|
+
private
|
46
34
|
|
47
35
|
def format_query(query)
|
48
|
-
query ? query.downcase.
|
36
|
+
query ? query.downcase.tr(' ', '_') : query
|
49
37
|
end
|
50
38
|
end
|
51
39
|
end
|
data/lib/locations_ng/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: locations_ng
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fiyin Adebayo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -47,6 +47,7 @@ files:
|
|
47
47
|
- lib/locations_ng.rb
|
48
48
|
- lib/locations_ng/city.rb
|
49
49
|
- lib/locations_ng/lga.rb
|
50
|
+
- lib/locations_ng/load_file.rb
|
50
51
|
- lib/locations_ng/locations/cities.yml
|
51
52
|
- lib/locations_ng/locations/lgas.yml
|
52
53
|
- lib/locations_ng/locations/states.yml
|