Need DSL assistance

S

swille

I'm sort of pondering a project in which I think a DSL would be a good
fit for user programmability to control transactional flow. I'm
thinking about how the DSL might look, and have come up with something
like this:

get :approval, :from =3D> [:manager, :system_owner]
if :approval =3D=3D :eek:k
get :information, :request =3D> :clearance, :from =3D>
[:person_with_role, "Security Role"]
modify :person, :with =3D> [:clearance, :clearance_date =3D> :now]
notify :success =3D> [:requestee, :requestor]
else
notify :failure =3D> [:requestee, :requestor]
finish
end

# unrelated to the code above
push :change, :eek:f =3D> :cn, :to =3D> :accounts, :where =3D> ":attribute
=3D=3D :eek:ld_cn"


It would expand much deeper, but for now, that's what I have. Any
thoughts on how best to implement something like this, how I could
make it a little cleaner, and how I might deal with completing the
flow after a system failure would be much appreciated
 
K

Kero

I'm sort of pondering a project in which I think a DSL would be a good
fit for user programmability to control transactional flow. I'm
thinking about how the DSL might look, and have come up with something
like this:

Check slides about DSL from RubyConf and EuRuKo.

Also look at the ruby quiz #49 lisp game, where ppl jumped through some
hoops to get rid of colons and even commas.

+--- Kero ---------------------------------- kero@chello@nl ---+
| The last good thing written in C++ was the Pachelbel Canon |
| Jerry Olson |
+--- M38c ------------ http://members.chello.nl/k.vangelder ---+
 
S

swille

Check slides about DSL from RubyConf and EuRuKo.

Also look at the ruby quiz #49 lisp game, where ppl jumped through some
hoops to get rid of colons and even commas.

thanks for the pointers :)
 
W

Wilson Bilkovich

Sorry for the late reply here, but I'm still catching up on Ruby-Talk.
While I'm not actually advocating that you use this, because it's
probably more than you need.. anyone working on a DSL for business
processes should take a look at BPEL, at least to see what problems
they had to overcome.
http://en.wikipedia.org/wiki/BPEL
Even cooler would be a Ruby DSL that wrapped BPEL, because then your
DSL could inter-operate with non-Ruby code. Still, that's probably
more work than you're looking to do.

--Wilson.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,431
Messages
2,571,677
Members
48,796
Latest member
Greg L.

Latest Threads

Top