Minimal `#watch` support

Change-Id: I92f5bce4bf5efe54df607597a58129bd2d6e094b
Reviewed-on: https://gerrit.causes.com/12471
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Cut mock_redis 0.5.2 release

Change-Id: Id1b9eae90a9e04bfddefaeb216e744a071140d68
Reviewed-on: https://gerrit.causes.com/12472
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Fix specs with redis-rb 3.0.2

Some internals changed with how the real Redis gem handles invalid
:limit options. Rather than trying to play cat-and-mouse with
implementation (the fact that it now assumes :limit is an Array), just
expect that the command will fail.

Change-Id: I3c2a4699353409a1e8a9233976d5097fd9c2c078
Reviewed-on: https://gerrit.causes.com/13595
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Support MockRedis#location as MockRedis#id.

Change-Id: Iffe3996c5b2ae0c088343aa0e5ee29ad167ed0b9
Reviewed-on: https://gerrit.causes.com/13592
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Clean up connection specs

- break test into its two distinct components: `.new` and `.connect`
- use `subject` and `its` blocks where appropriate
- use `let` syntax to de-dupe connection strings
- separate `#id` from `#location` tests

Change-Id: Id2da12d6e92543b59ce5f2a0e820fe73f805a12d
Reviewed-on: https://gerrit.causes.com/13593
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Cut mock_redis 0.5.3 release

Change-Id: I2d93f5b713645bf3e58f4b779b70e2bfe4257425
Reviewed-on: https://gerrit.causes.com/13594
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
specs pass with 2.6 final Redis release

Change-Id: Ifb26a70189b3fa4d5dc5ee3729039b64d4736755
Reviewed-on: https://gerrit.causes.com/13958
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
added incrbyfloat operation

Change-Id: I6ce5a62bcaf2dd211a5122f4d1a0be93d3e67c12
Reviewed-on: https://gerrit.causes.com/13959
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Cut 0.5.4 release

Change-Id: Id1bd4830b2820d50daf0d6aa17ea1966b726903c
Reviewed-on: https://gerrit.causes.com/13960
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Update readme to reflect Redis backend version change

Change-Id: I13bdead9fb89140fb7f487f0681356733d362aac
Reviewed-on: https://gerrit.causes.com/13967
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Elliot Block <elliot.block@causes.com>
Fixed lrange to return [] when start is too large

It was returning nil when the start index was beyond the end of the list.

Change-Id: I601f56175e2ea6805e3845d4285a952cddab7e3b
Reviewed-on: https://gerrit.causes.com/13971
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Fix typo in shared example of zset spec

Change-Id: Ie4144413a19c07a10f1dd66c234eb6a3e7e4e674
Reviewed-on: https://gerrit.causes.com/13981
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Fixed list methods to accept string indexes.

lindex, lrange, lset, and ltrim take an index or a start and stop range that
can be strings (representing integers).

Change-Id: I47f27f24d9f719d0fe5510efe1b13acb17a9db82
Reviewed-on: https://gerrit.causes.com/14012
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Fix zcount to support exclusive ranges

Change-Id: I3217a9d91c6d54809188c400299a6e18c78da003
Reviewed-on: https://gerrit.causes.com/14095
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Cut 0.5.5 release

Change-Id: Ie68b35a2311d653fdbdeeaec292f334ce88a11ea
Reviewed-on: https://gerrit.causes.com/14132
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Start of sorting implementation

Change-Id: I947efb38e7c4e47e6d401aa20c1d21dae0cb9c15
Reviewed-on: https://gerrit.causes.com/14197
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Break up sort method into composable methods

Change-Id: I4684c97f99b62516d98f68cace7830e75016afb5
Reviewed-on: https://gerrit.causes.com/14198
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Use more fluent "it" descriptions

Change-Id: Ibe205e835783b9d96d790bc0889c23cd668ae75b
Reviewed-on: https://gerrit.causes.com/14199
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Add coverage for lists and zsets

Change-Id: I448dd945fed01aef3ae0222c46855f3c446077cb
Reviewed-on: https://gerrit.causes.com/14200
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Clean up whitespace and sort procs

Aligning on equals to appease my inner neat-freak. Define ascending and
descending as constant `Proc`s, since they don't need to be instantiated
every time.

Change-Id: Idd9e63c6b63ead506b3ada1052a50e6809093914
Reviewed-on: https://gerrit.causes.com/14202
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>