• Stars
    star
    496
  • Rank 88,807 (Top 2 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 16 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a ruby workflow engine (dead)

Important Note

Active development on ruote ceased.

See scaling down ruote.

Do not involve ruote in your new project.

** 2016-12-12 Update **

Ruote development moved to a new Ruby workflow engine named flor.

The team is named floraison and there is also a "flor behind Rack" project named flack.

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

grab ruote

gem install yajl-ruby
gem install rufus-scheduler -v 2.0.24
gem install ruote

or better, use a Gemfile like this one: https://gist.github.com/jmettraux/22f24fca70c5a116b01c

Then

require 'rubygems'
require 'ruote'
require 'ruote/storage/fs_storage'

# preparing the engine

engine = Ruote::Engine.new(
  Ruote::Worker.new(
    Ruote::FsStorage.new('ruote_work')))

# 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

wfid = engine.launch(pdef)

engine.wait_for(wfid)
  # blocks current thread until our process instance terminates

# => 'I received a message from Alice'

test suite

see http://github.com/jmettraux/ruote/tree/master/test

license

MIT

links

feedback

More Repositories

1

rufus-scheduler

scheduler for Ruby (at, in, cron and every jobs)
Ruby
2,359
star
2

rufus-tokyo

FFI based ruby library to access Tokyo Cabinet and Tokyo Tyrant. (This library is in "maintenance mode", see http://jmettraux.wordpress.com/2010/02/26/retiring-rufus-tokyo/ for an explanation)
Ruby
150
star
3

rufus-lua

embedding Lua in Ruby, via FFI
Ruby
93
star
4

rufus-mnemo

Turning (large) integers into japanese sounding words and vice versa (ruby)
Ruby
78
star
5

rufus-decision

CSV based Ruby decision tables (dead, not maintained anymore)
Ruby
48
star
6

ruote-web2

NOTE : work on this sub-project has ceased.
Ruby
32
star
7

neg

not a peg parser, a neg narser
Ruby
31
star
8

ruote-fluo

javascript SVG for graphically rendering ruote process definitions
JavaScript
25
star
9

quaderno

a dynamic form system in javascript
JavaScript
23
star
10

rufus-json

One interface to various JSON ruby libs (yajl, json, json_pure, json-jruby, active_support). Has a preference for yajl.
Ruby
21
star
11

ruote-rest

restful workflow engine based on Rack and ruote (Warning : ruote-rest will be replaced by ruote-kit soon)
Ruby
20
star
12

rufus-rtm

yet another RememberTheMilk wrapper (ruby) (development moved to "milk_cap")
Ruby
20
star
13

rufus-jig

A HTTP client, greedy with JSON content, GETting conditionally.
Ruby
19
star
14

volute

set event bus, on set callbacks, business logic relocator, whatever (ruby)
Ruby
19
star
15

ruote-redis

Redis persistence for ruote (a ruby workflow engine)
Ruby
15
star
16

ruote_plugin

WARNING : work on this sub-project has ceased. A Rails plugin (Ruote, open source ruby workflow engine)
Ruby
15
star
17

ruote-dm

datamapper persistence for ruote (a ruby workflow engine)
Ruby
12
star
18

flon

an evolution of ruote
12
star
19

rufus-lru

LruHash class, a Hash with a max size, controlled by a LRU mechanism (ruby)
Ruby
11
star
20

rufus-treechecker

checking ruby sexp trees [before eval()], raise security error if excluded code pattern spotted
Ruby
11
star
21

rufus-sqs

a ruby library for Amazon SQS. (WARNING : no longer works)
Ruby
11
star
22

rufus-verbs

GET, POST, PUT, DELETE, with something around (ruby)
Ruby
11
star
23

rufus-google

snippets of ruby for playing with Google stuff
Ruby
10
star
24

ruote_website

ruote's website
HTML
9
star
25

rufus-dollar

${xxx} substitutions (ruby)
Ruby
9
star
26

kensaku

a tailor-made dictionary for language study (boring)
Ruby
9
star
27

ruote-sequel

Sequel-based storage implementation for ruote (a Ruby workflow engine)
Ruby
8
star
28

hanabi

a small web presentation tool (javascript)
JavaScript
8
star
29

ruote-mon

MongoDB storage for ruote (a Ruby workflow engine)
Ruby
8
star
30

ruote-web

this project is discontinued in favour of ruote-web2
Ruby
8
star
31

munemo

turning integers into (somehow) japanese sounding words
Ruby
8
star
32

ruote-http

a ruote sinatra-wrapper, with html/json representations
Ruby
7
star
33

rufus-libmemcached

ffi based ruby library to access libmemcached (memcached)
Ruby
7
star
34

ruote-cukes

some cucumber helpers for testing ruote (ruby workflow engine) definitions and participants
Ruby
7
star
35

rufus-cloche

a stupid local process-safe JSON doc store
Ruby
7
star
36

ruote-couch

couchdb persistence for ruote 2.1
Ruby
7
star
37

ruote-forms

a javascript library : json to html form and back
JavaScript
6
star
38

lack

(experiment) Rack clone in Lua
Lua
6
star
39

ci

continuous interjection
Ruby
6
star
40

glaive

a key-document store (JSON docs), a golang experiment
Go
6
star
41

edict2-kindle

scripts to generate a Kindle version of the edict2 Japanese-English dictionary
Ruby
5
star
42

reshell

some kind of shell (javascript)
JavaScript
5
star
43

ruote-asw

ruote storage implementation backed by Amazon SWF (and Amazon S3)
Ruby
5
star
44

h.js

my javascript foolbox
Ruby
4
star
45

brig

building chroots and running Ruby code in them
Ruby
4
star
46

hrquizzes

Ruby quizzes for Hiroshima.rb >= #56
Ruby
4
star
47

ruote-transition

"place-transition" to something else (ruby)
Ruby
4
star
48

slipdf

Slim inspired template language on top of pdfmake (JS)
JavaScript
4
star
49

Intrigue

scheming on .net
Visual Basic
3
star
50

podoff

a Ruby tool to deface PDF documents
Ruby
3
star
51

rufus-sixjo

an experimentation with Rack
Ruby
3
star
52

ilog

stupid irc channel logger (ruby)
Ruby
3
star
53

rogue_parser

a temp clone of ruby_parser
Ruby
2
star
54

undaunted

Tools to play Undaunted the tactical level board game
Makefile
2
star
55

bucket

listing the content of an AWS S3 bucket (html + js)
2
star
56

onedim

a one-time project for Hiroshima.rb #31 (h25/04/06)
Ruby
2
star
57

register

Redis and a few ideas borrowed from Javascript, CouchDB and actors
Ruby
2
star
58

ru

(experiment) from ruby to ruby via ffi
Ruby
2
star
59

dotfish

my Fish shell configuration files
Shell
2
star
60

dotbash

.bashrc and .bash_profile
Shell
2
star
61

rufus-doric

something at the intersection of Rails3, CouchDB and rufus-jig (Ruby)
Ruby
2
star
62

pilatus

a small javascript library for rendering the result of a Yahoo Pipe in a web page
JavaScript
2
star
63

ruote-beanstalk

beanstalk extensions for ruote (a ruby workflow engine)
Ruby
2
star
64

wrong_api_client

a RightAPI client that is wrong, yet lean
Ruby
2
star
65

nameplate

a nameplate generator, twitter-tainted, rubykaigi-ish
Ruby
2
star
66

ivan

as an answer to a ruote support request
Ruby
2
star
67

cloche

[not serious] a mini doc store written in erlang
Erlang
2
star
68

avantage

A Ruby client to the Alpha Vantage API
Ruby
2
star
69

camcov.scad

laptop camera cover (OpenSCAD)
OpenSCAD
1
star
70

rufus-h

{experimental | useless} ruby to hash and back for json friendly persistence
1
star
71

blog

my blog
Ruby
1
star
72

ruote-dynamo

Ruby
1
star
73

botaku

A Slack bot abstraction
Ruby
1
star
74

histrion

character or creature generator for "Wolves of God" or "Worlds without Number"
Ruby
1
star
75

aaken

a TTRPG ruleset
Ruby
1
star
76

flar

a flon experiment
Ruby
1
star
77

laconi.co

trimmed down 5e srd html and pdf
HTML
1
star
78

wag

wrapper script around "vagrant" and "VBoxManage"
Ruby
1
star
79

subaltern

a Ruby self-interpreter, well it interprets a limited subset of Ruby...
Ruby
1
star
80

gemverif

something to double check my gems for http://blog.rubygems.org/2016/04/06/gem-replacement-vulnerability-and-mitigation.html
Ruby
1
star
81

sqlover

Scanning Ruby/Sequel logs for SQL queries that take too long
Ruby
1
star
82

figa

Ruby client to OpenFIGI API v2
Ruby
1
star
83

james_lopez

(just a dumb rails project to help someone with a rufus-scheduler issue)
Ruby
1
star
84

cassandra_lock

distributed mutexes using cassandra
Ruby
1
star
85

bxs

Bundle Exec rSpec - a wrapper for `bundle exec rspec`
Ruby
1
star
86

caboche

almost empty-headed, loading required .js file in phases (and in parallel within the phase)
JavaScript
1
star
87

deli

a del.icio.us micro clone for Hiroshima.rb #057
HTML
1
star
88

jmettraux.github.com

my perso website thanks to github.com
CSS
1
star
89

comsomol.js

A set of web components
Ruby
1
star
90

for_nicola

An "answer" to a ruote mailing list question
Ruby
1
star
91

archelaus

cartographing
Ruby
1
star
92

barley

a Heroku mini ruote + ruote-dm sample application
Ruby
1
star
93

hiroshimarb63

Example code for my Hiroshima.rb #063 talk
Ruby
1
star
94

katmagic

counter-proof for https://github.com/jmettraux/rufus-scheduler/issues/29
Ruby
1
star
95

rpg.scad

rpg counters, bases, minis, ...
OpenSCAD
1
star
96

cevennes

CVS diff library, id column geared
Ruby
1
star
97

dotvim

my .vim
Vim Script
1
star
98

half

HAL + Forms
1
star
99

hexes_and_squares

A light hexagonal grid with a square grid overlayed, 1 inch ร  la DnD
HTML
1
star
100

for_klaus

helping out Klaus on ruote's mailing list
Ruby
1
star