manateq 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +29 -0
- data/LICENSE.txt +21 -0
- data/README.md +45 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/manateq.rb +13 -0
- data/lib/manateq/city.rb +31 -0
- data/lib/manateq/data/cities.json +29314 -0
- data/lib/manateq/data/districts.json +16874 -0
- data/lib/manateq/data/regions.json +93 -0
- data/lib/manateq/district.rb +29 -0
- data/lib/manateq/helper.rb +10 -0
- data/lib/manateq/region.rb +28 -0
- data/lib/manateq/resource.rb +57 -0
- data/lib/manateq/version.rb +3 -0
- data/manateq.gemspec +29 -0
- metadata +108 -0
@@ -0,0 +1,93 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"region_id" : 1,
|
4
|
+
"name" : {
|
5
|
+
"ar" : "الحدود الشمالية",
|
6
|
+
"en" : "Northern Borders"
|
7
|
+
}
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"region_id" : 2,
|
11
|
+
"name" : {
|
12
|
+
"ar" : "الجوف",
|
13
|
+
"en" : "Al Jawf"
|
14
|
+
}
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"region_id" : 3,
|
18
|
+
"name" : {
|
19
|
+
"ar" : "تبوك",
|
20
|
+
"en" : "Tabuk"
|
21
|
+
}
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"region_id" : 4,
|
25
|
+
"name" : {
|
26
|
+
"ar" : "حائل",
|
27
|
+
"en" : "Hail"
|
28
|
+
}
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"region_id" : 5,
|
32
|
+
"name" : {
|
33
|
+
"ar" : "القصيم",
|
34
|
+
"en" : "Al Qassim"
|
35
|
+
}
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"region_id" : 6,
|
39
|
+
"name" : {
|
40
|
+
"ar" : "الرياض",
|
41
|
+
"en" : "Ar Riyadh"
|
42
|
+
}
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"region_id" : 7,
|
46
|
+
"name" : {
|
47
|
+
"ar" : "المدينة المنورة",
|
48
|
+
"en" : "Al Madinah"
|
49
|
+
}
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"region_id" : 8,
|
53
|
+
"name" : {
|
54
|
+
"ar" : "عسير",
|
55
|
+
"en" : "Asir"
|
56
|
+
}
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"region_id" : 9,
|
60
|
+
"name" : {
|
61
|
+
"ar" : "الباحة",
|
62
|
+
"en" : "Al Baha"
|
63
|
+
}
|
64
|
+
},
|
65
|
+
{
|
66
|
+
"region_id" : 10,
|
67
|
+
"name" : {
|
68
|
+
"ar" : "جازان",
|
69
|
+
"en" : "Jazan"
|
70
|
+
}
|
71
|
+
},
|
72
|
+
{
|
73
|
+
"region_id" : 11,
|
74
|
+
"name" : {
|
75
|
+
"ar" : "مكة المكرمة",
|
76
|
+
"en" : "Makkah"
|
77
|
+
}
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"region_id" : 12,
|
81
|
+
"name" : {
|
82
|
+
"ar" : "نجران",
|
83
|
+
"en" : "Najran"
|
84
|
+
}
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"region_id" : 13,
|
88
|
+
"name" : {
|
89
|
+
"ar" : "الشرقية",
|
90
|
+
"en" : "Eastern"
|
91
|
+
}
|
92
|
+
}
|
93
|
+
]
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Manateq
|
2
|
+
class District
|
3
|
+
include Manateq::Resource
|
4
|
+
|
5
|
+
attr_accessor :id
|
6
|
+
attr_accessor :arabic_name
|
7
|
+
attr_accessor :english_name
|
8
|
+
attr_accessor :city
|
9
|
+
|
10
|
+
def self.resource_name
|
11
|
+
'districts'
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.fill data
|
15
|
+
r_obj = self.new
|
16
|
+
r_obj.id = data['district_id']
|
17
|
+
r_obj.arabic_name = data['name']['ar']
|
18
|
+
r_obj.english_name = data['name']['en']
|
19
|
+
r_obj.city = Manateq::Region.get_by_id data['city_id']
|
20
|
+
r_obj
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.compare resource, name
|
24
|
+
resource.arabic_name.downcase.index(name.downcase) != nil or
|
25
|
+
resource.english_name.downcase.index(name.downcase) != nil
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../../lib/manateq/helper'
|
2
|
+
module Manateq
|
3
|
+
class Region
|
4
|
+
include Manateq::Resource
|
5
|
+
|
6
|
+
attr_accessor :id
|
7
|
+
attr_accessor :arabic_name
|
8
|
+
attr_accessor :english_name
|
9
|
+
|
10
|
+
def self.resource_name
|
11
|
+
'regions'
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.fill data
|
15
|
+
r_obj = self.new
|
16
|
+
r_obj.id = data['region_id']
|
17
|
+
r_obj.arabic_name = data['name']['ar']
|
18
|
+
r_obj.english_name = data['name']['en']
|
19
|
+
r_obj
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.compare resource, name
|
23
|
+
resource.arabic_name.downcase.index(name.downcase) != nil or
|
24
|
+
resource.english_name.downcase.index(name.downcase) != nil
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Manateq
|
2
|
+
module Resource
|
3
|
+
|
4
|
+
def self.included base
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def resource_name
|
10
|
+
'resource'
|
11
|
+
end
|
12
|
+
|
13
|
+
def fill data
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def compare resource, name
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
def list
|
22
|
+
data = Manateq::Helper.to_hash self.resource_name
|
23
|
+
result = []
|
24
|
+
data.each do |resource|
|
25
|
+
r_obj = self.fill resource
|
26
|
+
result.append(r_obj)
|
27
|
+
end
|
28
|
+
result
|
29
|
+
end
|
30
|
+
|
31
|
+
def search name
|
32
|
+
data = self.list
|
33
|
+
result = nil
|
34
|
+
data.each do |resource|
|
35
|
+
if self.compare resource, name
|
36
|
+
result = resource
|
37
|
+
break
|
38
|
+
end
|
39
|
+
end
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_by_id id
|
44
|
+
data = self.list
|
45
|
+
result = nil
|
46
|
+
data.each do |resource|
|
47
|
+
unless resource.id != id
|
48
|
+
result = resource
|
49
|
+
break
|
50
|
+
end
|
51
|
+
end
|
52
|
+
result
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
data/manateq.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "manateq/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "manateq"
|
8
|
+
spec.version = Manateq::VERSION
|
9
|
+
spec.authors = ["nuha almozaini"]
|
10
|
+
spec.email = ["nuha.mozaini@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = "Manateq - a handy library for searching and listing regions, cities and districts in Saudi Arabia"
|
13
|
+
spec.homepage = "https://github.com/nuhamozaini/Manateq"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
|
17
|
+
# Specify which files should be added to the gem when it is released.
|
18
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
20
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
+
end
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ["lib"]
|
25
|
+
|
26
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
27
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
28
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: manateq
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- nuha almozaini
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-09-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- nuha.mozaini@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- ".rspec"
|
64
|
+
- ".travis.yml"
|
65
|
+
- CODE_OF_CONDUCT.md
|
66
|
+
- Gemfile
|
67
|
+
- Gemfile.lock
|
68
|
+
- LICENSE.txt
|
69
|
+
- README.md
|
70
|
+
- Rakefile
|
71
|
+
- bin/console
|
72
|
+
- bin/setup
|
73
|
+
- lib/manateq.rb
|
74
|
+
- lib/manateq/city.rb
|
75
|
+
- lib/manateq/data/cities.json
|
76
|
+
- lib/manateq/data/districts.json
|
77
|
+
- lib/manateq/data/regions.json
|
78
|
+
- lib/manateq/district.rb
|
79
|
+
- lib/manateq/helper.rb
|
80
|
+
- lib/manateq/region.rb
|
81
|
+
- lib/manateq/resource.rb
|
82
|
+
- lib/manateq/version.rb
|
83
|
+
- manateq.gemspec
|
84
|
+
homepage: https://github.com/nuhamozaini/Manateq
|
85
|
+
licenses:
|
86
|
+
- MIT
|
87
|
+
metadata: {}
|
88
|
+
post_install_message:
|
89
|
+
rdoc_options: []
|
90
|
+
require_paths:
|
91
|
+
- lib
|
92
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
requirements: []
|
103
|
+
rubygems_version: 3.0.4
|
104
|
+
signing_key:
|
105
|
+
specification_version: 4
|
106
|
+
summary: Manateq - a handy library for searching and listing regions, cities and districts
|
107
|
+
in Saudi Arabia
|
108
|
+
test_files: []
|