CoreDataのためのNSFetchRequestをArelみたいに作るためのライブラリを公開しました

https://github.com/soutaro/Arelish

CoreDataを使わずにObjective Cのプログラムを書いていると、馬鹿みたいなことを馬鹿みたいに繰り返しやるはめになって馬鹿みたいである。しかしCoreDataを使ったとしても、NSFetchRequestを作るために馬鹿みたいなプログラムを馬鹿みたいに何行も書かなくちゃいけなくて、やっぱり馬鹿みたいである。

こういう状況を改善するために、Arelみたいに条件が書けたり書けなかったりするライブラリを作りました。

Arelish* arel = [Arelish arelishWithEntity:NSStringFromClass([YourCoreDataModel class]) context:managedObjectContext];
arel = [[arel where:@"parent" is:self] where:@"status" IN:[NSNumber numberWithInt:0],[NSNumber numberWithInt:1],nil];

NSFetchRequest* request = [arel request];

arelwhereとかorderとか、そういういつものメソッドが定義されているので、それを呼んであげて、最後に[arel request]とかするとNSFetchRequestが得られる。コピーしまくりなので、ちょっとメモリとautoreleasepoolには優しくない作りである。

[]を書きまくりで、ちょっと残念な気分になるが、Lispの練習だと思って耐えれば良い。