EasyRealm
EasyRealm is a micro-framework (less than 200 LOC) that helps you use Realm.
Versions guides
Swift | Realm | EasyRealm |
---|---|---|
3.0 | >= 2.4 | 2.0.1 |
3.2 / 4.0 | >= 3.1.0 | >= 3.0.0 |
4.2 | >= 3.10 | >= 3.4.0 |
Keys Features
EasyRealm import many features as :
- Deep cascade deleting
- Deep unmanaged object
- Get managed object from unmanaged object.
- Multithread Action (save / edit / delete / query)
Promise
EasyRealm make 4 promises :
- EasyRealm never transform secretly an unmanaged Object to a managed Object and vice-versa.
- EasyRealm let you use managed and unmanaged objects identically.
- EasyRealm never manipulate thread behind your back, you keep full control of your process flow.
- EasyRealm never handle Error for you.
Examples
Using
- No inheritance.
- No protocol.
- Import Framework
- Enjoy
Save
To save an object :
let pokemon = Pokemon()
try pokemon.er.save(update: true)
//OR
let managed = try pokemon.er.saved(update: true)
Edit
To edit an object :
let pokemon = Pokemon()
try pokemon.er.edit {
$0.level = 42
}
Delete
To delete an object :
let pokemon = Pokemon(name: "Pikachu")
try pokemon.er.delete()
//or
try pokemon.er.delete(with: .simple)
//or
try pokemon.er.delete(with: .cascade)
To delete all objects :
try Pokemon.er.deleteAll()
Queries
To query all objects of one type :
let pokemons = try Pokemon.er.all()
To query one object by its primaryKey :
let pokemon = Pokemon.er.fromRealm(with: "Pikachu")
Helping Variables
- isManaged :
pokemon.er.isManaged // Return true if realm != nil and return false if realm == nil
- managed :
pokemon.er.managed // Return the managed version of the object if one exist in Realm Database
- unmanaged :
pokemon.er.unmanaged // Return an unmanaged version of the object
Installation
EasyRealm is available through CocoaPods. To install it, simply add the following line to your Podfile:
CocoaPods
use_frameworks!
pod "EasyRealm", '~> 3.2.0'
Carthage
github 'PoissonBallon/EasyRealm'
Author
- PoissonBallon @poissonballon
License
EasyRealm is available under the MIT license. See the LICENSE file for more info.