You write the tests, Revolver writes the code.
Inspired by conversations with @agnoster and a programming language written by TJ Holowaychuk (can't remember the repo!!)
Needs Rubinius!
$ gem install to_source
require 'revolver'
# Revolver, write a program that returns a number between 30 and 50, GO!
revolver = Revolver.new do |result|
result.is_a?(Fixnum) && result > 30 && result < 50
end
revolver.program
revolver.report # prints the resulting program.