zmanim 0.2.2 → 0.5.0

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: ca99f24408a8ee9ef58732e6d92aa20150ec680b
4
- data.tar.gz: eb8a70763999f4f75e72baa42f31fca8e702e1a1
2
+ SHA256:
3
+ metadata.gz: 106a751ffa4c28d37a4d69afc2d8aa91d8f07b668dc126f6008fec90c3a0b308
4
+ data.tar.gz: 8886864f89feb9382a62644de99201c4b0958ff2d8652728fad14ed1c6420df9
5
5
  SHA512:
6
- metadata.gz: '038a38a4022840534376573885d933b14d36693b995b0676cd2489ca9ce413ab7fced22635ba82a6cffda49e551d5a350963261f4536c5e916e8321a30f064f9'
7
- data.tar.gz: db91a82beb8aab922ef8c055545397b04e6c07bb53e70430939843206cb7baef1c318c4f7ec71dd448ceb2ea6d430137f8ed5974cae68604b0312753118dab61
6
+ metadata.gz: 971b9186fae5a3eccba8730038b9df6f2e5566d57fac6626dbbcba60ae87ec472eb73a2d72536f9dfbeee473cdd857c68f3c296a25dfad8feb65874f790a04ad
7
+ data.tar.gz: c73d548258fc576a7afaff89025a9c0b7105551e679284d0a291f03bbc91945b5f701bac5236eb6c882fba857ef185944fa879f813d069d11666c654c5f9142f
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/CHANGELOG.md CHANGED
@@ -4,6 +4,57 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.5.0] - 2022-03-24
8
+ ### Added
9
+ - `JewishCalendar#taanis_bechorim?` detects Taanis Bechorim for a given date
10
+ - `JewishCalendar#pesach` returns the date for start of Pesach for any year, or the next upcoming event
11
+ - `JewishCalendar#pesach_sheni` returns the date for Pesach Sheni for any year, or the next upcoming event
12
+ - `JewishCalendar#lag_baomer` returns the date for Lag Baomer for any year, or the next upcoming event
13
+ - `JewishCalendar#shavuos` returns the date for start of Shavuos for any year, or the next upcoming event
14
+ - `JewishCalendar#seventeen_of_tammuz` returns the date for Seventeen of Tammuz for any year, or the next upcoming event
15
+ - `JewishCalendar#tisha_beav` returns the date for Tisha Beav for any year, or the next upcoming event
16
+ - `JewishCalendar#tu_beav` returns the date for Tu Beav for any year, or the next upcoming event
17
+ - `JewishCalendar#rosh_hashana` returns the date for start of Rosh Hashana for any year, or the next upcoming event
18
+ - `JewishCalendar#tzom_gedalyah` returns the date for Tzom Gedalyah for any year, or the next upcoming event
19
+ - `JewishCalendar#yom_kippur` returns the date for Yom Kippur for any year, or the next upcoming event
20
+ - `JewishCalendar#succos` returns the date for start of Succos for any year, or the next upcoming event
21
+ - `JewishCalendar#chanukah` returns the date for start of Chanukah for any year, or the next upcoming event
22
+ - `JewishCalendar#tenth_of_teves` returns the date for Tenth of Teves for any year, or the next upcoming event
23
+ - `JewishCalendar#tu_beshvat` returns the date for Tu Beshvat for any year, or the next upcoming event
24
+ - `JewishCalendar#purim` returns the date for Purim for any year, or the next upcoming event
25
+ - `JewishCalendar#rosh_chodesh` returns the date for Rosh Chodesh for any month, or the next upcoming event
26
+ - `JewishCalendar#shabbos_mevorchim` returns the date for Shabbos Mevorchim for any month, or the next upcoming event
27
+ - `JewishCalendar#vesein_tal_umatar_start` returns the date for start of reciting Vesein Tal Umatar for any year, or the next upcoming event
28
+ - `JewishCalendar#vesein_tal_umatar_starts?` detects if reciting of Vesein Tal Umatar started today
29
+ ### Changed
30
+ - Upgraded dependency versions to address known security vulnerabilities:
31
+ - `rake` to 13.0.6
32
+ - `bundler` to 2.3.10
33
+ ### Fixed
34
+ - `JewishCalendar#vesein_tal_umatar?` and `JewishCalendar#vesein_tal_umatar_starts_tonight?` now auto-adjust for any calendar year, previously only valid for 20th/21st century
35
+
36
+ ## [0.4.0] - 2020-10-13
37
+ ### Added
38
+ - `JewishCalendar#end_of_week` returns Shabbos for this week
39
+ - Parshas Hashavua modifier to return blank Limud if the standard Parsha is not read this Shabbos
40
+ - Daf Hashavua calculator
41
+ ### Changed
42
+ - Refactor kviah calculation logic to JewishDate
43
+ - Remove formatter dependency for Parsha calculator
44
+ ### Fixed
45
+ - Added Lag B'Omer as significant day / yom tov
46
+ - Fixed Lag B'Omer spelling for english formatted omer
47
+
48
+ ## [0.3.0] - 2018-09-17
49
+ ### Added
50
+ - Elevations used in shaos zmanios calculations if use_elevation property is set
51
+ - Hanetz and Shkia methods will use the appropriate calculation based on use_elevation setting
52
+ - Support Alos and Tzais offset using temporal minutes
53
+ - Various Assur Bemelacha related methods for calendar dates using JewishCalendar,
54
+ as well as point-in-time using ZmanimCalendar.
55
+ - Methods to determine Shabbos Mevorchim, first night of Vesein Tal Umatar,
56
+ and delayed candle lighting
57
+
7
58
  ## [0.2.2] - 2018-08-31
8
59
  ### Fixed
9
60
  - Typo in formatted Masechtos
