hebrew_date 1.0.12 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/hebrew_date.gemspec +2 -2
- data/lib/hebrew_date.rb +28 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd6b7e10cb6a8302d5684530f17d395aa62195c4
|
4
|
+
data.tar.gz: 927c92e5d3f20df9ab055a52780a7f5d038c1c29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67b477cbe1da00c1a13ae4369d5a6b8ebe3ccce307e7e91b6b1a157050f0226a448771d26d6600c9526e5736addb4b4539bd6f12c0f56fc0f28c7d3d1e46d936
|
7
|
+
data.tar.gz: dd3a9e11529357ef0fea68e59b702c48cb57c8ce81ad6703be6628156f9acb99e07076d48e2ea28e1a92ee4db0f87889411ec6133240a37c949670a3417686ce
|
data/hebrew_date.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'hebrew_date'
|
3
3
|
s.require_paths = %w(. lib)
|
4
|
-
s.version = '1.0.
|
5
|
-
s.date = '2014-02-
|
4
|
+
s.version = '1.0.13'
|
5
|
+
s.date = '2014-02-15'
|
6
6
|
s.summary = 'Hebrew/Jewish dates, times, and holidays.'
|
7
7
|
s.description = <<-EOF
|
8
8
|
hebrew_date is a library designed to provide information about the Jewish
|
data/lib/hebrew_date.rb
CHANGED
@@ -63,6 +63,11 @@ class HebrewDate < Delegator
|
|
63
63
|
|
64
64
|
def initialize(year_or_date_object=nil, month=nil, date=nil)
|
65
65
|
@abs_date = 0
|
66
|
+
skip_hebrew_date = false
|
67
|
+
if year_or_date_object === true
|
68
|
+
skip_hebrew_date = true
|
69
|
+
year_or_date_object = nil
|
70
|
+
end
|
66
71
|
|
67
72
|
if month && date
|
68
73
|
@year = year_or_date_object
|
@@ -77,7 +82,7 @@ class HebrewDate < Delegator
|
|
77
82
|
@israeli = self.class.israeli
|
78
83
|
@ashkenaz = self.class.ashkenaz
|
79
84
|
@debug = self.class.debug
|
80
|
-
set_date(@year, @month, @date)
|
85
|
+
set_date(@year, @month, @date) unless skip_hebrew_date
|
81
86
|
super(Date.new)
|
82
87
|
end
|
83
88
|
|
@@ -159,8 +164,11 @@ class HebrewDate < Delegator
|
|
159
164
|
# @param month [Integer] the Hebrew month (1-13)
|
160
165
|
# @param date [Integer] the day of the Hebrew month (1-30)
|
161
166
|
def self.new_from_hebrew(year, month, date)
|
162
|
-
d = self.new
|
163
|
-
|
167
|
+
d = self.new(true)
|
168
|
+
@year = 1
|
169
|
+
@month = 1
|
170
|
+
@date = 1
|
171
|
+
d.set_hebrew_date(year, month, date, true)
|
164
172
|
d
|
165
173
|
end
|
166
174
|
|
@@ -193,8 +201,14 @@ class HebrewDate < Delegator
|
|
193
201
|
# @param year [Integer] the Hebrew year (e.g. 2008)
|
194
202
|
# @param month [Integer] the Hebrew month (1-13)
|
195
203
|
# @param date [Integer] the Hebrew day of month (1-30)
|
204
|
+
# @param auto_set [Boolean] Used internally.
|
196
205
|
# @return [void]
|
197
|
-
def set_hebrew_date(year, month, date)
|
206
|
+
def set_hebrew_date(year, month, date, auto_set=false)
|
207
|
+
if auto_set
|
208
|
+
@hebrew_year = year
|
209
|
+
@hebrew_month = month
|
210
|
+
@hebrew_date = date
|
211
|
+
end
|
198
212
|
return "Illegal value for Hebrew year: #{year}" if year < 0
|
199
213
|
if month < 0 || month > last_month_of_hebrew_year
|
200
214
|
return "Illegal value for Hebrew month: #{month}"
|
@@ -500,7 +514,7 @@ class HebrewDate < Delegator
|
|
500
514
|
# @param year [Integer]
|
501
515
|
# @return [Integer]
|
502
516
|
def _hebrew_calendar_elapsed_days(year)
|
503
|
-
puts "hebrew_calendar_elapsed_days #{year}" if @debug
|
517
|
+
# puts "hebrew_calendar_elapsed_days #{year}" if @debug
|
504
518
|
months_elapsed =
|
505
519
|
(235 * ((year - 1) / 19.0).to_i) + # Months in complete cycles so far
|
506
520
|
(12 * ((year - 1).remainder(19))) + # Regular months in this cycle
|
@@ -529,7 +543,7 @@ class HebrewDate < Delegator
|
|
529
543
|
if [0, 3, 5].include?(alternative_day.remainder(7))
|
530
544
|
alternative_day += 1
|
531
545
|
end
|
532
|
-
puts "hebrew_calendar_elapsed_days calculated #{alternative_day}" if @debug
|
546
|
+
# puts "hebrew_calendar_elapsed_days calculated #{alternative_day}" if @debug
|
533
547
|
alternative_day
|
534
548
|
end
|
535
549
|
|
@@ -552,8 +566,14 @@ class HebrewDate < Delegator
|
|
552
566
|
# @return [void]
|
553
567
|
def _abs_date_to_hebrew_date!
|
554
568
|
puts "abs_date_to_hebrew_date #{@abs_date}" if @debug
|
555
|
-
#
|
556
|
-
|
569
|
+
# Speed this up - most dates will be current, so let's use a value
|
570
|
+
# we know about.
|
571
|
+
if @abs_date >= 735279
|
572
|
+
@hebrew_year = 5770
|
573
|
+
else
|
574
|
+
# Approximation from below.
|
575
|
+
@hebrew_year = ((@abs_date + HEBREW_EPOCH) / 366.0).ceil
|
576
|
+
end
|
557
577
|
# Search forward for year from the approximation.
|
558
578
|
while @abs_date >= _hebrew_date_to_abs_date(@hebrew_year + 1, 7, 1) do
|
559
579
|
@hebrew_year += 1
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hebrew_date
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Orner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yard
|