Class: When::CalendarTypes::CalendarNote::Enumerator
- Inherits:
-
Parts::Enumerator
- Object
- Enumerator
- Parts::Enumerator
- When::CalendarTypes::CalendarNote::Enumerator
- Defined in:
- lib/when_exe/calendartypes.rb
Overview
イベントを取得する Enumerator
Direct Known Subclasses
CalendarNote::ShireWeek::Enumerator, CalendarNote::WorldWeek::Enumerator
Instance Attribute Summary
Attributes inherited from Parts::Enumerator
#count, #count_limit, #current, #direction, #exdate, #first, #index, #last, #object, #options, #parent, #processed
Instance Method Summary collapse
-
#_succ ⇒ When::TM::TemporalPosition
次のイベントを得る.
-
#initialize(parent, first, direction, event, count_limit = nil) ⇒ Enumerator
constructor
オブジェクトの生成.
Methods inherited from Parts::Enumerator
_options, #_rewind, #each, #has_next?, #next, #succ, #with_index, #with_object
Constructor Details
#initialize(parent, first, direction, event, count_limit = nil) ⇒ Enumerator
オブジェクトの生成
1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 |
# File 'lib/when_exe/calendartypes.rb', line 1537 def initialize(parent, first, direction, event, count_limit=nil) @parent = parent void, @event, @parameter = event.split(/^([^\d]+)/) @delta = @parent.send((@event+'_delta').to_sym, @parameter) instance_eval %Q{ def event_eval(date) @parent.#{@event}(date, @parameter) end } date = event_eval(first) if direction == :reverse @delta = -@delta date = event_eval(first + @delta) if first.to_i < date.to_i else date = event_eval(first + @delta) if first.to_i > date.to_i end super(@parent, date, direction, count_limit) end |
Instance Method Details
#_succ ⇒ When::TM::TemporalPosition
次のイベントを得る
1523 1524 1525 |
# File 'lib/when_exe/calendartypes.rb', line 1523 def _succ @current = (@current==:first) ? @first : event_eval(@current + @delta) end |