ColinEberhardt/LinqToObjectiveC — pull request #3 by mugginsoft (2013-11-05 22:53:09+00:00)
Title: OS X friendly refactoring

You may not want to merge all of this as it changes the method signatures to make the code friendlier on OS X.

1. Public class category methods really need unique prefixes in complex environments where there may be many categories loaded. Category method collisions cause woe. I have used qe/QE for Query Extension throughout the refactoring. Perhaps not a big deal on iOS but certainly commonplace on OS X.

2. The QE macros (QEM) provide convenience in common situations. QEMKey uses ValueForKey to provide automatic boxing of non id types, like - (void *)monoObject below:

NSArray *distinctEmployees = [[payslips qeSelect:QEMKey(employee)] qeDistinct:QEMKey(monoObject)];

The tests all pass. I haven't updated the ReadMe yet to reflect the method prefixes, though I will if needs be.

Curiously I am targeting C# code with this!. The underlying data model is provided by EntityFramework running on Mono with Obj-C bindings generated by https://github.com/ThesaurusSoftware/Dubrovnik.