Persistable

Description

Persistable is a library for persisting IO-Data into any storage you like. It provides adapters for in-memory storage, file storage, mogile-fs storage and a fog gem powered cloud storage but can be easily extended with your own adapters.

Persistable has been harvested from project pkw.de of Caroo GmbH .

Download and Installation

Install the gem with the following command…

$ gem install persistable --source http://github.com/pkwde/persistable

Examples

class Image

  attr_accessor :name, :persistence_adapter

  def initialize(attributes = {})
    @name = attributes[:name]
    @persistence_data = attributes[:persistence_data]
  end

  def persistence_key
    self.name
  end

  def persistence_data
    @persistence_data
  end

  def persistence_data=(persistence_data)
    @persistence_data = persistence_data
  end

  def save_image_data
    persistence_adapter.write(self)
  end

  def load_image_data
    persistence_adapter.load(self)
  end

end

image = Image.new(:name => "foo", :persistence_data => File.open("/path/to/foo.jpg"))
image.persistence_adapter = Persistable::FSAdapter.new
image.save_image_data

new_but_same_image = Image.new(:name => "foo")
new_but_same_image.persistence_adapter = Persistable::FSAdapter.new
new_but_same_image.load_image_data

image.persistence_data == new_but_same_image.persistence_data

License

Copyright Caroo GmbH 2009

You may use, copy and redistribute this library under the same terms as Ruby itself or under the MIT license .