Class: Zmanim::Limudim::Calculators::Parsha
- Inherits:
-
Object
- Object
- Zmanim::Limudim::Calculators::Parsha
- Includes:
- LimudCalculator
- Defined in:
- lib/zmanim/limudim/calculators/parsha.rb
Instance Attribute Summary collapse
-
#in_israel ⇒ Object
readonly
Returns the value of attribute in_israel.
Instance Method Summary collapse
- #cycle_end_calculation ⇒ Object
- #cycle_units_calculation ⇒ Object
- #default_units ⇒ Object
-
#initialize(in_israel: false) ⇒ Parsha
constructor
A new instance of Parsha.
- #interval_end_calculation ⇒ Object
- #perpetual_cycle_anchor ⇒ Object
- #tiered_units? ⇒ Boolean
Methods included from LimudCalculator
#default_starting_page, #find_cycle, #find_offset_units, #fractional_units, #initial_cycle_date, #limud, #skip_interval?, #starting_page, #tiered_units_for_interval, #unit_for_interval, #unit_step
Constructor Details
#initialize(in_israel: false) ⇒ Parsha
Returns a new instance of Parsha.
9 10 11 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 9 def initialize(in_israel:false) @in_israel = in_israel end |
Instance Attribute Details
#in_israel ⇒ Object (readonly)
Returns the value of attribute in_israel.
7 8 9 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 7 def in_israel @in_israel end |
Instance Method Details
#cycle_end_calculation ⇒ Object
29 30 31 32 33 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 29 def cycle_end_calculation ->(start_date, iteration) do perpetual_cycle_anchor.next_occurrence(start_date) - 1 end end |
#cycle_units_calculation ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 48 def cycle_units_calculation ->(cycle) do kviah = Zmanim::HebrewCalendar::HebrewDateFormatter.new.format_kviah(cycle.start_date.jewish_year) modifications = in_israel ? { 'בחה' => [%i(matos masei), %i(nitzavim vayeilech)], 'בשז' => [], 'גכז' => [], 'החא' => [], 'השג' => [%i(nitzavim vayeilech)], 'זחג' => [%i(matos masei), %i(nitzavim vayeilech)], 'זשה' => [%i(matos masei), %i(nitzavim vayeilech)], 'בחג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)], 'בשה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)], 'גכה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)], 'הכז' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(matos masei)], 'השא' => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], 'זחא' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], 'זשג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], }[kviah] : { 'בחה' => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)], 'בשז' => [%i(matos masei)], 'גכז' => [%i(matos masei)], 'החא' => [], 'השג' => [%i(nitzavim vayeilech)], 'זחג' => [%i(matos masei), %i(nitzavim vayeilech)], 'זשה' => [%i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)], 'בחג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)], 'בשה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)], 'גכה' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(chukas balak), %i(matos masei), %i(nitzavim vayeilech)], 'הכז' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], 'השא' => [%i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], 'זחא' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei)], 'זשג' => [%i(vayakheil pikudei), %i(tazria metzora), %i(acharei kedoshim), %i(behar bechukosai), %i(matos masei), %i(nitzavim vayeilech)], }[kviah] modifications.inject(default_units) do |transitioned_units, parsha_pair| index = transitioned_units.index(parsha_pair.first) transitioned_units[0...index] + [parsha_pair] + transitioned_units[(index + 2)..-1] end end end |
#default_units ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 21 def default_units %i(bereishis noach lech_lecha vayeira chayei_sarah toldos vayeitzei vayishlach vayeishev mikeitz vayigash vayechi shemos vaeirah bo beshalach yisro mishpatim terumah tetzaveh ki_sisa vayakheil pekudei vayikra tzav shemini tazria metzora acharei kedoshim emor behar bechukosai bamidbar naso behaalosecha shelach korach chukas balak pinchas matos masei devarim vaeschanan eikev reei shoftim ki_seitzei ki_savo nitzavim vayeilech haazinu vezos_haberacha) end |
#interval_end_calculation ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 35 def interval_end_calculation ->(cycle, start_date) do skips = in_israel ? [[1, (15..21)], [3, [6]], [7, [1,2,10] + (15..21).to_a]] : [[1, (15..22)], [3, [6,7]], [7, [1,2,10] + (15..22).to_a]] end_date = start_date + (7 - start_date.day_of_week) while skips.detect{|month, days| month == end_date.jewish_month && days.include?(end_date.jewish_day) } do end_date += 7 end end_date > cycle.end_date ? cycle.end_date : end_date end end |
#perpetual_cycle_anchor ⇒ Object
17 18 19 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 17 def perpetual_cycle_anchor Zmanim::Limudim::Anchor::DayOfYearAnchor.new(7, in_israel ? 23 : 24) end |
#tiered_units? ⇒ Boolean
13 14 15 |
# File 'lib/zmanim/limudim/calculators/parsha.rb', line 13 def tiered_units? false end |