class Runt::Collection
Base class for TExpr
classes that can be composed of other TExpr
objects imlpemented using the Composite(GoF)
pattern.
Attributes
expressions[R]
Public Class Methods
new(expressions = [])
click to toggle source
# File lib/runt/temporalexpression.rb, line 90 def initialize(expressions = []) @expressions = expressions end
Public Instance Methods
==(other)
click to toggle source
Calls superclass method
# File lib/runt/temporalexpression.rb, line 94 def ==(other) if other.is_a?(Collection) o_exprs = other.expressions.dup expressions.each do |e| return false unless i = o_exprs.index(e) o_exprs.delete_at(i) end o_exprs.each {|e| return false unless i == expressions.index(e)} return true else super(other) end end
add(anExpression)
click to toggle source
# File lib/runt/temporalexpression.rb, line 108 def add(anExpression) @expressions.push anExpression self end
display()
click to toggle source
# File lib/runt/temporalexpression.rb, line 139 def display puts "I am a #{self.class} containing:" @expressions.each do |ex| pp "#{ex.class}" end end
overlap?(date_expr)
click to toggle source
Will return true if the supplied object overlaps with the range used to create this instance
# File lib/runt/temporalexpression.rb, line 115 def overlap?(date_expr) @expressions.each do | interval | return true if date_expr.overlap?(interval) end false end
to_s() { || ... }
click to toggle source
# File lib/runt/temporalexpression.rb, line 122 def to_s if !@expressions.empty? && block_given? first_expr, next_exprs = yield result = '' @expressions.map do |expr| if @expressions.first===expr result = first_expr + expr.to_s else result = result + next_exprs + expr.to_s end end result else 'empty' end end