hijri 0.5.0 → 0.6.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.
@@ -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: