hijri 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  class Date
2
- def to_hijri
3
- Hijri::Date.new *Hijri::Converter.greo_to_hijri(self)
2
+ def to_hijri(adjust=0)
3
+ Hijri::Date.new(*Hijri::Converter.greo_to_hijri(self + adjust))
4
4
  end
5
5
 
6
6
  def last_day_of_gregorian_month(month)
@@ -1,3 +1,3 @@
1
1
  module Hijri
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -16,9 +16,7 @@ rescue Bundler::BundlerError => e
16
16
  exit e.status_code
17
17
  end
18
18
 
19
- if %w(1.8.7 2.2.0).include? RUBY_VERSION
20
- require 'minitest/autorun'
21
- end
19
+ require 'minitest/autorun'
22
20
 
23
21
  require 'minitest/unit'
24
22
 
@@ -8,12 +8,12 @@ class TestHijri < MiniTest::Unit::TestCase
8
8
 
9
9
  assert(!version.empty?, 'should have a VERSION constant')
10
10
  end
11
-
11
+
12
12
  def test_hijri_date_to_string
13
13
  date = Hijri::Date.new 1433, 9, 18
14
14
  assert_equal "1433-09-18", date.to_s
15
15
  end
16
-
16
+
17
17
  def test_greo_date_to_hijri
18
18
  date = Date.new 2014, 12, 7
19
19
  # switiching between solar calendar and lunar calendar is a bit
@@ -22,19 +22,19 @@ class TestHijri < MiniTest::Unit::TestCase
22
22
  correct_dates = (14..16).map {|n| "1436-02-#{n}" }
23
23
  assert_includes correct_dates, date.to_hijri.to_s
24
24
  end
25
-
25
+
26
26
  def test_hijri_to_greo
27
27
  h = Hijri::Date.new 1430, 1, 1
28
28
  g = Date.new 2008, 12, 29
29
29
  assert_equal(g , h.to_greo)
30
30
  end
31
-
31
+
32
32
  def test_hijri_date_today
33
33
  gdate = Date.today
34
34
  hdate = Hijri::Date.today
35
35
  assert_equal gdate, hdate.to_greo
36
36
  end
37
-
37
+
38
38
  def test_hijri_datetime_now_create_datetime_object_with_now_date_and_time
39
39
  g_datetime = DateTime.now
40
40
  h_datetime = Hijri::DateTime.now
@@ -56,7 +56,7 @@ class TestHijri < MiniTest::Unit::TestCase
56
56
  def test_comparing_two_hijri_date
57
57
  date1 = Hijri::Date.new 1435, 1, 1
58
58
  date2 = Hijri::Date.new 1435, 1, 1
59
-
59
+
60
60
  assert_equal date1, date2
61
61
  end
62
62
 
@@ -83,7 +83,7 @@ class TestHijri < MiniTest::Unit::TestCase
83
83
  datetime = Hijri::DateTime.new 1433, 9, 18, 1, 1, 1, '00:00'
84
84
  assert_equal "1433-09-18T01:01:01+00:00", datetime.to_s
85
85
  end
86
-
86
+
87
87
  def test_hijri_date_strftime_shows_hijri_month_names
88
88
  date = Hijri::Date.new 1436, 2, 21
89
89
  assert_equal "Safar", date.strftime("%B")
@@ -93,23 +93,23 @@ class TestHijri < MiniTest::Unit::TestCase
93
93
  date = Hijri::Date.new 1433, 12, 18
94
94
  assert_equal "1433-12-18", date.strftime
95
95
  end
96
-
96
+
97
97
  def test_hijri_datetime_strftime_with_no_input
98
98
  datetime = Hijri::DateTime.new 1433, 9, 18, 1, 1, 1, '+03:00'
99
99
  #"1433-09-18T01:01:01+03:00"
100
100
  assert_equal datetime.to_s, datetime.strftime
101
101
  end
102
-
102
+
103
103
  def test_hijri_full_arabic_month
104
104
  date = Hijri::Date.new 1436, 3, 1
105
105
  assert_equal "Rabia-Awwal", date.strftime('%B')
106
106
  end
107
-
107
+
108
108
  def test_hijri_short_arabic_month_name
109
109
  date = Hijri::Date.new 1436, 3, 1
110
110
  assert_equal "Rabia I", date.strftime('%b')
111
111
  end
112
-
112
+
113
113
  def test_hijri_full_arabic_day_name
114
114
  (15..21).each do |day|
115
115
  date = Hijri::Date.new 1436, 1, day
@@ -118,17 +118,17 @@ class TestHijri < MiniTest::Unit::TestCase
118
118
  end
119
119
 
120
120
  def test_hijri_short_arabic_day_name
121
- (1..7).each do |day|
121
+ (1..7).each do |day|
122
122
  date = Hijri::Date.new 1436, 3, day
