Class: Zmanim::Limudim::Calculators::TehillimMonthly

Inherits:
Object
  • Object
show all
Includes:
LimudCalculator
Defined in:
lib/zmanim/limudim/calculators/tehillim_monthly.rb

Instance Method Summary collapse

Methods included from LimudCalculator

#cycle_units_calculation, #default_starting_page, #find_cycle, #find_offset_units, #fractional_units, #initial_cycle_date, #interval_end_calculation, #limud, #skip_interval?, #skip_unit, #starting_page, #tiered_units_for_interval, #unit_step

Instance Method Details

#cycle_end_calculationObject



20
21
22
23
24
# File 'lib/zmanim/limudim/calculators/tehillim_monthly.rb', line 20

def cycle_end_calculation
  ->(start_date, iteration) do
    perpetual_cycle_anchor.next_occurrence(start_date) - 1
  end
end

#default_unitsObject



15
16
17
18
# File 'lib/zmanim/limudim/calculators/tehillim_monthly.rb', line 15

def default_units
  [9,17,22,28,34,38,43,48,54,59,65,68,71,76,78,82,87,89,96,103,105,
   107,112,118,119,119,134,139,144,150]
end

#perpetual_cycle_anchorObject



11
12
13
# File 'lib/zmanim/limudim/calculators/tehillim_monthly.rb', line 11

def perpetual_cycle_anchor
  Zmanim::Limudim::Anchor::DayOfMonthAnchor.new(1)
end

#tiered_units?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/zmanim/limudim/calculators/tehillim_monthly.rb', line 7

def tiered_units?
  false
end

#unit_for_interval(units, interval) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/zmanim/limudim/calculators/tehillim_monthly.rb', line 26

def unit_for_interval(units, interval)
  start, stop = case interval.iteration
    when 1
      [1, units[interval.iteration - 1]]
    when 25
      [[119, 1], [119, 30]]
    when 26
      [[119, 40], [119, 400]]
    else
      [units[interval.iteration - 2] + 1, units[interval.iteration - 1]]
  end
  if interval.end_date.jewish_day == 29 && interval.end_date.days_in_jewish_month == 29
    stop = units[interval.iteration]
  end
  Zmanim::Limudim::Unit.new(start, stop)
end