SetBuilder
SetBuilder's purpose is to transform described data sets into queries or natural language.
Example
The following set describes a group of people using simple data structures (Arrays, Strings, Symbols, and Hashes):
[[:awesome],
[:attended, "school"],
[:died, :not],
[:name, {:is => "Jerome"}]]
SetBuilder can render this set in plain English:
[Everyone] who is awesome, who attended school, who has not died, and whose name is Jerome.
It can also generate a NamedScope on an ActiveRecord model to fetch the people who fit in this set.
Usage
Roadmap
Right now SetBuilder uses ActiveRecord::NamedScope::Scope internally, but it shouldn't be hard to refactor it to use DataMapper's composable queries instead.
Copyright (c) 2010 Bob Lail, released under the MIT license