square/PonyDebugger — pull request #46 by wlue (2013-02-03 08:53:47+00:00)
Title: Remote Logging and Object Introspection

Don't merge yet, I'm still writing the README and doing testing, but I wanted to get some eyes on while it's fresh in my mind.

This pull request adds remote logging via `PDLog()` and `PDLogObjects()` functions. It outputs the results into the Console tab of DevTools. This is the precursor to getting a functional REPL working for PonyDebugger.

`PDLog()` works like `NSLog()`. PDLogObjects() takes `NSObject`s and outputs them with full introspection. So doing `PDLogObjects("This is me:", [UIApplication sharedApplication])` would show the full text, and the introspectable application singleton.

Things that I did in this pull request:

- Updated PDTwitterTest, since Twitter deprecated their public timeline endpoint. The test app only uses search functionality. However, this is going to be deprecated at some point, so we'll have to find an alternative eventually.

- Added PDConsoleDomainController to handle console output.

- Removed PDArrayContainer/PDDictionaryContainer, and replaced it with implementations using categories. It simplified the code that creates PDRuntimeRemoteObjects, though it does make NSSet slower since order is never stored anywhere.