hijri_date 1.2.1 → 1.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9162daa9b08686219f6a1d54421bd4ac753e69ea
4
- data.tar.gz: cedc662662a23e5b30f66e9bb0857045aab974e0
2
+ SHA256:
3
+ metadata.gz: a37a88322fe5d8c847b858dc1c3d0b8c539ccbd2eda3bc7e4bef17c3f5c8b509
4
+ data.tar.gz: e002ee92d81b6e123ed9dc9ee8f9bb39235396cfd4a9cb184cbe5ad2e43e35d0
5
5
  SHA512:
6
- metadata.gz: 6a524230450d872897d56f045f6b4b330b83f1b151488ac9052ce5e2273cc03fd414d470b1fe4eda80bfef35a93d3a3eff285738f8c0fd1c1f6a9f2be97a5dc9
7
- data.tar.gz: 12ee6b280ac32fc3ba1cf9d0b437ad3a681fedb6632bb7fedffecc3072ff44794d9c2c7e86c882a59d0f0b007316ac9413ed1e0c72f67aadbfd6de98e2535317
6
+ metadata.gz: 4e735148231f5502dbf37a6aa50019b7786654c87ea069bdb22bae698410301f081fa426af823846cce6a5cc617915e208dcbcce592d882020d59bafb44fcce9
7
+ data.tar.gz: d88d091d9c088d223d1d8fad47f346205fb5e042449cc508bbd12f464b444fba217e21ba92c4249a7b7a491fa4ef9717d9fc86da19ded4b7329e9bd6bd1f3aaa
data/.rubocop.yml CHANGED
@@ -1,4 +1,28 @@
1
- inherit_from: .rubocop_todo.yml
1
+ AllCops:
2
+ NewCops: enable
3
+ SuggestExtensions: false
4
+ TargetRubyVersion: 2.7
5
+
6
+ Metrics/AbcSize:
7
+ Max: 30
8
+
9
+ Metrics/MethodLength:
10
+ Max: 12
11
+
12
+ Lint/AmbiguousOperatorPrecedence:
13
+ Enabled: false
14
+
15
+ Lint/RedundantSplatExpansion:
16
+ Enabled: false
17
+
18
+ Gemspec/RequireMFA:
19
+ Enabled: false
20
+
21
+ Naming/BinaryOperatorParameterName:
22
+ Enabled: false
23
+
24
+ Naming/MethodParameterName:
25
+ Enabled: false
2
26
 
3
27
  Style/Documentation:
4
28
  Enabled: false
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rake/testtask'
3
5
  require 'rubocop/rake_task'
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HijriDate
2
4
  # number of days in the year per month
3
- DAYS_IN_YEAR = [30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355]
5
+ DAYS_IN_YEAR = [30, 59, 89, 118, 148, 177, 207, 236, 266, 295, 325, 355].freeze
4
6
 
5
7
  # number of days in 30-years per year
6
8
  DAYS_IN_30_YEARS = [
7
9
  354, 708, 1063, 1417, 1771, 2126, 2480, 2834, 3189, 3543,
8
10
  3898, 4252, 4606, 4961, 5315, 5669, 6024, 6378, 6732, 7087,
9
11
  7441, 7796, 8150, 8504, 8859, 9213, 9567, 9922, 10276, 10631
10
- ]
12
+ ].freeze
11
13
 
12
- KABISA_YEAR_REMAINDERS = [2, 5, 8, 10, 13, 16, 19, 21, 24, 27, 29]
14
+ KABISA_YEAR_REMAINDERS = [2, 5, 8, 10, 13, 16, 19, 21, 24, 27, 29].freeze
13
15
  end
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module HijriDate
4
4
  MONTH_NAMES = {
@@ -32,7 +32,7 @@ module HijriDate
32
32
  'Zilqadah al-Haraam',
33
33
  'Zilhaj al-Haraam'
34
34
  ]
35
- }
35
+ }.freeze
36
36
 
37
37
  MONTHNAMES_AR = MONTH_NAMES[:ar]
38
38
  MONTHNAMES_EN = MONTH_NAMES[:en]
@@ -53,7 +53,7 @@ module HijriDate
53
53
  'Zilqadah',
54
54
  'Zilhaj'
55
55
  ]
56
- }
56
+ }.freeze
57
57
 
58
58
  SHORT_MONTHNAMES_EN = SHORT_MONTH_NAMES[:en]
59
59
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HijriDate
2
- VERSION = '1.2.1'
4
+ VERSION = '1.2.2'
3
5
  end
data/lib/hijri_date.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
1
4
  require 'hijri_date/constants'
2
5
  require 'hijri_date/month_names'
3
6
  require 'hijri_date/version'
@@ -5,7 +8,7 @@ require 'hijri_date/version'
5
8
  module HijriDate
6
9
  class Date
