Sha256: 85ad858faa36e124d110309bccda6cde34f702ee081c82c83fc732c4dd04f06e

Contents?: true

Size: 896 Bytes

Versions: 1

Compression:

Stored size: 896 Bytes

Contents

require "#{File.dirname(__FILE__)}/../lib/stages"

include Stages

#count the occurance of each letter in these song lyrics
def sing
  { :do => 'doe a deer a female deer',
    :re => 'ray a drop of golden sun',
    :mi => 'me a name I call myself',
    :fa => 'far a long long way to run',
    :so => 'a needle pulling thread',
    :la => 'a note to follow so',
    :ti => 'a drink with jam and bread'}
end

def setup_pipeline
  get_lyric = HashLookup.new sing
  each_character = EachInput.new{ |x| x.chars }
  whitespace = Select.new{ |x| x != ' '}
  sub_pipeline = get_lyric | each_character | whitespace 
  process_elements = SubStage.new(sub_pipeline)
  
  generator = EachElement.new sing.keys
  subtotals = Map.new { |x| x.values.first }
  iterator = EachInput.new
  count = Count.new
  
  generator | process_elements | subtotals | iterator | count
end

puts setup_pipeline.run.inspect



Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stages-0.1.0 examples/sing_subpipes.rb