From: swille Date: 2005-11-07T04:44:26+09:00 Subject: Need DSL assistance 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 => [:manager, :system_owner] if :approval == :ok get :information, :request => :clearance, :from => [:person_with_role, "Security Role"] modify :person, :with => [:clearance, :clearance_date => :now] notify :success => [:requestee, :requestor] else notify :failure => [:requestee, :requestor] finish end # unrelated to the code above push :change, :of => :cn, :to => :accounts, :where => ":attribute == :old_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