data/Gemfile.lock ADDED
@@ -0,0 +1,41 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ zmanim (0.5.0)
5
+ tzinfo
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ byebug (9.1.0)
11
+ concurrent-ruby (1.1.10)
12
+ diff-lcs (1.5.0)
13
+ rake (13.0.6)
14
+ rspec (3.11.0)
15
+ rspec-core (~> 3.11.0)
16
+ rspec-expectations (~> 3.11.0)
17
+ rspec-mocks (~> 3.11.0)
18
+ rspec-core (3.11.0)
19
+ rspec-support (~> 3.11.0)
20
+ rspec-expectations (3.11.0)
21
+ diff-lcs (>= 1.2.0, < 2.0)
22
+ rspec-support (~> 3.11.0)
23
+ rspec-mocks (3.11.0)
24
+ diff-lcs (>= 1.2.0, < 2.0)
25
+ rspec-support (~> 3.11.0)
26
+ rspec-support (3.11.0)
27
+ tzinfo (2.0.4)
28
+ concurrent-ruby (~> 1.0)
29
+
30
+ PLATFORMS
31
+ ruby
32
+
33
+ DEPENDENCIES
34
+ bundler (~> 2.3)
35
+ byebug (~> 9.1)
36
+ rake (~> 13.0)
37
+ rspec (~> 3.7)
38
+ zmanim!
39
+
40
+ BUNDLED WITH
41
+ 2.3.10
@@ -46,7 +46,7 @@ module Zmanim::HebrewCalendar
46
46
  transliterated: Zmanim::HebrewCalendar::JewishCalendar::SIGNIFICANT_DAYS.each_with_object({}){|d, h|
47
47
  h[d] = titleize(d)
48
48
  }.merge(tzom_gedalyah: 'Fast of Gedalyah', tenth_of_teves: 'Tenth of Teves', tu_beshvat: "Tu B'Shvat",
49
- taanis_esther: 'Fast of Esther', seventeen_of_tammuz: 'Seventeenth of Tammuz',
49
+ taanis_esther: 'Fast of Esther', lag_baomer: "Lag B'Omer", seventeen_of_tammuz: 'Seventeenth of Tammuz',
50
50
  tisha_beav: "Tisha B'Av", tu_beav: "Tu B'Av", yom_hashoah: 'Yom HaShoah', yom_haatzmaut: "Yom Ha'atzmaut"),
51
51
  hebrew: {
52
52
  erev_rosh_hashana: 'ערב ראש השנה',
@@ -72,6 +72,7 @@ module Zmanim::HebrewCalendar
72
72
  pesach: 'פסח',
73
73
  chol_hamoed_pesach: 'חול המועד פסח',
74
74
  pesach_sheni: 'פסח שני',
75
+ lag_baomer: 'ל״ג בעומר',
75
76
  erev_shavuos: 'ערב שבועות',
76
77
  shavuos: 'שבועות',
77
78
  seventeen_of_tammuz: 'שבעה עשר בתמוז',
@@ -179,18 +180,15 @@ module Zmanim::HebrewCalendar
179
180
  if hebrew_format
180
181
  format_hebrew_number(number) + ' ' + hebrew_omer_prefix + 'עומר'
181
182
  else
182
- number == 33 ? 'Lag BaOmer' : "Omer #{number}"
183
+ number == 33 ? "Lag B'Omer" : "Omer #{number}"
183
184
  end
184
185
  end
185
186
 
186
187
  def format_kviah(year)
187
188
  date = year.is_a?(Numeric) ? Zmanim::HebrewCalendar::JewishDate.new(year, 7, 1) : year
188
- kviah = date.cheshvan_kislev_kviah
189
- rosh_hashana_day = date.day_of_week
190
- kviah_glyph = {chaseirim: 'ח', kesidran: 'כ', shelaimim: 'ש'}[kviah]
191
- date.jewish_month = 1
192
- pesach_day = date.day_of_week
193
- "#{format_hebrew_number(rosh_hashana_day)}#{kviah_glyph}#{format_hebrew_number(pesach_day)}".delete(GERESH)
189
+ kviah_values = date.kviah
190
+ kviah_glyph = {chaseirim: 'ח', kesidran: 'כ', shelaimim: 'ש'}[kviah_values[:kviah]]
191
+ "#{format_hebrew_number(kviah_values[:rosh_hashana])}#{kviah_glyph}#{format_hebrew_number(kviah_values[:pesach])}".delete(GERESH)
194
192
  end
195
193
 
196
194
  def format_tefilah_additions(calendar, customs={walled_city: false, nusach: :ashkenaz})
@@ -8,7 +8,7 @@ module Zmanim::HebrewCalendar
8
8
  erev_succos succos chol_hamoed_succos hoshana_rabbah shemini_atzeres simchas_torah
9
9
  chanukah tenth_of_teves tu_beshvat
10
10
  taanis_esther purim shushan_purim purim_katan shushan_purim_katan
11
- erev_pesach pesach chol_hamoed_pesach pesach_sheni erev_shavuos shavuos
11
+ erev_pesach pesach chol_hamoed_pesach pesach_sheni lag_baomer erev_shavuos shavuos
12
12
  seventeen_of_tammuz tisha_beav tu_beav
13
13
  yom_hashoah yom_hazikaron yom_haatzmaut yom_yerushalayim)
14
14
 
@@ -30,6 +30,22 @@ module Zmanim::HebrewCalendar
30
30
  send("#{jewish_month_name}_significant_day")
31
31
  end
32
32
 
33
+ def assur_bemelacha?
34
+ day_of_week == 7 || yom_tov_assur_bemelacha?
35
+ end
36
+
37
+ def tomorrow_assur_bemelacha?
38
+ day_of_week == 6 || erev_yom_tov? || erev_yom_tov_sheni?
39
+ end
40
+
41
+ def candle_lighting?
42
+ tomorrow_assur_bemelacha?
43
+ end
44
+
45
+ def delayed_candle_lighting?
46
+ day_of_week != 6 && candle_lighting? && assur_bemelacha?
47
+ end
48
+
33
49
  def yom_tov?
34
50
  sd = significant_day
35
51
  sd && !sd.to_s.start_with?('erev_') && (!taanis? || sd == :yom_kippur)
@@ -39,21 +55,40 @@ module Zmanim::HebrewCalendar
39
55
  %i(pesach shavuos rosh_hashana yom_kippur succos shemini_atzeres simchas_torah).include?(significant_day)
40
56
  end
41
57
 
42
- def chol_hamoed?
43
- sd = significant_day
44
- sd && (sd.to_s.start_with?('chol_hamoed_') || sd == :hoshana_rabbah)
45
- end
46
-
47
58
  def erev_yom_tov?
48
59
  return false unless sd = significant_day
49
60
  sd.to_s.start_with?('erev_') || sd == :hoshana_rabbah ||
50
61
  (sd == :chol_hamoed_pesach && jewish_day == 20)
51
62
  end
52
63
 
64
+ def yom_tov_sheni?
65
+ (jewish_month == 7 && jewish_day == 2) ||
66
+ (!in_israel && ((jewish_month == 7 && [16, 23].include?(jewish_day)) ||
67
+ (jewish_month == 1 && [16, 22].include?(jewish_day)) ||
68
+ (jewish_month == 3 && jewish_day == 7)))
69
+ end
70
+
71
+ def erev_yom_tov_sheni?
72
+ (jewish_month == 7 && jewish_day == 1) ||
73
+ (!in_israel && ((jewish_month == 7 && [15, 22].include?(jewish_day)) ||
74
+ (jewish_month == 1 && [15, 21].include?(jewish_day)) ||
75
+ (jewish_month == 3 && jewish_day == 6)))
76
+ end
77
+
78
+ def chol_hamoed?
79
+ sd = significant_day
80
+ sd && (sd.to_s.start_with?('chol_hamoed_') || sd == :hoshana_rabbah)
81
+ end
82
+
53
83
  def taanis?
54
84
  %i(seventeen_of_tammuz tisha_beav tzom_gedalyah yom_kippur tenth_of_teves taanis_esther).include?(significant_day)
55
85
  end
56
86
 
87
+ def taanis_bechorim?
88
+ (day_of_week != 7 && jewish_day == 14 && jewish_month == 1) || # normally 14th of nissan,
89
+ (day_of_week == 5 && jewish_day == 12 && jewish_month == 1) # when that falls on shabbos, moved to previous Thursday
90
+ end
91
+
57
92
  def rosh_chodesh?
58
93
  jewish_day == 30 || (jewish_day == 1 && jewish_month != 7)
59
94
  end
@@ -123,6 +158,10 @@ module Zmanim::HebrewCalendar
123
158
  molad_as_datetime + 15
124
159
  end
125
160
 
161
+ def end_of_week
162
+ self + (7 - day_of_week)
163
+ end
164
+
126
165
  def daf_yomi_bavli
127
166
  Zmanim::Limudim::Calculators::DafYomiBavli.new.limud(self)
128
167
  end
@@ -131,8 +170,14 @@ module Zmanim::HebrewCalendar
131
170
  Zmanim::Limudim::Calculators::DafYomiYerushalmi.new.limud(self)
132
171
  end
133
172
 
134
- def parshas_hashavua
135
- Zmanim::Limudim::Calculators::Parsha.new(in_israel: in_israel).limud(self)
173
+ def daf_hashavua_bavli
174
+ Zmanim::Limudim::Calculators::DafHashavuaBavli.new.limud(self)
175
+ end
176
+
177
+ def parshas_hashavua(current_week_only: false)
178
+ limud = Zmanim::Limudim::Calculators::Parsha.new(in_israel: in_israel).limud(self)
179
+ limud.clear! if current_week_only && limud.interval.end_date > end_of_week
180
+ limud
136
181
  end
137
182
 
138
183
  def tehillim_portion
@@ -191,6 +236,144 @@ module Zmanim::HebrewCalendar
191
236
  end
192
237
  end
193
238
 
