Hello,

up until now, ruote understood process definitions expressed in Ruby, in XML or 
directly as trees (Ruby or JSON).

Thus, this Ruby process definition

---8<---
Ruote.process_definition 'test', :revision => '1.0' do
  alpha
  concurrence do
    bravo :timeout => '2d'
    charly
  end
  delta :task => 'final changes'
end
--->8---

would be equivalent to (Ruby array)

---8<---
['define', {'revision'=>'1.0', 'test'=>nil}, [
  ['alpha', {}, []],
  ['concurrence', {}, [
    ['bravo', {'timeout'=>'2d'}, []],
    ['charly', {}, []]]],
  ['delta', {'task'=>'final changes'}, []]]]
--->8---

or (JSON string)

---8<---
["define", {"revision":"1.0", "test":null}, [
  ["alpha", {}, []],
  ["concurrence", {}, [
    ["bravo", {"timeout":"2d"}, []],
    ["charly", {}, []]]],
  ["delta", {"task":"final changes"}, []]]]
--->8---

or (XML)

---8<---
<process-definition name='test' 'revision'='1.0'>
  <alpha />
  <concurrence>
    <bravo timeout='2d' />
    <charly />
  </concurrence>
  <delta task='final changes' />
</process-definition>
--->8---

The new "radial" process definition language looks like :

---8<---
process-definition test, revision: 1.0
  alpha
  concurrence
    bravo timeout: 2d
    charly
  delta task: 'final changes'
--->8---

It's mostly the Ruby syntax, without the "do" and the "end", and attributes 
that are expressed with the javascript 'lazy' syntax.

Since it accomodates Ruby-like and JSON-like styles, these are equivalent :

---8<---
  bravo timeout: 2d
  bravo "timeout": 2d
  bravo 'timeout': 2d
  bravo timeout: "2d"
  bravo timeout: '2d'
--->8---

Attribute values can be expresses the JSON way or the Ruby way :

---8<---
  charly info: { a: 'b', c: [ 1, 2, 3 ] }
  charly info: { 'a' => 'b', 'c' => [ 1, 2, 3 ] }
  # ...
--->8---

Comments start after the "#" sign.

Multiline strings are OK, they are delimited by ''' or """

It should accomodate a very relaxed style of writing.

The big minus point : your favourite text editor won't have a syntax file for 
it.


Comments and questions are welcome,

-- 
John Mettraux - http://jmettraux.wordpress.com

-- 
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en

Reply via email to