Madeleine is a Ruby implementation of Object Prevalence: Transparent persistence of business objects using command logging and complete system snapshots.
github.com/ghostganz/madeleine
Madeleine’s design is based on Prevayler, the original Java prevalence layer.
Usage:
require 'madeleine'
# Create an application as a prevalent system
madeleine = SnapshotMadeleine.new("my_example_storage") {
SomeExampleApplication.new()
}
# Do modifications of the system by sending commands through
# the Madeleine instance. A command is an object with a suitable
# "execute(system)" method.
madeleine.execute_command(command)
Requirements:
* Ruby 1.8.7 or later
Contact:
Homepage:
https://github.com/ghostganz/madeleine
License:
BSD (see the file COPYING)
Credits:
Anders Bengtsson - Prevalence core impl.
Stephen Sykes - Automatic commands impl.
With the help of patches, testing and feedback from:
Steve Conover, David Heinemeier Hansson, Johan Lind, Håkan Råberg,
IIMA Susumu, Martin Tampe and Jon Tirsén
Thanks to Klaus Wuestefeld and the Prevayler developers for the
model of this software; to Minero Aoki for the installer; to Matz and
the core developers for the Ruby language!