123
123
  assert_equal Hijri::Date::ABBR_DAYNAMES[(day+2)%7], date.strftime('%a')
124
124
  end
125
125
  end
126
-
126
+
127
127
  def test_hijri_day_of_the_year
128
128
  date = Hijri::Date.new 1436, 3, 20
129
129
  assert_equal "079", date.strftime('%j')
130
130
  end
131
-
131
+
132
132
  def test_hijri_week_number_of_the_year
133
133
  date = Hijri::Date.new 1436, 3, 20
134
134
  assert_equal "11", date.strftime('%U')
@@ -138,7 +138,7 @@ class TestHijri < MiniTest::Unit::TestCase
138
138
  def test_date_change
139
139
  date = Hijri::Date.new 1436, 3, 20
140
140
  date_to_be = Hijri::Date.new 1435, 4, 10
141
-
141
+
142
142
  date.change :year => 1435, :month => 4, :day => 10
143
143
  assert_equal date_to_be, date
144
144
  end
@@ -146,7 +146,7 @@ class TestHijri < MiniTest::Unit::TestCase
146
146
  def test_date_change_with_nil_arguments
147
147
  date = Hijri::Date.new 1436, 3, 20
148
148
  date_to_be = Hijri::Date.new 1435, 4, 20
149
-
149
+
150
150
  date.change :year => 1435, :month => 4, :day => nil
151
151
  assert_equal date_to_be, date
152
152
  end
@@ -154,7 +154,7 @@ class TestHijri < MiniTest::Unit::TestCase
154
154
  def test_datetime_change
155
155
  datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30)
156
156
  datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 0)
157
-
157
+
158
158
  datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => 0
159
159
  assert_equal datetime_to_be, datetime
160
160
  end
@@ -162,7 +162,7 @@ class TestHijri < MiniTest::Unit::TestCase
162
162
  def test_datetime_change_with_nil_arguments
163
163
  datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30)
164
164
  datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 30)
165
-
165
+
166
166
  datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => nil
167
167
  assert_equal datetime_to_be, datetime
168
168
  end
@@ -175,4 +175,36 @@ class TestHijri < MiniTest::Unit::TestCase
175
175
  assert_raises(ArgumentError) { Hijri::DateTime.new(1430, 12, 10, 30, 70) }
176
176
  end
177
177
 
178
+ def test_to_hijri_accept_adjust_variable
179
+ today = Date.today.to_hijri
180
+ yesterday = Date.today.to_hijri(-1)
181
+ tomorrow = Date.today.to_hijri(+1)
182
+
183
+ assert today > yesterday
184
+ assert tomorrow > today
185
+ end
186
+
187
+ def test_to_goreg_accept_adjust_variable
188
+ today = Hijri::Date.today.to_greo
189
+ yesterday = Hijri::Date.today.to_greo(-1)
190
+ tomorrow = Hijri::Date.today.to_greo(+1)
191
+
192
+ assert today > yesterday
193
+ assert tomorrow > today
194
+ end
195
+
196
+ def test_resolve_hijri_date_1439_4_12_to_greo_not_raise_error
197
+ # this to test issue #5 https://github.com/ecleel/hijri/issues/5
198
+ hdate = Hijri::Date.new(1439, 4, 12)
199
+ gdate = Date.new(2017, 12, 31)
200
+ assert_equal gdate, hdate.to_greo
201
+ end
202
+
203
+ # def test_issue_4_of_wrong_conversion
204
+ # gdate = Date.new 2017, 9, 1
205
+ # hdate = Hijri::Date.new 1438, 12, 9
206
+ #
207
+ # # assert_equal hdate, gdate.to_hijri
208
+ # assert_equal Hijri::Date.new(1437, 12, 6), Date.new(2016, 9, 9).to_hijri
209
+ # end
178
210
  end
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hijri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdulaziz AlShetwi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-26 00:00:00.000000000 Z
11
+ date: 2019-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.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: '0.8'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.8'
26
+ version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: yard
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
- - - "~>"
31
+ - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '0.8'
33
+ version: '0'
48
34
  type: :development
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - "~>"
38
+ - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '0.8'
40
+ version: '0'
55
41
  description: hijri is full Islamic Hijri calendar lib for ruby.
56
42
  email: ecleeld@gmail.com
57
43
  executables: []
@@ -96,12 +82,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
82
  - !ruby/object:Gem::Version
97
83
  version: '0'
98
84
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.4.5
85
+ rubygems_version: 3.0.3
101
86
  signing_key:
102
87
  specification_version: 4
103
88
  summary: Hijri Date Library for Ruby
104
89
  test_files:
105
90
  - test/helper.rb
106
91
  - test/test_hijri.rb
107
- has_rdoc: