zmanim 0.2.2 → 0.5.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.
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: []