7
10
  # create setters and getters
8
- attr_accessor :year, :month, :day
11
+ attr_reader :year, :month, :day
9
12
 
10
13
  # constructor
11
14
  def initialize(year = 1432, month = 4, day = 20)
@@ -26,7 +29,7 @@ module HijriDate
26
29
 
27
30
  # number of days in this (or the specified) month and year
28
31
  def days_in_month(month = self.month, year = self.year)
29
- (month == 12 && kabisa?(year) || month.odd?) ? 30 : 29
32
+ month == 12 && kabisa?(year) || month.odd? ? 30 : 29
30
33
  end
31
34
 
32
35
  # day of the year corresponding to this (or specified) Hijri date
@@ -39,7 +42,7 @@ module HijriDate
39
42
  y30 = (date.year / 30.0).floor
40
43
  day_number = 1948084 + y30 * 10631 + day_of_year(date)
41
44
 
42
- if date.year % 30 == 0
45
+ if (date.year % 30).zero?
43
46
  day_number
44
47
  else
45
48
  day_number + DAYS_IN_30_YEARS[date.year - y30 * 30 - 1]
@@ -48,10 +51,9 @@ module HijriDate
48
51
 
49
52
  # comparison operator
50
53
  def ==(other)
51
- if other.is_a?(Date)
52
- return other.year == year && other.month == month && other.day == day
53
- end
54
- fail TypeError, 'expected HijriDate::Date'
54
+ return false unless other.is_a?(Date)
55
+
56
+ other.year == year && other.month == month && other.day == day
55
57
  end
56
58
 
57
59
  # return a new HijriDate object that is n days after the current one.
@@ -60,7 +62,7 @@ module HijriDate
60
62
  when Numeric
61
63
  return HijriDate.jd(jd + n)
62
64
  end
63
- fail TypeError, 'expected numeric'
65
+ raise TypeError, 'expected numeric'
64
66
  end
65
67
 
66
68
  # return a new HijriDate object that is n days before the current one.
@@ -69,7 +71,7 @@ module HijriDate
69
71
  when Numeric
70
72
  return HijriDate.jd(jd - n)
71
73
  end
72
- fail TypeError, 'expected numeric'
74
+ raise TypeError, 'expected numeric'
73
75
  end
74
76
 
75
77
  # return the day of the week (0-6, Sunday is zero)
@@ -88,13 +90,13 @@ module HijriDate
88
90
  i += 1 while left > DAYS_IN_30_YEARS[i]
89
91
 
90
92
  year = (y30 * 30 + i).to_i
91
- left -= DAYS_IN_30_YEARS[i - 1] if i > 0
93
+ left -= DAYS_IN_30_YEARS[i - 1] if i.positive?
92
94
 
93
95
  i = 0
94
96
  i += 1 while left > DAYS_IN_YEAR[i]
95
97
 
96
98
  month = (i + 1).to_i
97
- day = i > 0 ? (left - DAYS_IN_YEAR[i - 1]) : left
99
+ day = i.positive? ? (left - DAYS_IN_YEAR[i - 1]) : left
98
100
 
99
101
  Date.new(year, month, day)
100
102
  end
metadata CHANGED
@@ -1,71 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hijri_date
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Murtaza Gulamali
8
- autorequire:
9
- bindir: bin
8
+ bindir: exe
10
9
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.10'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.10'
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '5.8'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '5.8'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.4'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.4'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.34'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.34'
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
69
12
  description: Manage Islamic Hijri dates.
70
13
  email:
71
14
  - mygulamali@gmail.com
@@ -73,24 +16,18 @@ executables: []
73
16
  extensions: []
74
17
  extra_rdoc_files: []
75
18
  files:
76
- - ".gitignore"
77
19
  - ".rubocop.yml"
78
- - ".rubocop_todo.yml"
79
- - Gemfile
80
20
  - LICENSE.txt
81
21
  - README.md
82
22
  - Rakefile
83
- - hijri_date.gemspec
84
23
  - lib/hijri_date.rb
85
24
  - lib/hijri_date/constants.rb
86
25
  - lib/hijri_date/month_names.rb
87
26
  - lib/hijri_date/version.rb
88
- - test/hijri_date_test.rb
89
27
  homepage: https://github.com/mygulamali/hijri_date
90
28
  licenses:
91
29
  - MIT
92
30
  metadata: {}
93
- post_install_message:
94
31
  rdoc_options: []
95
32
  require_paths:
96
33
  - lib
@@ -98,17 +35,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
35
  requirements:
99
36
  - - ">="
100
37
  - !ruby/object:Gem::Version
101
- version: '2.0'
38
+ version: 2.7.0
102
39
  required_rubygems_version: !ruby/object:Gem::Requirement
103
40
  requirements:
104
41
  - - ">="
