Sha256: f68c34361d5b9cfc13a2579bc541ae938311b97b038a0fea08173e874cdd30e7

Contents?: true

Size: 955 Bytes

Versions: 4

Compression:

Stored size: 955 Bytes

Contents

.@ PackageName :: "Sum"

Rule Main
  input 'list.txt'
  output 'sum.txt'
Flow
  rule CalcEachLine
  rule Aggregation
End

Rule CalcEachLine
  input 'list.txt'
  output 'line_sum*.txt'.all
Flow
  rule MakeHeadTail
  rule Sum
End

Rule MakeHeadTail
  input 'list.txt'
  output 'head*.txt'.all
  output 'tail*.txt'.all
Action
  #!/usr/bin/env ruby
  i = 1
  File.readlines('list.txt').each do |line|
    head, tail = line.split(',')
    File.open("head#{i}.txt", "w+"){|f| f.print head}
    File.open("tail#{i}.txt", "w+"){|f| f.print tail}
    i += 1
  end
End

Rule Sum
  input 'head*.txt'
  input 'tail{$*}.txt'
  output 'line_sum{$*}.txt'.stdout
Action
  expr `cat {$INPUT[1]}` + `cat {$INPUT[2]}`
End

Rule Aggregation
  input 'line_sum*.txt'.all
  output 'sum.txt'.stdout
Action
  #!/usr/bin/env ruby
  sum = 0
  '{$INPUT[1]}'.split(' ').sort.each do |filename|
    n = File.read(filename)
    sum += n.to_i
    puts n
  end
  puts "total: #{sum}"
End

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pione-0.4.2 example/Sum/Sum.pione
pione-0.4.1 example/Sum/Sum.pione
pione-0.4.0 example/Sum/Sum.pione
pione-0.3.2 example/Sum/Sum.pione