Releases: danthorpe/YapDatabaseExtensions
2.5.0
2.4.0
2.4.0
- [YDB-73, YDB-77]: Improvements to README and documentation. Thanks @cdzombak!
- [YDB-74]: Improvements to CI & automation.
- [YDB-78]: Annotations the code base with
MARK: -
. Thanks again @cdzombak. - [YDB-81]: Corrects the spelling of CocoaPods - thanks @ReadmeCritic!
- [YDB-83]: Switches CI scripts to use
scan
and update the Cartfile to point directly at YapDatabase. - [YDB-82]: Updates CI pipeline to support Swift 2.1 & Swift 2.2 based branches.
Sorry this all took so long to get released - kinda dropped off my radar. Thanks to @cdzombak for improving the overall readability of the codebase!
2.3.0
2.2.0
2.2.0
- [YDB-55]: Removes some leftover references to Saveable.
- [YDB-58]: Fixes support for Metadata, removes
MetadataPersistable
entirely. - [YDB-56]: Adds readMetadataAtIndex functional API.
- [YDB-57]: Adds readAll functional API
- [YDB-59]: Updates APIs to use SequenceType instead of Array.
- [YDB-60]: Fixes documentation issues.
- [YDB-61]: Makes async completion block arguments optional, default to .None.
- [YDB-62]: Restores the return value behavior of the write functional API.
- [YDB-64]: Adds missing sequence type for value with value metadata pattern. Somehow missed this earlier.
- [YDB-65]: Adds a small Curried API, which returns closures accepting transactions.
- [YDB-66]: Updates the Persistable write API - no longer needs an intermediary generic type. Has correct return values.
Thanks a lot to Ryan (@aranasaurus) for helping me with all these changes - effectively a rewrite of the whole framework.
2.1.0
2.1.0
This is a a pretty big release, with some breaking changes to be aware of. The significant changes are:
ValueCoding
The Saveable
(and associated) protocol(s) have been removed from the project. They have been renamed to be clearer and moved into their own project/pod called ValueCoding. See #48.
New API
There is now a new read/write/remove "property" API available to types which implement Persistable
. In addition, now metadata is correctly supported in YapDatabase. The single MetadataPersistable
protocol allows for optional metadata which does not need to be encoded into the primary object. See #42
OS X
Hello Mac OS X developers! The project and podspec now correctly builds OS X frameworks. See #43.
Quality
I've been working really hard to make sure that the code is well tested, feel free to browse the tests. But, I've also got code coverage reports working with new Xcode 7 coverage data, on CodeCov. Currently coverage is 80%, but all APIs are tested. The YapDB
nested types for views, queries, filters etc are poorly tested at the moment (~ 25%). Also, documentation needs a bit a bit more work, but it's steadily improving. See #44, #47.
Full change log:
- [YDB-42]: Refactors read & write API, correctly supporting metadata.
- [YDB-43]: Makes project cross-platform (iOS & Mac OS)
- [YDB-44]: Enables code coverage reporting with CodeCov.io, see reports here.
- [YDB-45]: Adds back functional API.
- [YDB-47]: Updates README.
- [YDB-48]: Removes
Saveable
, created ValueCoding as a standalone project and new dependency.
2.0.0
2.0.0
Release for Swift 2.0.
There are some changes in 2.0.0.
Improved Syntax for archiving & unarchiving
Thanks to protocol extensions in Swift 2.0, your types which implement Saveable
and Persistable
will now get some convenience APIs for free:
static func unarchive(object: AnyObject?) -> Self?
static func unarchive(objects: [AnyObject]) -> [Self]
static func archive(value: Self?) -> AnyObject?
static func archive(values: [Self]) -> [AnyObject]
This means, that previously with Swift 1.2, code would look like this:
if let person: Person = valueFromArchive(object) {
println("Unarchived person: \(person.name)")
}
But with Swift 2.0, it now looks like this...
if let person = Person.unarchive(object) {
print("Unarchived person: \(person.name)")
}
The README and docs will be updated over this week as the dust settles.
1.8.0
1.8.0
- [YDB-36]: Sets the required version of BrightFutures to the latest for Swift 1.2, which is 2.0.1.
- [YDB-37]: Sets the required version of PromiseKit to the latest for Swift 1.2, which is 2.2.1 (as submitted to CocoaPods).
Also updates to latest version of YapDatabase, which is version 2.7, which introduced breaking changes to View block types.
1.7.0
1.7.0
- [YDB-25]: Adds
YapDB.Search
to aid with running FTS queries. An example of using this will be forthcoming (probably after Swift 2.0 has settled). But essentially, you can initialize it with your db, an array ofYapDB.Fetch
values (which should be views) and a string mapper. Then executeusingTerm(term: String)
with the search term supplied by the user to run the search. - [YDB-26]: Adds some missing default parameters for the
YapDB.SecondaryIndex
wrapper. - [YDB-27]: Removes an explicit unwrap which could cause a crash if pattern matching against value types.
- [YDB-29]: Adds support to
YapDatabaseConnection
for writeBlockOperation (NSBlockOperation
), write and remove APIs. This is great if you want to perform a number of writes of different types in the same transaction inside of anNSOperation
based architecture, as you can do:
queue.addOperation(connection.writeBlockOperation { transaction in
transaction.write(foo)
transaction.write(bar)
transaction.remove(bat)
})
If you're using my Operations
framework, as these operations are NSBlockOperation
s, use ComposedOperation
to attach conditions or observers. E.g.
let write = ComposedOperation(connection.writeBlockOperation { transaction in
transaction.write(foo)
transaction.write(bar)
transaction.remove(bat)
})
write.addCondition(UserConfirmationCondition()) // etc etc
queue.addOperation(write)
1.6.0
1.5.0
1.5.0
- [YDB-19]: Implements Saveable on YapDB.Index. This makes it easier to store references between YapDatabase objects. In general this is preferable to storing references as
let fooId: Foo.IdentifierType
. - [YDB-21]: Restructures the project. The framework is now in an Xcode project in
framework
, with its associated unit tests in place. This is in preparation for Xcode 7, to get code coverage of the framework. The Example has been moved toexamples/iOS
, although it doesn’t really do much, except provide some models.