Plumbr is a ruby gem that eases the construction of Pipelines
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.rasheed.idea
bin
features
lib
spec
.gitignore
Gemfile
README.md
Rakefile
plumbr.gemspec

README.md

This is a scketched design doc. I wouldn't read much into it yet :D

Write Pipelines (plumbr)

$ gem install pipeline (depends on toolkit)

$ pipeline sewage_system

$ pipe sewage_sorter sewage_tagger --with-subscribe --with-push

produces

sewage_system/ machines/ sewage_tagger.rb # add tags to sewage store_other.rb # stores uknown stuff in the db to be recycled.

pipes/
  database.rb
    module Database
      @db = thingThatUsesARToLoadDB

      def self.db
        @db
      end
    end

  sewage_sorter_pipe
      require "database"

      count 2
      subscribe_to "RawSewage", "RawSewagePond"
      machine "sewage_tagger", {
        :http_port = 8000 + current_count
      }
      push_to "TaggedSewage", (:queues =>)

  process_poo_pipe
    subscribe_to "TaggedSewage", "TaggedSewagePond:Poo"

  process_pee_pipe
    subscribe_to "TaggedSewage", "TaggedSewagePond:Pee"

  process_other_pipe
    subscribe_to "TaggedSewage", "TaggedSewagePond:Other"
    machine "store_other", { :host => Database.db.host, :port => Database.db.port }

pipe diagram

waste -> exchange[RawSewage] -> queue [RawSewagePond]

exchange[TaggedSewage]