239
+ def pesach(upcoming: nil, year: nil)
240
+ find_annual_event(upcoming, year) do |y|
241
+ JewishCalendar.new(y, 1, 15)
242
+ end
243
+ end
244
+
245
+ def pesach_sheni(upcoming: nil, year: nil)
246
+ find_annual_event(upcoming, year) do |y|
247
+ JewishCalendar.new(y, 2, 14)
248
+ end
249
+ end
250
+
251
+ def lag_baomer(upcoming: nil, year: nil)
252
+ find_annual_event(upcoming, year) do |y|
253
+ JewishCalendar.new(y, 2, 18)
254
+ end
255
+ end
256
+
257
+ def shavuos(upcoming: nil, year: nil)
258
+ find_annual_event(upcoming, year) do |y|
259
+ JewishCalendar.new(y, 3, 6)
260
+ end
261
+ end
262
+
263
+ def seventeen_of_tammuz(upcoming: nil, year: nil)
264
+ find_annual_event(upcoming, year) do |y|
265
+ date = JewishCalendar.new(y, 4, 17)
266
+ date.forward! if date.day_of_week == 7
267
+ date
268
+ end
269
+ end
270
+
271
+ def tisha_beav(upcoming: nil, year: nil)
272
+ find_annual_event(upcoming, year) do |y|
273
+ date = JewishCalendar.new(y, 5, 9)
274
+ date.forward! if date.day_of_week == 7
275
+ date
276
+ end
277
+ end
278
+
279
+ def tu_beav(upcoming: nil, year: nil)
280
+ find_annual_event(upcoming, year) do |y|
281
+ JewishCalendar.new(y, 5, 15)
282
+ end
283
+ end
284
+
285
+ def rosh_hashana(upcoming: nil, year: nil)
286
+ find_annual_event(upcoming, year) do |y|
287
+ JewishCalendar.new(y, 7, 1)
288
+ end
289
+ end
290
+
291
+ def tzom_gedalyah(upcoming: nil, year: nil)
292
+ find_annual_event(upcoming, year) do |y|
293
+ date = JewishCalendar.new(y, 7, 3)
294
+ date.forward! if date.day_of_week == 7
295
+ date
296
+ end
297
+ end
298
+
299
+ def yom_kippur(upcoming: nil, year: nil)
300
+ find_annual_event(upcoming, year) do |y|
301
+ JewishCalendar.new(y, 7, 10)
302
+ end
303
+ end
304
+
305
+ def succos(upcoming: nil, year: nil)
306
+ find_annual_event(upcoming, year) do |y|
307
+ JewishCalendar.new(y, 7, 15)
308
+ end
309
+ end
310
+
311
+ def chanukah(upcoming: nil, year: nil)
312
+ find_annual_event(upcoming, year) do |y|
313
+ JewishCalendar.new(y, 9, 25)
314
+ end
315
+ end
316
+
317
+ def tenth_of_teves(upcoming: nil, year: nil)
318
+ find_annual_event(upcoming, year) do |y|
319
+ JewishCalendar.new(y, 10, 10)
320
+ end
321
+ end
322
+
323
+ def tu_beshvat(upcoming: nil, year: nil)
324
+ find_annual_event(upcoming, year) do |y|
325
+ JewishCalendar.new(y, 11, 15)
326
+ end
327
+ end
328
+
329
+ def purim(upcoming: nil, year: nil)
330
+ find_annual_event(upcoming, year) do |y|
331
+ JewishCalendar.new(y, months_in_jewish_year(y), 14)
332
+ end
333
+ end
334
+
335
+ def rosh_chodesh(upcoming: nil, month: nil, year: nil)
336
+ find_monthly_event(upcoming, month, year) do |m, y|
337
+ m = 8 if m == 7
338
+ prev = m - 1
339
+ prev = months_in_jewish_year(y) if prev < 1
340
+ if days_in_jewish_month(prev,y) == 30
341
+ JewishCalendar.new(y, prev, 30)
342
+ else
343
+ JewishCalendar.new(y, m, 1)
344
+ end
345
+ end
346
+ end
347
+
348
+ def shabbos_mevorchim(upcoming: nil, month: nil, year: nil)
349
+ find_monthly_event(upcoming, month, year) do |m, y|
350
+ m = 8 if m == 7
351
+ prev = m - 1
352
+ prev = months_in_jewish_year(y) if prev < 1
353
+ mevorchim_start = JewishCalendar.new(y,prev,23)
354
+ mevorchim_start + (7 - mevorchim_start.day_of_week)
355
+ end
356
+ end
357
+
358
+ def vesein_tal_umatar_start(upcoming: nil, year: nil)
359
+ find_annual_event(upcoming, year) do |y|
360
+ start_date =
361
+ if in_israel
362
+ JewishCalendar.new(y, 8, 7)
363
+ else
364
+ JewishCalendar.new(y, 7, 1) + (47 - tekufas_tishrei_elapsed_days(1, year: y))
365
+ end
366
+ start_date.forward! if start_date.day_of_week == 7
367
+ start_date
368
+ end
369
+ end
370
+
371
+ def shabbos_mevorchim?
372
+ day_of_week == 7 &&
373
+ jewish_month != 6 &&
374
+ (23..29).include?(jewish_day)
375
+ end
376
+
194
377
  def mashiv_haruach_starts?
195
378
  jewish_month == 7 && jewish_day == 22
196
379
  end
@@ -209,18 +392,33 @@ module Zmanim::HebrewCalendar
209
392
  !mashiv_haruach? || mashiv_haruach_starts? || mashiv_haruach_ends?
210
393
  end
211
394
 
212
- # This presumes the evenings of December 4/5 are always the initial start date outside of Israel
213
- # Because the jewish date does not auto-increment in the evening, we use December 5/6 as the start date
395
+ # Because the jewish date does not auto-increment in the evening,
396
+ # we use the daytime transition (e.g. December 5/6 for 20th/21st century) as the start date
214
397
  # and rely on the user to increment the jewish date after nightfall.
215
- # Note that according to many, the date for Vesein Tal Umatar is tied to the Julian calendar and has historically
216
- # moved over time as the deviance from the Gregorian calendar increases. The date of December 4/5 is to be used
217
- # for the 20th and 21st century.
218
398
  def vesein_tal_umatar?
219
399
  return false if day_of_week == 7 || yom_tov_assur_bemelacha?
220
- start_date = JewishDate.new(jewish_year, 8, 7)
221
- start_date.set_gregorian_date(start_date.gregorian_year, 12, gregorian_leap_year?(start_date.gregorian_year+1) ? 6 : 5) unless in_israel
222
- end_date = JewishDate.new(jewish_year, 1, 15)
223
- self.between?(start_date, end_date)
400
+ return true if jewish_month == 1 && jewish_day < 15
401
+ return false if jewish_month < 8
402
+ if in_israel
403
+ jewish_month > 8 || (jewish_month == 8 && jewish_day >= 7)
404
+ else
405
+ tekufas_tishrei_elapsed_days >= 47
406
+ end
407
+ end
408
+
409
+ def vesein_tal_umatar_starts?
410
+ if in_israel
411
+ # 7 Cheshvan, or 8 Cheshvan if 7 is Shabbos
412
+ return false unless jewish_month == 8
413
+ (day_of_week != 7 && jewish_day == 7) || (day_of_week == 1 && jewish_day == 8)
414
+ else
415
+ elapsed_days = tekufas_tishrei_elapsed_days
416
+ (day_of_week != 7 && elapsed_days == 47) || (day_of_week == 1 && elapsed_days == 48)
417
+ end
418
+ end
419
+
420
+ def vesein_tal_umatar_starts_tonight?
421
+ succ.vesein_tal_umatar_starts?
224
422
  end
