Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Thu Aug 13 19:31:36 -0700 2009 | |
| |
CHANGELOG.txt | Tue Jun 09 19:24:52 -0700 2009 | |
| |
CREDITS.txt | Tue Nov 17 16:14:20 -0800 2009 | |
| |
LICENSE.txt | Wed Aug 05 06:53:57 -0700 2009 | |
| |
README.rdoc | Tue Nov 10 17:36:09 -0800 2009 | |
| |
Rakefile | Wed Oct 07 01:37:34 -0700 2009 | |
| |
TODO.txt | Tue Nov 03 06:16:54 -0800 2009 | |
| |
deps.rip | Wed Aug 05 20:59:25 -0700 2009 | |
| |
doc/ | Tue Aug 11 06:19:35 -0700 2009 | |
| |
examples/ | Thu Sep 24 21:48:20 -0700 2009 | |
| |
lib/ | Mon Nov 16 16:49:12 -0800 2009 | |
| |
mruby.rb | Thu Jun 04 23:56:48 -0700 2009 | |
| |
ruote.gemspec | Tue Aug 11 17:48:10 -0700 2009 | |
| |
test/ | Thu Nov 19 17:12:18 -0800 2009 |
ruote
Ruote is a Ruby workflow engine. It’s thus a workflow definition interpreter. If you’re enterprisey, you might say business process definition.
Instances of these definitions are meant to run for a long time, so Ruote is oriented towards persistency / modifiability instead of transience / performance like a regular interpreter is. A Ruote engine may run multiple instances of workflow definitions.
Persistent mostly means that you can stop Ruote and later restart it without losing processes. Modifiability means that you can modify a workflow instance on the fly.
Process definitions are mainly describing how workitems are routed to participants. These participants may represent worklists for users or group of users, pieces of code, …
usage
require 'rubygems'
require 'ruote/engine'
# preparing the engine
engine = Ruote::FsPersistedEngine.new
# registering participants
engine.register_participant :alpha do |workitem|
workitem.fields['message'] = { 'text' => 'hello !', 'author' => 'Alice' }
end
engine.register_participant :bravo do |workitem|
puts "I received a message from #{workitem.fields['message']['author']}"
end
# defining a process
pdef = Ruote.process_definition :name => 'test' do
sequence do
participant :alpha
participant :bravo
end
end
# launching, creating a process instance
pid = engine.launch(pdef)
sleep 1
# => 'I received a message from Alice'
test suite
see github.com/jmettraux/ruote/tree/master/test
license
MIT
Links
ruote.rubyforge.org rubyforge.org/projects/openwferu
jmettraux.wordpress.com (blog)
feedback
mailing list : groups.google.com/group/openwferu-users irc : irc.freenode.net #ruote







