You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Laurent 4c3cba20bd fix issue with inMemory parameter not being used 1 month ago
LeStorage fix issue with inMemory parameter not being used 1 month ago
LeStorage.xcodeproj Adds StoreLibrary to manage stores + fix init bug 5 months ago
LeStorageTests Adds storeParent to manage substorage directories 6 months ago
.gitignore first commit for LeStorage \o/ 2 years ago
README.md Add websockets 12 months ago

README.md

LeStorage

Rules

  • To store data in the json format inside files, you first need to create some model class, for example Car
  • You make Car inherit ModelObject, and implement Storable
  • To get the StoredCollection that manages all your cars and stores them for you, you do Store.main.registerCollection() to retrieve a collection. LeStorage stores data as JSON files inside the storage directory.

Multi Store

You can store collections inside separate folders by creating other stores:

  • Use StoreCenter.main.store(identifier: id, parameter: param) to create a new store. The directory will be named after the identifier under the storage directory. The parameter is used to retrieve data from server as the GET requests will add the parameter as an argument in the URL, like https://www.myurl.net/api/cars/?param=id

Sync

  • When registering your collection, you can choose to have it synchronized. To do that:
    • Call StoreCenter.main.configureURLs
    • Pass synchronized: true when registering the collection
  • For each of your ModelObject, make sure that resourceName() returns the resource path of the endpoint, for example "cars"
  • Synchronization is expected to be done with a rest_framework API on a django server
  • On Django, when using cascading delete foreign, you'll want to avoid sending useless delete API calls to django, so override the deleteDependencies function of your ModelObject and call deleteDependencies on the collection for the objects you also want to delete to reproduce the cascading effect