Class: Zmanim::Limudim::Interval

Inherits:
Object
  • Object
show all
Defined in:
lib/zmanim/limudim/interval.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_date, end_date, iteration, cycle) ⇒ Interval

Returns a new instance of Interval.



5
6
7
8
9
10
# File 'lib/zmanim/limudim/interval.rb', line 5

def initialize(start_date, end_date, iteration, cycle)
  @start_date = start_date
  @end_date = end_date
  @iteration = iteration
  @cycle = cycle
end

Instance Attribute Details

#cycleObject (readonly)

Returns the value of attribute cycle.



3
4
5
# File 'lib/zmanim/limudim/interval.rb', line 3

def cycle
  @cycle
end

#end_dateObject (readonly)

Returns the value of attribute end_date.



3
4
5
# File 'lib/zmanim/limudim/interval.rb', line 3

def end_date
  @end_date
end

#iterationObject (readonly)

Returns the value of attribute iteration.



3
4
5
# File 'lib/zmanim/limudim/interval.rb', line 3

def iteration
  @iteration
end

#start_dateObject (readonly)

Returns the value of attribute start_date.



3
4
5
# File 'lib/zmanim/limudim/interval.rb', line 3

def start_date
  @start_date
end

Class Method Details

.first_for_cycle(cycle, interval_end_calculation) ⇒ Object



12
13
14
15
16
17
# File 'lib/zmanim/limudim/interval.rb', line 12

def self.first_for_cycle(cycle, interval_end_calculation)
  start_date = cycle.start_date
  iteration = 1
  end_date = interval_end_calculation.(cycle, start_date)
  Interval.new(start_date, end_date, iteration, cycle)
end

Instance Method Details

#next(interval_end_calculation) ⇒ Object



19
20
21
# File 'lib/zmanim/limudim/interval.rb', line 19

def next(interval_end_calculation)
  next_for_iteration(iteration+1, interval_end_calculation)
end

#skip(interval_end_calculation) ⇒ Object



23
24
25
# File 'lib/zmanim/limudim/interval.rb', line 23

def skip(interval_end_calculation)
  next_for_iteration(iteration, interval_end_calculation)
end