Class: Runt::EveryTE

Inherits:
Object
  • Object
show all
Includes:
TExpr
Defined in:
lib/runt/temporalexpression.rb

Overview

Using the precision from the supplied start argument and the its date value, matches every n number of time units thereafter.

Instance Method Summary collapse

Methods included from TExpr

#&, #-, #and, #dates, #minus, #or, #|

Constructor Details

#initialize(start, n, precision = nil) ⇒ EveryTE

Returns a new instance of EveryTE.



682
683
684
685
686
687
# File 'lib/runt/temporalexpression.rb', line 682

def initialize(start,n,precision=nil)
  @start=start
  @interval=n
  # Use the precision of the start date by default
  @precision=precision || @start.date_precision
end

Instance Method Details

#include?(date) ⇒ Boolean

Returns:

  • (Boolean)


689
690
691
692
693
694
695
696
697
# File 'lib/runt/temporalexpression.rb', line 689

def include?(date)
  i=DPrecision.to_p(@start,@precision)
  d=DPrecision.to_p(date,@precision)
  while i<=d
    return true if i.eql?(d)
    i=i+@interval      
  end
  false
end

#to_sObject



699
700
701
# File 'lib/runt/temporalexpression.rb', line 699

def to_s
  "every #{@interval} #{@precision.label.downcase}s starting #{Runt.format_date(@start)}"
end