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.
@@ -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,10 @@
1
+ require 'json'
2
+
3
+ module Manateq
4
+ class Helper
5
+ def self.to_hash(file)
6
+ file = File.read("lib/manateq/data/#{file}.json")
7
+ data_hash = JSON.parse(file)
8
+ end
9
+ end
10
+ 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
@@ -0,0 +1,3 @@
1
+ module Manateq
2
+ VERSION = "0.1.0"
3
+ end
@@ -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: []