namaz 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +35 -15
- data/lib/namaz.rb +27 -2
- data/lib/namaz/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 871d931898844bbe7491afe62ab6c0bde3312f0b
|
4
|
+
data.tar.gz: cb6f79d1f7dd858e93b70da77c5e2a31ab766aef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4269271a282a9783631b840125f21f09e1b54abf89bb73b357fa3c91f5de0e7ffba626ae0356874ac7c3b9f1a399c48e540ec92ff8b58249235391a3aeac2a82
|
7
|
+
data.tar.gz: 8e2949eaca4652acc770baa2b37dba51b0312f1de39e40d2020524080c0b48f525f6ba32d130ceee0f4ba0b774daa2ce7780d9c1767a47da8ea146ad0b23757b
|
data/README.md
CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
$ gem install namaz
|
26
26
|
|
27
|
-
|
27
|
+
# Usage
|
28
28
|
Make sure you require the library, where you want to use it, Or require in `application.rb` to use all over the application.
|
29
29
|
|
30
30
|
```ruby
|
@@ -33,19 +33,51 @@ require 'namaz'
|
|
33
33
|
|
34
34
|
You can then make requests to the following method.
|
35
35
|
```ruby
|
36
|
+
## Using Altitudes:
|
36
37
|
Namaz.timings(latitude:, longitude:, timezonestring:, method:, options: {})
|
38
|
+
## Using City and Country Information:
|
39
|
+
Namaz.timings(city:, country:, method:, options: {})
|
37
40
|
```
|
38
41
|
|
39
|
-
|
42
|
+
### Examples:
|
40
43
|
```ruby
|
44
|
+
# Using Altitudes:
|
41
45
|
Namaz.timings(latitude: 31.5546, longitude: 74.3572, timezonestring: "Asia/Karachi", method: 1, options: {timestamp: Time.now.to_i})
|
46
|
+
# Using City and Country Information:
|
47
|
+
Namaz.timings(city: 'Karachi', country: 'PK', method: 1, options: {timestamp: Time.now.to_i})
|
42
48
|
```
|
43
49
|
|
44
|
-
|
50
|
+
##### Example Request Using Altitudes
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
timings = Namaz.timings(latitude: 31.5546, longitude: 74.3572, timezonestring: "Asia/Karachi", method: 1, options: {timestamp: Time.now.to_i})
|
54
|
+
```
|
55
|
+
##### Example Request Using Country and City Information
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
timings = Namaz.timings(city: 'Karachi', country: 'PK', method: 1, options: {state: 'Punjab', timestamp: Time.now.to_i})
|
59
|
+
```
|
60
|
+
##### Example Response
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
=> #<Hashie::Mash Asr="15:27" Dhuhr="12:16" Fajr="05:19" Imsak="05:09" Isha="19:14" Maghrib="17:53" Midnight="00:17" Sunrise="06:41" Sunset="17:53">
|
64
|
+
|
65
|
+
timings.Fajr
|
66
|
+
=> "05:19"
|
67
|
+
```
|
68
|
+
|
69
|
+
### Parameters Description
|
45
70
|
* **timestamp OPTIONAL** - `DEFAULT = Time.now.to_i` a UNIX timestamp (from any time of the day) of the day for which you want the timings. If you don't specify a timestamp, the result will come back for today - today being the date in the Europe/London timezone.
|
71
|
+
|
46
72
|
* **latitude** - the decimal value for the latitude co-ordinate of the location you want the time computed for. Example: 51.75865125
|
47
73
|
* **longitude** - the decimal value for the longitude co-ordinate of the location you want the time computed for. Example: -1.25387785
|
48
74
|
* **timezonestring** - A valid timezone name as specified on http://php.net/manual/en/timezones.php. Example: Europe/London
|
75
|
+
|
76
|
+
|
77
|
+
* **city** - A city name. Example: London
|
78
|
+
* **country** - A country name or 2 character alpha ISO 3166 code. Example: GB or United Kindom
|
79
|
+
* **state** - State or province (optional). A state name or abbreviation. Example: Colorado / CO / Punjab / Bengal
|
80
|
+
|
49
81
|
* **method** - these are the different methods identifying various schools of thought about how to compute the timings. This parameter accepts values from 0-7, as signified below:
|
50
82
|
* 0 - Shia Ithna-Ashari
|
51
83
|
* 1 - University of Islamic Sciences, Karachi
|
@@ -55,18 +87,6 @@ Namaz.timings(latitude: 31.5546, longitude: 74.3572, timezonestring: "Asia/Karac
|
|
55
87
|
* 5 - Egyptian General Authority of Survey
|
56
88
|
* 7 - Institute of Geophysics, University of Tehran
|
57
89
|
|
58
|
-
### Example Request
|
59
|
-
|
60
|
-
```ruby
|
61
|
-
timings = Namaz.timings(latitude: 31.5546, longitude: 74.3572, timezonestring: "Asia/Karachi", method: 1, options: {timestamp: Time.now.to_i})
|
62
|
-
```
|
63
|
-
### Example Response
|
64
|
-
```ruby
|
65
|
-
=> #<Hashie::Mash Asr="15:27" Dhuhr="12:16" Fajr="05:19" Imsak="05:09" Isha="19:14" Maghrib="17:53" Midnight="00:17" Sunrise="06:41" Sunset="17:53">
|
66
|
-
|
67
|
-
timings.Fajr
|
68
|
-
=> "05:19"
|
69
|
-
```
|
70
90
|
## Optional HTTP Configuration
|
71
91
|
The HTTP requests are made with [Faraday](https://github.com/lostisland/faraday), which uses `Net::HTTP` by default. Changing the adapter is easy. We will use typhoeus as an example.
|
72
92
|
|
data/lib/namaz.rb
CHANGED
@@ -26,8 +26,28 @@ module Namaz
|
|
26
26
|
method: method
|
27
27
|
}
|
28
28
|
|
29
|
-
namaz_response
|
30
|
-
|
29
|
+
namaz_response(namaz_url, params)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Retrieve the namaz timings for a given city, country, method.
|
33
|
+
#
|
34
|
+
# @param latitude [Float] Latitude.
|
35
|
+
# @param longitude [Float] Longitude.
|
36
|
+
# @param timezonestring [String]
|
37
|
+
# @param method [Integer]
|
38
|
+
# @param options [Hash], Have optional values like timestamp, that is default to Current timestamp
|
39
|
+
def timings(city:, country:, method:, options: {})
|
40
|
+
timestamp = options[:timestamp] ? options[:timestamp] : Time.now.to_i
|
41
|
+
namaz_url = [DEFAULT_API_URL, 'timingsByCity', timestamp].join('/')
|
42
|
+
|
43
|
+
params = {
|
44
|
+
city: city,
|
45
|
+
country: country,
|
46
|
+
state: options[:state],
|
47
|
+
method: method
|
48
|
+
}
|
49
|
+
|
50
|
+
namaz_response(namaz_url, params)
|
31
51
|
end
|
32
52
|
|
33
53
|
# Build or get an HTTP connection object.
|
@@ -47,5 +67,10 @@ module Namaz
|
|
47
67
|
def get(path, params = {})
|
48
68
|
connection.get(path, params)
|
49
69
|
end
|
70
|
+
|
71
|
+
def namaz_response(namaz_url, params)
|
72
|
+
namaz_response = connection.get(namaz_url, params)
|
73
|
+
return Hashie::Mash.new(MultiJson.load(namaz_response.body)).data.timings if namaz_response.success?
|
74
|
+
end
|
50
75
|
end
|
51
76
|
end
|
data/lib/namaz/version.rb
CHANGED