_.m is a port of Underscore.js to Objective-C.
Objective-C C Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Classes
Config
Tests
_.m.xcodeproj
.gitignore Moved over to proper CocoaPods test configuration Aug 8, 2012
CHANGELOG.md
LICENSE
Podfile Refactor fro latest Cocoapods Structure Dec 7, 2013
Podfile.lock
README.md
Rakefile Refactor fro latest Cocoapods Structure Dec 7, 2013
_.m.podspec Release 0.1.2 Dec 8, 2013

README.md

_.m

Version Platform

_.m is a port of Underscore.js to Objective-C. It strives to provide the fullest feature set possible in a way that is familiar to JavaScript developers (despite the differences between JavaScript and Objective-C).

To help achieve this vision, _.m uses SubjectiveScript.m to bring JavaScript-like syntax and features into Objective-C, and QUnit.m to port unit tests from JavaScript to Objective-C. You should check them out, too!

Full documentation can be found on the _.m Website

A Quick Taster

You can use familiar Underscore.js functions:

N* result = (N*) _.detect(AI(1, 2, 3), ^B(N* num){ return num.I * 2 == 4; });
equal(result.I, 2, @"found the first '2' and broke the loop");

and you can even use chaining:

A* lyrics = AO(
  @"I'm a lumberjack and I'm okay",
  @"I sleep all night and I work all day",
  @"He's a lumberjack and he's okay",
  @"He sleeps all night and he works all day"
);
O* counts = (O*) __(lyrics)
  .map(^(NSS* line, ...) { return line.split(@""); })
  .flatten(/* REQUIRED */ false )
  .reduce(^(O* hash, N* l, ... /* KEY, LIST */) {
    N* value = (N*) hash.getOrAdd(l, ^{ return N.I(0); });
    hash.set(l, N.I(value.I+1));
    return hash;
}, O.new).value();
ok(counts.get(@"a").I == 16 && counts.get(@"e").I == 10, @"counted all the letters in the song");

Usage

To run the example project; clone the repo, and run pod install from the Project directory first.

Requirements

Installation

_.m is available through CocoaPods, to install it simply add the following line to your Podfile:

pod "_.m"

Author

Kevin Malakoff, kmalakoff@gmail.com

License

_.m is available under the MIT license. See the LICENSE file for more info.