Skip to content

Releases: danthorpe/YapDatabaseExtensions

2.5.0

27 Mar 11:09
Compare
Choose a tag to compare

2.5.0

  1. [YDB-84]: Updates to Swift 2.2

No significant changes, just updated for Swift 2.2 :)

2.4.0

25 Mar 22:51
Compare
Choose a tag to compare

2.4.0

  1. [YDB-73, YDB-77]: Improvements to README and documentation. Thanks @cdzombak!
  2. [YDB-74]: Improvements to CI & automation.
  3. [YDB-78]: Annotations the code base with MARK: -. Thanks again @cdzombak.
  4. [YDB-81]: Corrects the spelling of CocoaPods - thanks @ReadmeCritic!
  5. [YDB-83]: Switches CI scripts to use scan and update the Cartfile to point directly at YapDatabase.
  6. [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

11 Nov 19:38
Compare
Choose a tag to compare

2.3.0

  1. [YDB-70, YDB-71]: Changes necessary for compatibility with YapDatabase 2.7.4 which added sub-module support for most extensions.
  • Currently this version is not available via CocoaPods, as I'm waiting for a new version of YapDatabase to be released.

2.2.0

21 Oct 14:56
Compare
Choose a tag to compare

2.2.0

  1. [YDB-55]: Removes some leftover references to Saveable.
  2. [YDB-58]: Fixes support for Metadata, removes MetadataPersistable entirely.
  3. [YDB-56]: Adds readMetadataAtIndex functional API.
  4. [YDB-57]: Adds readAll functional API
  5. [YDB-59]: Updates APIs to use SequenceType instead of Array.
  6. [YDB-60]: Fixes documentation issues.
  7. [YDB-61]: Makes async completion block arguments optional, default to .None.
  8. [YDB-62]: Restores the return value behavior of the write functional API.
  9. [YDB-64]: Adds missing sequence type for value with value metadata pattern. Somehow missed this earlier.
  10. [YDB-65]: Adds a small Curried API, which returns closures accepting transactions.
  11. [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

11 Oct 20:21
Compare
Choose a tag to compare

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:

  1. [YDB-42]: Refactors read & write API, correctly supporting metadata.
  2. [YDB-43]: Makes project cross-platform (iOS & Mac OS)
  3. [YDB-44]: Enables code coverage reporting with CodeCov.io, see reports here.
  4. [YDB-45]: Adds back functional API.
  5. [YDB-47]: Updates README.
  6. [YDB-48]: Removes Saveable, created ValueCoding as a standalone project and new dependency.

2.0.0

16 Sep 10:26
Compare
Choose a tag to compare

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

15 Sep 18:09
Compare
Choose a tag to compare

1.8.0

  1. [YDB-36]: Sets the required version of BrightFutures to the latest for Swift 1.2, which is 2.0.1.
  2. [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

01 Sep 20:35
Compare
Choose a tag to compare

1.7.0

  1. [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 of YapDB.Fetch values (which should be views) and a string mapper. Then execute usingTerm(term: String) with the search term supplied by the user to run the search.
  2. [YDB-26]: Adds some missing default parameters for the YapDB.SecondaryIndex wrapper.
  3. [YDB-27]: Removes an explicit unwrap which could cause a crash if pattern matching against value types.
  4. [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 an NSOperation 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 NSBlockOperations, 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. [YDB-30]: Expands the YapDB.Mappings type to support the full YapDatabaseViewMappings gamut.
  2. [YDB-31]: Silences a warning in the removeAtIndexes API.

1.6.0

09 Aug 22:34
Compare
Choose a tag to compare

1.6.0

  1. [YDB-22]: Adds YapDB.Fetch.Index which wraps YapDatabaseSecondaryIndex extension.
  2. [YDB-23]: Fixes a crash which has been observed in some cases in a Release configuration where writing a value type can fail to get the type’s Archiver.
  3. [YDB-24]: Just cleans up some of the code.

1.5.0

10 Jun 20:48
Compare
Choose a tag to compare

1.5.0

  1. [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.
  2. [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 to examples/iOS, although it doesn’t really do much, except provide some models.