namaz 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/LICENSE.txt +1 -1
- data/README.md +31 -4
- data/lib/namaz.rb +62 -2
- data/lib/namaz/version.rb +1 -1
- data/namaz.gemspec +7 -7
- metadata +20 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 66dad608d2a8a98f4f9b47d4c993d5c24b16d16052da321523837bce8e2372c3
|
4
|
+
data.tar.gz: 8e4a24b7ea26f07beff019aec0824c3d04131934d3aee17c1597f4ecf2814086
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44fd65370a4f9b7e4d83f4eb69842a2301c006fadc3a82b0316a52ec691b68a9841e6c09b813f1f952912e51c60c8a2d326a07908573e7a822008ada314c6f45
|
7
|
+
data.tar.gz: 39ac0bd0f2ce964d8f19c716fcfba11df05b50c92f669b7b4fb4b1e5fc906fa77d52e4e384845490f64efdf30d56d5b4146be0cf6291a4a9f3fb0146f844bc33
|
data/.gitignore
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Namaz
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/a00997d44c73474b9372b8e88ae04fd5)](https://app.codacy.com/app/sohair.ahmad/namaz?utm_source=github.com&utm_medium=referral&utm_content=Sohair63/namaz&utm_campaign=Badge_Grade_Dashboard)
|
4
|
+
|
5
|
+
namaz ruby gem is an API wrapper. Namaz is aladhan.com wrapper in ruby to use REST API that is open for public use.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -13,7 +15,7 @@ gem 'namaz'
|
|
13
15
|
For latest code:
|
14
16
|
|
15
17
|
```ruby
|
16
|
-
gem 'namaz', git: '
|
18
|
+
gem 'namaz', git: 'https://github.com/Sohair63/namaz.git'
|
17
19
|
```
|
18
20
|
|
19
21
|
And then execute:
|
@@ -31,6 +33,31 @@ Make sure you require the library, where you want to use it, Or require in `appl
|
|
31
33
|
require 'namaz'
|
32
34
|
```
|
33
35
|
|
36
|
+
## Upcoming Namaz and Namaz Time remain
|
37
|
+
Returns upcoming prayer time with the its name.
|
38
|
+
Note that: Returning time is in seconds, to help users to convert seconds to bigger units according to their needs or may be better use is placing in some jquery plugin e.g. jquery-countdown.
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
## Using Altitudes:
|
42
|
+
upcoming_namaz = Namaz.upcoming_namaz(latitude: 31.5546, longitude: 74.3572, timezonestring: "Asia/Karachi", method: 1, options: {timestamp: Time.now.to_i})
|
43
|
+
|
44
|
+
=> #<Hashie::Mash namaz_name="Fajr" time_remaining_in_seconds=54821.0>
|
45
|
+
|
46
|
+
upcoming_namaz.namaz_name
|
47
|
+
=> "Fajr"
|
48
|
+
upcoming_namaz.time_remaining_in_seconds
|
49
|
+
=> 54821.0
|
50
|
+
|
51
|
+
## Using City and Country Information:
|
52
|
+
upcoming_namaz = Namaz.upcoming_namaz_by_city(city: 'Karachi', country: 'PK', method: 1, options: {state: 'Punjab', timestamp: Time.now.to_i})
|
53
|
+
=> #<Hashie::Mash namaz_name="Fajr" time_remaining_in_seconds=54821.0>
|
54
|
+
|
55
|
+
upcoming_namaz.namaz_name
|
56
|
+
=> "Fajr"
|
57
|
+
upcoming_namaz.time_remaining_in_seconds
|
58
|
+
=> 54821.0
|
59
|
+
```
|
60
|
+
|
34
61
|
## Timings
|
35
62
|
Returns all prayer times for a specific date and for a specific date in a city. You can then make requests to the following method.
|
36
63
|
```ruby
|
@@ -212,7 +239,7 @@ The gem is available as open source under the terms of the [MIT License](http://
|
|
212
239
|
|
213
240
|
## Copyright
|
214
241
|
|
215
|
-
Copyright (c)
|
242
|
+
Copyright (c) 2018 Sohair S. Ahmad. See LICENSE.txt for further details.
|
216
243
|
|
217
244
|
## Development
|
218
245
|
|
data/lib/namaz.rb
CHANGED
@@ -3,11 +3,50 @@ require 'namaz/version'
|
|
3
3
|
require 'hashie'
|
4
4
|
require 'multi_json'
|
5
5
|
require 'faraday'
|
6
|
+
require 'time'
|
7
|
+
require 'active_support/core_ext/time/zones'
|
6
8
|
|
7
9
|
module Namaz
|
8
|
-
DEFAULT_API_URL = 'http://api.aladhan.com'
|
10
|
+
DEFAULT_API_URL = 'http://api.aladhan.com/v1'
|
9
11
|
|
10
12
|
class << self
|
13
|
+
# Retrieve the remaining time to next namaz for a given latitude, longitude, timezonestring and method.
|
14
|
+
#
|
15
|
+
# @param [Float] latitude.
|
16
|
+
# @param [Float] longitude.
|
17
|
+
# @param [String] timezonestring
|
18
|
+
# @param [Integer] method
|
19
|
+
# @param options [Hash], Have optional values like timestamp, that is default to Current timestamp
|
20
|
+
# @return [Hash] namaz_name, and time remain in seconds
|
21
|
+
def upcoming_namaz(latitude:, longitude:, timezonestring:, method:, options: {})
|
22
|
+
namaz_time_response = timings(
|
23
|
+
latitude: latitude,
|
24
|
+
longitude: longitude,
|
25
|
+
timezonestring: timezonestring,
|
26
|
+
method: method,
|
27
|
+
options: options
|
28
|
+
)
|
29
|
+
|
30
|
+
prayer_and_time_remain(namaz_time_response, timezonestring)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Retrieve the remaining time to next namaz for a given city, country, method and timezonestring
|
34
|
+
#
|
35
|
+
# @param [String] city
|
36
|
+
# @param [String] country
|
37
|
+
# @param [Integer] method
|
38
|
+
# @param [Hash] options, Have optional values like timestamp, that is default to Current timestamp
|
39
|
+
# @return [Hash] namaz_name, and time remain in seconds
|
40
|
+
def upcoming_namaz_by_city(city:, country:, method:, timezonestring:, options: {})
|
41
|
+
namaz_time_response = timings_by_city(
|
42
|
+
city: city,
|
43
|
+
country: country,
|
44
|
+
method: method,
|
45
|
+
options: options)
|
46
|
+
|
47
|
+
prayer_and_time_remain(namaz_time_response, timezonestring)
|
48
|
+
end
|
49
|
+
|
11
50
|
# Retrieve the latitude, longitude and timezone for a given city
|
12
51
|
# @param [String] city
|
13
52
|
# @param [String] country
|
@@ -62,7 +101,6 @@ module Namaz
|
|
62
101
|
#
|
63
102
|
# @param [String] city
|
64
103
|
# @param [String] country
|
65
|
-
# @param [String] timezonestring
|
66
104
|
# @param [Integer] method
|
67
105
|
# @param [Hash] options, Have optional values like timestamp, that is default to Current timestamp
|
68
106
|
def timings_by_city(city:, country:, method:, options: {})
|
@@ -154,5 +192,27 @@ module Namaz
|
|
154
192
|
return Hashie::Mash.new(MultiJson.load(response.body)).data if response.success?
|
155
193
|
end
|
156
194
|
|
195
|
+
def prayer_and_time_remain(times, timezonestring)
|
196
|
+
times.delete('Sunset')
|
197
|
+
times.delete('Sunrise')
|
198
|
+
times.delete('Midnight')
|
199
|
+
times.delete('Imsak')
|
200
|
+
|
201
|
+
Time.zone = timezonestring
|
202
|
+
current_time = Time.now
|
203
|
+
current_time_hms = current_time.strftime('%H:%M:%S')
|
204
|
+
current_time_hm = current_time.strftime('%H:%M')
|
205
|
+
|
206
|
+
times.select { |key, value| times[key] = Time.strptime(value, '%H:%M').strftime('%H:%M') }
|
207
|
+
namaz_name, namaz_time = times.select { |_, value| current_time_hm <= value }.first
|
208
|
+
namaz_name, namaz_time = times.first if namaz_time.blank?
|
209
|
+
time_diff = Time.parse(namaz_time) - Time.parse(current_time_hms)
|
210
|
+
[namaz_name, time_diff.abs]
|
211
|
+
|
212
|
+
Time.zone = nil
|
213
|
+
|
214
|
+
Hashie::Mash.new(namaz_name: namaz_name, time_remaining_in_seconds: time_diff.abs)
|
215
|
+
end
|
216
|
+
|
157
217
|
end
|
158
218
|
end
|
data/lib/namaz/version.rb
CHANGED
data/namaz.gemspec
CHANGED
@@ -30,12 +30,12 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
-
spec.add_dependency 'faraday'
|
34
|
-
spec.add_dependency 'multi_json'
|
35
|
-
spec.add_dependency 'hashie'
|
33
|
+
spec.add_dependency 'faraday'
|
34
|
+
spec.add_dependency 'multi_json'
|
35
|
+
spec.add_dependency 'hashie'
|
36
36
|
|
37
|
-
spec.add_development_dependency 'typhoeus', '~>
|
38
|
-
spec.add_development_dependency "bundler", "~>
|
39
|
-
spec.add_development_dependency "rake", "~>
|
40
|
-
spec.add_development_dependency "rspec", "~> 3.
|
37
|
+
spec.add_development_dependency 'typhoeus', '~> 1'
|
38
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
39
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
40
|
+
spec.add_development_dependency "rspec", "~> 3.10"
|
41
41
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: namaz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sohair Ahmad
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: multi_json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: hashie
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -58,56 +58,56 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '1'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '1'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '2.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '13.0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '13.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '3.
|
103
|
+
version: '3.10'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
110
|
+
version: '3.10'
|
111
111
|
description: Namaz gem is AlAdhan.com wrapper in ruby to use REST API that is open
|
112
112
|
for public use.
|
113
113
|
email:
|
@@ -135,7 +135,7 @@ licenses:
|
|
135
135
|
- MIT
|
136
136
|
metadata:
|
137
137
|
allowed_push_host: https://rubygems.org
|
138
|
-
post_install_message:
|
138
|
+
post_install_message:
|
139
139
|
rdoc_options: []
|
140
140
|
require_paths:
|
141
141
|
- lib
|
@@ -150,9 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
requirements: []
|
153
|
-
|
154
|
-
|
155
|
-
signing_key:
|
153
|
+
rubygems_version: 3.0.3
|
154
|
+
signing_key:
|
156
155
|
specification_version: 4
|
157
156
|
summary: Returns all prayer times for a specific date
|
158
157
|
test_files: []
|