105
42
  - !ruby/object:Gem::Version
106
43
  version: '0'
107
44
  requirements: []
108
- rubyforge_project:
109
- rubygems_version: 2.4.5.1
110
- signing_key:
45
+ rubygems_version: 3.7.1
111
46
  specification_version: 4
112
47
  summary: Hijri date object
113
- test_files:
114
- - test/hijri_date_test.rb
48
+ test_files: []
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
data/.rubocop_todo.yml DELETED
@@ -1,21 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2015-09-28 23:38:18 +0100 using RuboCop version 0.34.2.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 4
10
- Metrics/AbcSize:
11
- Max: 30
12
-
13
- # Offense count: 1
14
- # Configuration parameters: CountComments.
15
- Metrics/MethodLength:
16
- Max: 12
17
-
18
- # Offense count: 2
19
- Style/OpMethod:
20
- Exclude:
21
- - 'lib/hijri_date.rb'
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in hijri_date.gemspec
4
- gemspec
data/hijri_date.gemspec DELETED
@@ -1,27 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'hijri_date/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.required_ruby_version = '>= 2.0'
8
-
9
- spec.name = 'hijri_date'
10
- spec.version = HijriDate::VERSION
11
- spec.authors = ['Murtaza Gulamali']
12
- spec.email = ['mygulamali@gmail.com']
13
- spec.description = 'Manage Islamic Hijri dates.'
14
- spec.summary = 'Hijri date object'
15
- spec.homepage = 'https://github.com/mygulamali/hijri_date'
16
- spec.license = 'MIT'
17
-
18
- spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
19
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
- spec.require_paths = ['lib']
22
-
23
- spec.add_development_dependency 'bundler', '~> 1.10'
24
- spec.add_development_dependency 'minitest', '~> 5.8'
25
- spec.add_development_dependency 'rake', '~> 10.4'
26
- spec.add_development_dependency 'rubocop', '~> 0.34'
27
- end
@@ -1,77 +0,0 @@
1
- require 'date'
2
- require 'hijri_date'
3
- require 'minitest/autorun'
4
- require 'minitest/pride'
5
-
6
- class HijriDateTest < MiniTest::Test
7
- def setup
8
- @date = HijriDate::Date.new # 20/04/1432H = 25/03/2011AD
9
- end
10
-
11
- def test_kabisa_year
12
- refute @date.kabisa?
13
- assert @date.kabisa? 1431
14
- end
15
-
16
- def test_days_in_month
17
- assert_equal 29, @date.days_in_month
18
- assert_equal 29, @date.days_in_month(12)
19
- assert_equal 30, @date.days_in_month(12, 1431)
20
- end
21
-
22
- def test_day_of_year
23
- assert_equal 109, @date.day_of_year
24
- assert_equal 10, HijriDate::Date.new(1432, 1, 10).day_of_year
25
- assert_equal 355, HijriDate::Date.new(1431, 12, 30).day_of_year
26
- assert_equal 354, HijriDate::Date.new(1432, 12, 29).day_of_year
27
- end
28
-
29
- def test_conversion_to_jd
30
- assert_equal 2455646, @date.jd
31
- end
32
-
33
- def test_comparison
34
- assert @date == HijriDate::Date.new(@date.year, @date.month, @date.day)
35
- refute @date == HijriDate::Date.new(@date.year + 1, @date.month, @date.day)
36
- refute @date == HijriDate::Date.new(@date.year, @date.month + 1, @date.day)
37
- refute @date == HijriDate::Date.new(@date.year, @date.month, @date.day + 1)
38
-
39
- assert_raises TypeError do
40
- @date == Date.today
41
- end
42
- end
43
-
44
- def test_add
45
- assert_equal 21, (@date + 1).day
46
-
47
- date = HijriDate::Date.new(1432, 12, 29) + 1
48
- assert_equal HijriDate::Date.new(1433, 1, 1), date
49
- end
50
-
51
- def test_subtract
52
- assert_equal 19, (@date - 1).day
53
-
54
- date = HijriDate::Date.new(1433, 1, 1) - 1
55
- assert_equal HijriDate::Date.new(1432, 12, 29), date
56
- end
57
-
58
- def test_conversion_from_jd
59
- assert_equal @date, HijriDate.jd(2455646)
60
- end
61
-
62
- def test_hijri_gregorian_conversion
63
- date = Date.jd(@date.jd)
64
- assert_equal 2011, date.year
65
- assert_equal 3, date.month
66
- assert_equal 25, date.day
67
-
68
- date = HijriDate.jd(Date.new(2011, 3, 25).jd)
69
- assert_equal 1432, date.year
70
- assert_equal 4, date.month
71
- assert_equal 20, date.day
72
- end
73
-
74
- def test_day_of_week
75
- assert_equal 5, @date.wday # Friday
76
- end
77
- end