StorageRoom Gem

This gem provides read and write access to the StorageRoom API (storageroomapp.com).

Main Features

  • ActiveRecord/ActiveModel like interface.

  • Automatic creation of Entry Classes from a Collection, you don’t have to configure anything

  • Supports lazy-loading of associations (e.g. post.category will fetch a category transparently if it has not yet been loaded)

  • Supports caching through an identity map, so that Resources don’t have to be loaded multiple times

  • Easy file uploads and removals

  • Model Callbacks

Installation

To install the library execute:

sudo gem install storage_room

Basic Usage

This is a walkthrough with all steps you need to setup a devise entry, including model, migration, route files, and optional configuration.

StorageRoom.authenticate(YOUR_ACCOUNT_ID, YOUR_APPLICATION_API_KEY)
collection = StorageRoom::Collection.find('4ddaf68b4d085d374a000003')

entry = collection.entries.resources.first # collection.entries contains meta information, the resources key contains the returned objects

entry.name = 'Foobar'

if entry.save
  puts "Entry saved."
else
  puts "Could not save Entry: #{entry.errors.join(', )}"
end

You can find the documentation at rdoc.info/github/thriventures/storage_room_gem.

Long Running Processes

The gem caches responses from the API. If you have a long-running process such as a server or worker you probably want fresh data and you should clear the cache before each request:

StorageRoom::IdentityMap.clear

More Examples

See the examples folder.

TODO

Please refer to TODO file.

Maintainers

  • Sascha Konietzke

Bugs and Feedback

If you discover any bugs, please create an issue on GitHub.

github.com/thriventures/storage_room_gem/issues

License

MIT License. Copyright 2010 Thriventures UG (haftungsbeschränkt) - www.thriventures.com