Class: Arrow::Slicer::LogicalCondition

Inherits:
Condition
  • Object
show all
Defined in:
lib/arrow/slicer.rb

Direct Known Subclasses

AndCondition, OrCondition, XorCondition

Instance Method Summary collapse

Methods inherited from Condition

#&, #^, #|

Constructor Details

#initialize(condition1, condition2) ⇒ LogicalCondition

Returns a new instance of LogicalCondition.



66
67
68
69
# File 'lib/arrow/slicer.rb', line 66

def initialize(condition1, condition2)
  @condition1 = condition1
  @condition2 = condition2
end

Instance Method Details

#evaluateObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/arrow/slicer.rb', line 71

def evaluate
  values1 = @condition1.evaluate.each
  values2 = @condition2.evaluate.each
  raw_array = []
  begin
    loop do
      value1 = values1.next
      value2 = values2.next
      if value1.nil? or value2.nil?
        raw_array << nil
      else
        raw_array << evaluate_value(value1, value2)
      end
    end
  rescue StopIteration
  end
  BooleanArray.new(raw_array)
end