Record class changes and replay them. I plan to use this for Ruby class synchronisation on different clients.

Example:

require "scriber"

class Test
  class << self
    def var
      @var
    end

    def var=(v)
      @var = v
    end

    def scribe_play(type, data)
      case type
      when :var=
        self.var = data
      end
    end
  end
end

Scriber.backend = Scriber::Backends::Log.new("scribe.log")

Scriber.record(Test, :var=, 1)
Scriber.record(Test, :var=, 2)
Scriber.record(Test, :var=, 3)

Scriber.play
Test.var #=> 3