225
423
 
226
424
  def vesein_beracha?
@@ -261,6 +459,8 @@ module Zmanim::HebrewCalendar
261
459
  def iyar_significant_day
262
460
  if jewish_day == 14
263
461
  :pesach_sheni
462
+ elsif jewish_day == 18
463
+ :lag_baomer
264
464
  elsif use_modern_holidays
265
465
  # Note that this logic follows the current rules, which were last revised in 5764.
266
466
  # The calculations for years prior may not reflect the actual dates observed at that time.
@@ -390,5 +590,54 @@ module Zmanim::HebrewCalendar
390
590
  :shushan_purim
391
591
  end
392
592
  end
593
+
594
+ def tekufas_tishrei_elapsed_days(day_number=day_number_of_jewish_year, year: jewish_year)
595
+ days = jewish_calendar_elapsed_days(year) + (day_number-1) + 0.5
596
+ solar = (year - 1) * 365.25
597
+ (days - solar).floor.to_i
598
+ end
599
+
600
+ # Finds the date for an annual event whose rules are provided to the method as a block
601
+ # Supports boolean `upcoming` or a given integer jewish `year`.
602
+ # If both are nil, defaults to current jewish year.
603
+ # `upcoming` finds the current or next occurrence of this event
604
+ def find_annual_event(upcoming, year)
605
+ if upcoming && year
606
+ raise "'upcoming' and 'year' options cannot be used together"
607
+ end
608
+
609
+ upcoming = false if upcoming.nil? # 'upcoming' only when explicitly passed
610
+ year = jewish_year if year.nil?
611
+
612
+ current = yield(year)
613
+ upcoming && current < self ? yield(year+1) : current
614
+ end
615
+
616
+ # Finds the date for a monthly event whose rules are provided to the method as a block
617
+ # Supports boolean `upcoming` or a given integer jewish `year` and `month`.
618
+ # If all are nil, defaults to current jewish month and year.
619
+ # `upcoming` finds the current or next occurrence of this event
620
+ # If only month is provided, defaults to current jewish year.
621
+ # If only year is provided, defaults to current jewish month.
622
+ def find_monthly_event(upcoming, month, year)
623
+ if upcoming && (year || month)
624
+ raise "'upcoming' option cannot be used together with 'year' or 'month'"
625
+ end
626
+
627
+ upcoming = false if upcoming.nil? # 'upcoming' only when explicitly passed
628
+ year ||= jewish_year
629
+ month ||= jewish_month
630
+
631
+ current = yield(month, year)
632
+ if upcoming && current < self
633
+ month += 1
634
+ month = 1 if month > months_in_jewish_year(year)
635
+ year += 1 if month == 7
636
+ yield(month, year)
637
+ else
638
+ current
639
+ end
640
+ end
641
+
393
642
  end
394
643
  end
@@ -157,6 +157,40 @@ module Zmanim::HebrewCalendar
157
157
  end
158
158
  end
159
159
 
160
+ def succ
161
+ self + 1
162
+ end
163
+
164
+ def step(limit, step=1, &block)
165
+ if step < 0
166
+ downto(limit, -step, &block)
167
+ else
168
+ upto(limit, step, &block)
169
+ end
170
+ end
171
+
172
+ def downto(limit, step=1)
173
+ raise ArgumentError, 'step argument must be greater than 0' if step <= 0
174
+ return to_enum(__method__, limit, step) unless block_given?
175
+ c = self
176
+ while c >= limit
177
+ yield c
178
+ c -= step
179
+ end
180
+ self
181
+ end
182
+
183
+ def upto(limit, step=1)
184
+ raise ArgumentError, 'step argument must be greater than 0' if step <= 0
185
+ return to_enum(__method__, limit, step) unless block_given?
186
+ c = self
187
+ while c <= limit
188
+ yield c
189
+ c += step
190
+ end
191
+ self
192
+ end
193
+
160
194
  def gregorian_year=(year)
161
195
  set_gregorian_date(year, gregorian_month, gregorian_day)
162
196
  end
@@ -275,6 +309,17 @@ module Zmanim::HebrewCalendar
275
309
  CHESHVAN_KISLEV_KEVIAH[(days_in_jewish_year(year) % 10) - 3]
276
310
  end
277
311
 
312
+ def kviah(year=jewish_year)
313
+ date = year.is_a?(Numeric) ? Zmanim::HebrewCalendar::JewishDate.new(year, 7, 1) : year
314
+ kviah = date.cheshvan_kislev_kviah
315
+ rosh_hashana_day = date.day_of_week
316
+ date.jewish_month = 1
317
+ pesach_day = date.day_of_week
318
+ {rosh_hashana: rosh_hashana_day,
319
+ kviah: kviah,
320
+ pesach: pesach_day}
321
+ end
322
+
278
323
  # Returns a new JewishDate as the molad for given month
279
324
  def molad(month=jewish_month, year=jewish_year)
280
325
  self.class.from_molad(chalakim_since_molad_tohu(year, month))
