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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 00a014d75a7276b009668a2f0ae8a348f3d45307
4
- data.tar.gz: 6abb47879abeb515c7c0e50c9d374ce3af1bab39
2
+ SHA256:
3
+ metadata.gz: 66dad608d2a8a98f4f9b47d4c993d5c24b16d16052da321523837bce8e2372c3
4
+ data.tar.gz: 8e4a24b7ea26f07beff019aec0824c3d04131934d3aee17c1597f4ecf2814086
5
5
  SHA512:
6
- metadata.gz: aeef25610a99af0a7ed6c75faaa7411c04be4d0d88fba6eaafd124131db849772936dbc5c0b9b86536b4da88e0a68901e60dce70460b24ad020df6ba662612f7
7
- data.tar.gz: dfd9a5130f48702e5b77925a00ceb52172cc949053e5e3c6ef8f704fad6c95b5be339a1e57b07ea1e8fd0d835f51ea005af605bb45e483b20ce5978268a8bfbf
6
+ metadata.gz: 44fd65370a4f9b7e4d83f4eb69842a2301c006fadc3a82b0316a52ec691b68a9841e6c09b813f1f952912e51c60c8a2d326a07908573e7a822008ada314c6f45
7
+ data.tar.gz: 39ac0bd0f2ce964d8f19c716fcfba11df05b50c92f669b7b4fb4b1e5fc906fa77d52e4e384845490f64efdf30d56d5b4146be0cf6291a4a9f3fb0146f844bc33
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .byebug_history
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017 Sohair Ahmad
3
+ Copyright (c) 2018 Sohair Ahmad
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Namaz
2
- [namaz](https://aladhan.com/prayer-times-api) ruby gem is an API wrapper.
3
- Namaz is aladhan.com wrapper in ruby to use REST API that is open for public use.
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: 'git@github.com:Sohair63/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) 2013-2016 Sohair S. Ahmad. See LICENSE.txt for further details.
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
@@ -1,3 +1,3 @@
1
1
  module Namaz
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
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', '~> 0'
34
- spec.add_dependency 'multi_json', '~> 0'
35
- spec.add_dependency 'hashie', '~> 0'
33
+ spec.add_dependency 'faraday'
34
+ spec.add_dependency 'multi_json'
35
+ spec.add_dependency 'hashie'
36
36
 
37
- spec.add_development_dependency 'typhoeus', '~> 0'
38
- spec.add_development_dependency "bundler", "~> 1.13"
39
- spec.add_development_dependency "rake", "~> 10.0"
40
- spec.add_development_dependency "rspec", "~> 3.0"
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
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: 2017-03-06 00:00:00.000000000 Z
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: '0'
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: '0'
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: '1.13'
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: '1.13'
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: '10.0'
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: '10.0'
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.0'
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.0'
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
- rubyforge_project:
154
- rubygems_version: 2.5.1
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: []