Module Runt::TExpr
In: lib/runt/temporalexpression.rb

TExpr’ is short for ‘TemporalExpression’ and are inspired by the recurring event pattern described by Martin Fowler. Essentially, they provide a pattern language for specifying recurring events using set expressions.

See also [tutorial_te.rdoc]

Methods

&   -   and   dates   include?   minus   or   to_s   |  

Public Instance methods

[Source]

# File lib/runt/temporalexpression.rb, line 56
  def & (expr)
    self.and(expr){|adjusted| adjusted }
  end

[Source]

# File lib/runt/temporalexpression.rb, line 60
  def - (expr)
    self.minus(expr){|adjusted| adjusted }
  end

[Source]

# File lib/runt/temporalexpression.rb, line 38
  def and (arg)

    if self.kind_of?(Intersect)
      self.add(arg)
    else
      yield Intersect.new.add(self).add(arg)
    end

  end

Contributed by Emmett Shear: Returns an Array of Date-like objects which occur within the supplied DateRange. Will stop calculating dates once a number of dates equal to the optional attribute limit are found. (A limit of zero will collect all matching dates in the date range.)

[Source]

# File lib/runt/temporalexpression.rb, line 69
  def dates(date_range, limit=0)
    result = []
    date_range.each do |date|
      result << date if self.include? date
      if limit > 0 and result.size == limit
        break
      end
    end
    result
  end

Returns true or false depending on whether this TExpr includes the supplied date expression.

[Source]

# File lib/runt/temporalexpression.rb, line 24
  def include?(date_expr); false end

[Source]

# File lib/runt/temporalexpression.rb, line 48
  def minus (arg)
      yield Diff.new(self,arg)
  end

[Source]

# File lib/runt/temporalexpression.rb, line 28
  def or (arg)

    if self.kind_of?(Union)
      self.add(arg)
    else
      yield Union.new.add(self).add(arg)
    end

  end

[Source]

# File lib/runt/temporalexpression.rb, line 26
  def to_s; "TExpr" end

[Source]

# File lib/runt/temporalexpression.rb, line 52
  def | (expr)
    self.or(expr){|adjusted| adjusted }
  end

[Validate]