@@ -0,0 +1,23 @@
1
+ require 'zmanim/limudim/calculators/daf_yomi_bavli'
2
+
3
+ module Zmanim::Limudim::Calculators
4
+ class DafHashavuaBavli < DafYomiBavli
5
+ def initial_cycle_date
6
+ jewish_date(Date.parse('2005-03-02'))
7
+ end
8
+
9
+ def cycle_end_calculation
10
+ ->(start_date, iteration){ start_date + ((2711*7) - start_date.day_of_week) } # 2711 pages except first week * 7 days
11
+ end
12
+
13
+ def interval_end_calculation
14
+ ->(cycle, start_date){ start_date + (7 - start_date.day_of_week) }
15
+ end
16
+
17
+ def cycle_units_calculation
18
+ ->(cycle){ default_units }
19
+ end
20
+ end
21
+ end
22
+
23
+
@@ -40,7 +40,7 @@ module Zmanim::Limudim::Calculators
40
40
  meilah: [4,9,8,6,5,6], tamid: [4,5,9,3,6,4,3], midos: [9,6,8,7,4], kinnim: [4,5,6],
41
41
  keilim: [9,8,8,4,11,4,6,11,8,8,9,8,8,8,6,8,17,9,10,7,3,10,5,17,9,9,12,10,8,4], ohalos: [8,7,7,3,7,7,6,6,16,7,9,8,6,7,10,5,5,10],
42
42
  negaim: [6,5,8,11,5,8,5,10,3,10,12,7,12,13], parah: [4,5,11,4,9,5,12,11,9,6,9,11], taharos: [9,8,8,13,9,10,9,9,9,8],
43
- mikvaos: [8,10,4,5,6,11,7,5,7,8], niddah: [7,7,7,7,9,14,5,4,11,8], machshirim: [6,11,8,10,11,8], zavim: [6,4,3,7,12],
43
+ mikvaos: [8,10,4,5,6,11,7,5,7,8], niddah: [7,7,7,7,9,14,5,4,11,8], machshirin: [6,11,8,10,11,8], zavim: [6,4,3,7,12],
44
44
  tevul_yom: [5,8,6,7], yadayim: [5,4,5,8], uktzin: [6,10,12]
45
45
  }.map{|k, v| [k, Hash[v.map.with_index{|m, p| [p+1, m]}]]}]
46
46
  end
@@ -47,40 +47,40 @@ module Zmanim::Limudim::Calculators
47
47
 
48
48
  def cycle_units_calculation
49
49
  ->(cycle) do
50
- kviah = Zmanim::HebrewCalendar::HebrewDateFormatter.new.format_kviah(cycle.start_date.jewish_year)
50
+ kviah_values = cycle.start_date.kviah.values
51
51
  modifications = in_israel ?
52
52
  {
53
- 'בחה' => [%i(matos masei), %i(nitzavim vayeilech)],
54
- 'בשז' => [],
55
- 'גכז' => [],
56
- 'החא' => [],
57
- 'השג' => [%i(nitzavim vayeilech)],
58
- 'זחג' => [%i(matos masei), %i(nitzavim vayeilech)],
59
- 'זשה' => [%i(matos masei), %i(nitzavim vayeilech)],
60
- 'בחג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
61
- 'בשה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
62
- 'גכה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
63
- 'הכז' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(matos masei)],
64
- 'השא' => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
65
- 'זחא' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
66
- 'זשג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
67
- }[kviah] :
53
+ [2,:chaseirim,5] => [%i(matos masei), %i(nitzavim vayeilech)],
54
+ [2,:shelaimim,7] => [],
55
+ [3,:kesidran,7] => [],
56
+ [5,:chaseirim,1] => [],
57
+ [5,:shelaimim,3] => [%i(nitzavim vayeilech)],
58
+ [7,:chaseirim,3] => [%i(matos masei), %i(nitzavim vayeilech)],
59
+ [7,:shelaimim,5] => [%i(matos masei), %i(nitzavim vayeilech)],
60
+ [2,:chaseirim,3] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
61
+ [2,:shelaimim,5] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
62
+ [3,:kesidran,5] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
63
+ [5,:kesidran,7] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(matos masei)],
64
+ [5,:shelaimim,1] => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
65
+ [7,:chaseirim,1] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
66
+ [7,:shelaimim,3] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
67
+ }[kviah_values] :
68
68
  {
69
- 'בחה' => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
70
- 'בשז' => [%i(matos masei)],
71
- 'גכז' => [%i(matos masei)],
72
- 'החא' => [],
73
- 'השג' => [%i(nitzavim vayeilech)],
74
- 'זחג' => [%i(matos masei), %i(nitzavim vayeilech)],
75
- 'זשה' => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
76
- 'בחג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
77
- 'בשה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
78
- 'גכה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
79
- 'הכז' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
80
- 'השא' => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
81
- 'זחא' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
82
- 'זשג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
83
- }[kviah]
69
+ [2,:chaseirim,5] => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
70
+ [2,:shelaimim,7] => [%i(matos masei)],
71
+ [3,:kesidran,7] => [%i(matos masei)],
72
+ [5,:chaseirim,1] => [],
73
+ [5,:shelaimim,3] => [%i(nitzavim vayeilech)],
74
+ [7,:chaseirim,3] => [%i(matos masei), %i(nitzavim vayeilech)],
75
+ [7,:shelaimim,5] => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
76
+ [2,:chaseirim,3] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
77
+ [2,:shelaimim,5] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
78
+ [3,:kesidran,5] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)],
79
+ [5,:kesidran,7] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
80
+ [5,:shelaimim,1] => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
81
+ [7,:chaseirim,1] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)],
82
+ [7,:shelaimim,3] => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)],
83
+ }[kviah_values]
84
84
  modifications.inject(default_units) do |transitioned_units, parsha_pair|
85
85
  index = transitioned_units.index(parsha_pair.first)
86
86
  transitioned_units[0...index] + [parsha_pair] + transitioned_units[(index + 2)..-1]
@@ -32,9 +32,5 @@ module Zmanim::Limudim
32
32
  new_end_date = cycle_end_calculation.(new_start_date, new_iteration)
