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 .