ReactiveCocoa/ReactiveCocoa — pull request #397 by Coneko (2013-03-25 18:33:06+00:00)
Title: Unifying RAC convenience macros.

A stab at unifying the three RAC convenience macros (`RAC`, `RACAble` and `RACBind`), as discussed in other issues.

I started by merging `RAC` with `RACBind` since the differences were small, all it took was have `RACBind` support signals as well as bindings.

`RACAble` presents a bigger challenge. The changes are trivial per se, but while `RAC` and `RACBind` are interchangeable as in blindly changing all instances of `RACBind` with `RAC` will work, throwing `RACAble` into the mix breaks it, since `RACBind(self.property) = RACBind(otherObject, property)` and `RAC(self.property) = RACAble(otherObject, property)` have different meanings.

Note that reasoning the other way is also possible: `RAC` and `RACAble` could be merged in a single macro, and `RACBind` left on it's own.

On one side leaving `RACAble` out makes sense because of `RACAbleWithStart` and possibly the new modifiers #383.

On the other side `RACBind` has the side effect of modifying the lvalue of an assignment, something that is very unintuitive and might better be isolated in it's own macro.