33
33
  Cycle.new(new_start_date, new_end_date, new_iteration)
34
34
  end
35
-
36
- def first_interval(interval_end_calculation)
37
- Interval.first_for_cycle(self, interval_end_calculation)
38
- end
39
35
  end
40
36
  end
@@ -7,6 +7,10 @@ module Zmanim::Limudim
7
7
  @unit = unit
8
8
  end
9
9
 
10
+ def clear!
11
+ @unit = nil
12
+ end
13
+
10
14
  def cycle
11
15
  interval.cycle
12
16
  end
@@ -7,7 +7,7 @@ module Zmanim::Limudim
7
7
  cycle = find_cycle(jewish_date)
8
8
  return nil unless cycle && cycle.end_date >= date
9
9
  units = cycle_units_calculation.(cycle)
10
- interval = cycle.first_interval(interval_end_calculation)
10
+ interval = Interval.first_for_cycle(cycle, interval_end_calculation)
11
11
  while !jewish_date.between?(interval.start_date, interval.end_date) do
12
12
  interval = if skip_interval?(interval)
13
13
  interval.skip(interval_end_calculation)
@@ -124,7 +124,7 @@ module Zmanim::Limudim
124
124
  taharos: 'טהרות',
125
125
  mikvaos: 'מקואות',
126
126
  niddah: 'נדה',
127
- machshirim: 'מכשירין',
127
+ machshirin: 'מכשירין',
128
128
  zavim: 'זבים',
129
129
  tevul_yom: 'טבול יום',
130
130
  yadayim: 'ידים',
@@ -138,6 +138,7 @@ module Zmanim::Limudim
138
138
  end
139
139
 
140
140
  def format_parsha(limud)
141
+ return '' unless limud && limud.unit
141
142
  prefix = hebrew_format ? 'פרשת ' : 'Parshas '
142
143
  prefix + limud.unit.render do |parsha|
143
144
  hebrew_format ? PARSHIYOS[parsha] : titleize(parsha)
@@ -1,3 +1,3 @@
1
1
  module Zmanim
2
- VERSION = "0.2.2"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -1,8 +1,10 @@
1
1
  require_relative 'astronomical_calendar'
2
+ require_relative 'hebrew_calendar/jewish_calendar'
2
3
 
3
4
  module Zmanim
4
5
  class ZmanimCalendar < AstronomicalCalendar
5
6
  attr_accessor :candle_lighting_offset
7
+ attr_writer :use_elevation
6
8
 
7
9
  ZENITH_16_POINT_1 = GEOMETRIC_ZENITH + 16.1
8
10
  ZENITH_8_POINT_5 = GEOMETRIC_ZENITH + 8.5
@@ -10,11 +12,31 @@ module Zmanim
10
12
  def initialize(opts={})
11
13
  super
12
14
  @candle_lighting_offset = opts[:candle_lighting_offset] || 18
15
+ @use_elevation = false
13
16
  end
14
17
 
18
+ def use_elevation?
19
+ !!@use_elevation
20
+ end
21
+
22
+ def elevation_adjusted_sunrise
23
+ use_elevation? ? sunrise : sea_level_sunrise
24
+ end
25
+ alias_method :hanetz, :elevation_adjusted_sunrise
26
+
27
+ def elevation_adjusted_sunset
28
+ use_elevation? ? sunset : sea_level_sunset
29
+ end
30
+ alias_method :shkia, :elevation_adjusted_sunset
31
+
15
32
  def tzais(opts={degrees: 8.5})
16
- degrees, offset = extract_degrees_offset(opts)
17
- offset_by_minutes(sunset_offset_by_degrees(GEOMETRIC_ZENITH + degrees), offset)
33
+ degrees, offset, zmanis_offset = extract_degrees_offset(opts)
34
+ sunset_for_degrees = degrees == 0 ? elevation_adjusted_sunset : sunset_offset_by_degrees(GEOMETRIC_ZENITH + degrees)
35
+ if zmanis_offset != 0
36
+ offset_by_minutes_zmanis(sunset_for_degrees, zmanis_offset)
37
+ else
38
+ offset_by_minutes(sunset_for_degrees, offset)
39
+ end
18
40
  end
19
41
 
20
42
  def tzais_72
@@ -22,12 +44,17 @@ module Zmanim
22
44
  end
23
45
 
24
46
  def alos(opts={degrees: 16.1})
25
- degrees, offset = extract_degrees_offset(opts)
26
- offset_by_minutes(sunrise_offset_by_degrees(GEOMETRIC_ZENITH + degrees), offset)
47
+ degrees, offset, zmanis_offset = extract_degrees_offset(opts)
48
+ sunrise_for_degrees = degrees == 0 ? elevation_adjusted_sunrise : sunrise_offset_by_degrees(GEOMETRIC_ZENITH + degrees)
49
+ if zmanis_offset != 0
50
+ offset_by_minutes_zmanis(sunrise_for_degrees, -zmanis_offset)
51
+ else
52
+ offset_by_minutes(sunrise_for_degrees, -offset)
53
+ end
27
54
  end
28
55
 
29
56
  def alos_72
30
- alos(offset: -72)
57
+ alos(offset: 72)
31
58
  end
32
59
 
33
60
  alias_method :chatzos, :sun_transit
@@ -37,7 +64,7 @@ module Zmanim
37
64
  end
38
65
 
39
66
  def sof_zman_shma_gra
40
- sof_zman_shma(sea_level_sunrise, sea_level_sunset)
67
+ sof_zman_shma(elevation_adjusted_sunrise, elevation_adjusted_sunset)
41
68
  end
42
69
 
43
70
  def sof_zman_shma_mga
@@ -53,22 +80,22 @@ module Zmanim
53
80
  end
54
81
 
55
82
  def sof_zman_tfila_gra
