Class: When::Coordinates::Residue::Enumerator
- Inherits:
-
Parts::Enumerator
- Object
- Enumerator
- Parts::Enumerator
- When::Coordinates::Residue::Enumerator
- Defined in:
- lib/when_exe/coordinates.rb
Overview
指定の剰余となる通日or通年を生成する 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
-
#initialize(*args) ⇒ Enumerator
constructor
オブジェクトの生成.
-
#succ ⇒ When::TM::TemporalPosition
次の通日or通年を得る.
Methods inherited from Parts::Enumerator
_options, #_rewind, #each, #has_next?, #next, #with_index, #with_object
Constructor Details
#initialize(parent, range, count_limit = nil) ⇒ Enumerator #initialize(parent, first, direction, count_limit) ⇒ Enumerator
オブジェクトの生成
618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 |
# File 'lib/when_exe/coordinates.rb', line 618 def initialize(*args) case args[1] when When::TimeValue first = args[1] & args[0] first = args[1] & (args[0] << 1) if args[2] == :reverse && first > args[1] args[1] = first when Range first = args[1].first & args[0] args[1] = (args[1].exclude_end?) ? (first...args[1].last) : (first..args[1].last) else raise TypeError, "Second Argument should be 'When::TM::(Temporal)Position'" end @period = When::TM::PeriodDuration.new(args[0].divisor, When::Coordinates::PRECISION[args[0].units] || When::DAY) super(*args) end |
Instance Method Details
#succ ⇒ When::TM::TemporalPosition
次の通日or通年を得る
596 597 598 599 600 601 602 603 |
# File 'lib/when_exe/coordinates.rb', line 596 def succ value = @current @current = (@count_limit.kind_of?(Numeric) && @count >= @count_limit) ? nil : (@current==:first) ? @first : (@direction==:forward) ? @first & @parent >> @count : @first & @parent << @count @count += 1 return value end |