Method: BOAST::If#initialize

Defined in:
lib/BOAST/Algorithm.rb

#initialize(*conditions, &block) ⇒ If

Returns a new instance of If.



1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
# File 'lib/BOAST/Algorithm.rb', line 1452

def initialize(*conditions, &block)
  @conditions = []
  @blocks = []
  if conditions.size == 0 then
    raise "Illegal if construct!"
  elsif conditions.size == 1 then
    @conditions.push(conditions[0])
    @blocks.push(block)
  elsif conditions.size.even? then
    (0..conditions.size-1).step(2) { |i|
      @conditions[i/2] = conditions[i]
      @blocks[i/2] = conditions[i+1]
    }
  else
    (0..conditions.size-2).step(2) { |i|
      @conditions[i/2] = conditions[i]
      @blocks[i/2] = conditions[i+1]
    }
    @blocks.push(conditions.last)
  end
end