class Flor::Pro::Shuffle

Public Instance Methods

pre_execute() click to toggle source
# File lib/flor/pcore/shuffle.rb, line 46
def pre_execute

  unatt_unkeyed_children

  @node['atts'] = []
  @node['rets'] = []
end
receive_last() click to toggle source
# File lib/flor/pcore/shuffle.rb, line 54
def receive_last

  arr =
    (@node['rets'] + [ node_payload_ret ])
      .find { |r| r.is_a?(Array) }

  fail Flor::FlorError.new("no array to #{heap}") unless arr

  cnt =
    att('count', nil) ||
    @node['rets'].find { |r| r.is_a?(Integer) }

  ret = arr.sample(cnt || arr.size)
  ret = ret.first if cnt == nil && heap == 'sample'

  wrap('ret' => ret)
end