56
- sof_zman_tfila(sea_level_sunrise, sea_level_sunset)
83
+ sof_zman_tfila(elevation_adjusted_sunrise, elevation_adjusted_sunset)
57
84
  end
58
85
 
59
86
  def sof_zman_tfila_mga
60
87
  sof_zman_tfila(alos_72, tzais_72)
61
88
  end
62
89
 
63
- def mincha_gedola(day_start=sea_level_sunrise, day_end=sea_level_sunset)
90
+ def mincha_gedola(day_start=elevation_adjusted_sunrise, day_end=elevation_adjusted_sunset)
64
91
  shaos_into_day(day_start, day_end, 6.5)
65
92
  end
66
93
 
67
- def mincha_ketana(day_start=sea_level_sunrise, day_end=sea_level_sunset)
94
+ def mincha_ketana(day_start=elevation_adjusted_sunrise, day_end=elevation_adjusted_sunset)
68
95
  shaos_into_day(day_start, day_end, 9.5)
69
96
  end
70
97
 
71
- def plag_hamincha(day_start=sea_level_sunrise, day_end=sea_level_sunset)
98
+ def plag_hamincha(day_start=elevation_adjusted_sunrise, day_end=elevation_adjusted_sunset)
72
99
  shaos_into_day(day_start, day_end, 10.75)
73
100
  end
74
101
 
@@ -77,7 +104,7 @@ module Zmanim
77
104
  end
78
105
 
79
106
  def shaah_zmanis_gra
80
- shaah_zmanis(sea_level_sunrise, sea_level_sunset)
107
+ shaah_zmanis(elevation_adjusted_sunrise, elevation_adjusted_sunset)
81
108
  end
82
109
 
83
110
  def shaah_zmanis_mga
@@ -86,7 +113,15 @@ module Zmanim
86
113
 
87
114
  def shaah_zmanis_by_degrees_and_offset(degrees, offset)
88
115
  opts = {degrees: degrees, offset: offset}
89
- shaah_zmanis(alos(opts.merge(offset: -offset)), tzais(opts))
116
+ shaah_zmanis(alos(opts), tzais(opts))
117
+ end
118
+
119
+ def assur_bemelacha?(current_time, tzais: tzais(), in_israel: false)
120
+ tzais_time = tzais.is_a?(Hash) ? self.tzais(tzais) : tzais
121
+ jewish_calendar = HebrewCalendar::JewishCalendar.new(current_time.to_date)
122
+ jewish_calendar.in_israel = in_israel
123
+ (current_time.to_datetime <= tzais_time && jewish_calendar.assur_bemelacha?) ||
124
+ (current_time.to_datetime >= elevation_adjusted_sunset && jewish_calendar.tomorrow_assur_bemelacha?)
90
125
  end
91
126
 
92
127
  private
@@ -97,12 +132,18 @@ module Zmanim
97
132
  end
98
133
 
99
134
  def extract_degrees_offset(opts)
100
- [opts[:degrees] || 0.0, opts[:offset] || 0]
135
+ [opts[:degrees] || 0.0, opts[:offset] || 0, opts[:zmanis_offset] || 0]
101
136
  end
102
137
 
103
138
  def offset_by_minutes(time, minutes)
104
139
  return unless time
105
140
  time + (minutes / (60 * 24).to_f)
106
141
  end
142
+
143
+ def offset_by_minutes_zmanis(time, minutes)
144
+ return unless time
145
+ shaah_zmanis_skew = shaah_zmanis_gra / HOUR_MILLIS
146
+ time + (minutes * shaah_zmanis_skew / (60 * 24).to_f)
147
+ end
107
148
  end
108
149
  end
data/zmanim.gemspec CHANGED
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
30
30
  spec.require_paths = ["lib"]
31
31
 
32
32
  spec.add_runtime_dependency "tzinfo"
33
- spec.add_development_dependency "bundler", "~> 1.15"
34
- spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency "bundler", "~> 2.3"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.7"
36
36
  spec.add_development_dependency "byebug", "~> 9.1"
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zmanim
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pinny Markowitz
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-31 00:00:00.000000000 Z
11
+ date: 2022-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzinfo
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.15'
33
+ version: '2.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.15'
40
+ version: '2.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '13.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -92,6 +92,7 @@ files:
92
92
  - ".rspec"
93
93
  - CHANGELOG.md
94
94
  - Gemfile
95
+ - Gemfile.lock
95
96
  - LICENSE
96
97
  - README.md
97
98
  - Rakefile
@@ -105,6 +106,7 @@ files:
105
106
  - lib/zmanim/limudim/anchor/day_of_month_anchor.rb
106
107
  - lib/zmanim/limudim/anchor/day_of_week_anchor.rb
107
108
  - lib/zmanim/limudim/anchor/day_of_year_anchor.rb
109
+ - lib/zmanim/limudim/calculators/daf_hashavua_bavli.rb
108
110
  - lib/zmanim/limudim/calculators/daf_yomi_bavli.rb
109
111
  - lib/zmanim/limudim/calculators/daf_yomi_yerushalmi.rb
110
112
  - lib/zmanim/limudim/calculators/mishna_yomis.rb
@@ -132,7 +134,7 @@ homepage: https://github.com/pinnymz/ruby-zmanim
132
134
  licenses: []
133
135
  metadata:
134
136
  allowed_push_host: https://rubygems.org
135
- post_install_message:
137
+ post_install_message:
136
138
  rdoc_options: []
137
139
  require_paths:
138
140
  - lib
@@ -147,9 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
149
  - !ruby/object:Gem::Version
148
150
  version: '0'
149
151
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 2.6.12
152
- signing_key:
152
+ rubygems_version: 3.1.4
153
+ signing_key:
153
154
  specification_version: 4
154
155
  summary: A Zmanim library for Ruby
155
156
  test_files: []