calabash/calabash-ios — pull request #455 by jmoody (2014-07-31 19:25:07+00:00)
Title: optionally control the uia communication strategy

## motivation

There are two ways to interact with the UIA API:

1. read and write UIA commands from NSUserDefaults standardUserDefaults (aka 'fast') using the UIATarget API
2. read and write UIA commands on the test host machine (aka 'run loop') using the UIAHost API

In Xcode 6/iOS 8, the UIAApplication preferences functions are broken. [1] The obvious choice was trying to fall back to the 'run loop' strategy. Alas, the UIAHost.performTaskWithPathArguments() is also broken, so the 'run loop' strategy does not work either.

This PR introduces a new environmental variable UIA_STRATEGY. There are two valid values: 'http' and 'run_loop'. If UIA_STRATEGY is not defined, the default value is 'http'.

The variable documented in lib/calabash-cucumber/environment-variables.rb. The documentation is public, but should be transitioned to private ASAP.

**NB** This does not fix or enable testing against Xcode 6 / iOS 8.

cc @krukow - This is a little more permanent than I would like, but I needed to get these changes off my machine so I can continue working on iOS 8/Xcode 6 support.

## tests

CI now grabs the run_loop gem master from and runs against it rather than the release/pre-release version. The gemspec will need to be rolled back before release.

## links

- [1] http://openradar.appspot.com/radar?id=5246353689018368 : 17821465
- [2] http://openradar.appspot.com/radar?id=5802149032230912 : 17856691