Transparent object persistence for Ruby