ReactiveCocoa/ReactiveCocoa — pull request #1001 by jspahrsummers (2013-12-12 09:19:44+00:00)
Title: [WIP] RACCommand-esque RACAction using RACSignalGenerator

**:warning: NOT READY TO MERGE :warning:**

_Depends on #997._

[![The Architect describing this pull request](http://images4.wikia.nocookie.net/__cb20091017235716/matrix/images/b/b5/1.gif)](http://www.youtube.com/v/ZKpFFD7aX3c?start=87&end=97&version=3)

This is the “If it ain't broke, don't fix it—but actually it's sorta broke, so fix it a little bit” version of (the class formerly known as) `RACCommand`.

Basically, restore most of the command interface, but apply some key improvements from `RACAction`, as originally proposed in #910:

* **A more intuitive name.** This should be more familiar to Cocoa developers, since it evokes the idea of target-action. _(Thanks to @paulcbetts for the suggestion.)_
* **Execution is _always_ serial.** If you want to do something more complicated (a la `RACCommand.allowsConcurrentExecution`), write it by hand. Uncommon cases should be hard.
* **More understandable usage.** `-[RACAction execute:]` is easy to understand and use, because it works just like a typical action method. It's pretty common to handle errors out-of-band anyways, so that method doesn't need to return a signal.

Sprinkle some `RACSignalGenerator` on top to recover `executionSignals` functionality, et voilà! Something that hopefully captures the best of all worlds. :weary::gun:

**To do:**

- [ ] Unit tests
- [ ] Replace any signal generators with actions in AppKit/UIKit bindings
- [ ] Update deprecation messages in `RACCommand` and elsewhere
- [ ] Update long-form documentation and examples
- [ ] CHANGELOG

@jonsterling