Permalink
Commits on Feb 12, 2014
  1. Update bundled rebar

    Not sure why we're still distributing rebar, but we are, so
    it may as well be up to date.
    committed Feb 12, 2014
Commits on Feb 10, 2014
  1. Bump version to 2.8.5-er-1.7.9

    All tests pass.
    committed Feb 10, 2014
  2. Add support for 2.8.5 and multi-arity commands

    This is the start of big changes for er.
    
    er now directly implements all commands as of Redis 2.8.5 (some
    of the new commands aren't hooked up to erlang-specific type
    decoders yet.  Fix as necessary).
    
    er now also generates multi-arity commands for Redis commands
    that support var args.  Example: er now generates multi-functions
    like: er:mget/3, er:mget/4, er:mget/5, ..., er:mget/16. (16 by
    default, but you can increase it arbitrarily high *or* you can
    just add a list of the other arguments you want as well.)
    
    er maintains a list of Redis functions that aren't var arg
    capable (like GET versus MGET), so the fixed-arg functions
    don't get multi-arg counterparts.
    
    Also, er_server.lfe is gone because er_pool is the proper way
    of creating named and long-lived connections to your Redis server.
    
    Coming soon: erlang maps instead of proplists for some return
    values, moving to poolboy for the connection pool, support
    for sentinel, cluster, and live failover mechanisms.
    committed Feb 10, 2014
  3. Add shell scripts to verify Redis command coverage

    The scripts read the command table directly from redis.c
    and can compare the redis command listing versus
    the commands er implements directly.
    
    (You can always run any command by passing a list to er_redis:q/2,
    but it helps to have proper commands with proper argumet decoders.)
    committed Feb 10, 2014
  4. Update to LFE master instead of LFE-thee-years-old

    The major change is LFE doesn't allow dot list deconstruction
    anymore, so (x . xs) now must be (cons x xs), and (#b("binary"))
    must now be (list #b("binary")).
    
    All tests pass as of this commit with LFE master 89ff3150d2.
    committed Feb 9, 2014
  5. Fix tests to match ZADD/ZREM changes

    All tests pass.
    committed Feb 9, 2014
  6. Fix zrem/zadd return values to be integers

    Was true/false a long time ago, methinks.
    committed Oct 8, 2012
  7. Help repair a unicode storage problem.

    Hopefully?
    committed Sep 30, 2012
  8. Update LFE and fix four misconfigured tests.

    All 195 tests pass.
    committed Oct 19, 2011
  9. Bump version to 2.4-er-1.5.3

    Minor bugfix for start_link'ing nameless servers
    Minor feature for less DRY when creating children in supervisors
    committed Jul 4, 2011
  10. Fix nameless start_link

    committed Jul 4, 2011
  11. Bump version to 2.4-er-1.5

    Supports redis 2.2 and 2.4 (and 2.9, just not command complete yet)
    There is full varadic command support if you use lists as arguments
    to er functions.
    Example: er:get(Server, [key1, key2, key3])
    committed Jul 2, 2011
  12. Add eru:hcopy/3 with tests

    Now we can copy redis hashes!
    
    All 195 tests pass.
    committed Apr 7, 2011
  13. Add untested attempt at creating primary/backup er_pool clusters

    This module hasn't been run or tested.  It compiles with
    no errors or warnings.  At worst, it crashes on start.
    
    More testing/fixes/viability is forthcoming.
    committed Mar 22, 2011
  14. Kill pool if redis goes away or becomes unreachable

    Before, we would loop on a dead redis instance in the hopes it would
    quickly be restarted.  Now we just die and let supervisors reload
    as necessary.
    committed Mar 22, 2011
  15. Kill er_redis on connection error

    Before, we kept the er_redis alive but without a socket.  Now we
    don't allow dead er_redises to linger.
    committed Mar 22, 2011
  16. Add tests for lpop, rpop, blpop, brpop commands

    Also fix in-line documentation of the test list.
    committed Mar 21, 2011
  17. Cleanup end-of-line whitespace

    committed Mar 21, 2011
  18. Add ping and echo commands with tests

    All 187 tests pass.
    committed Mar 21, 2011
  19. Bump version to 2.2-er-1.3 -- now with transaction support

    There are a series of in-progress redis<->lfe<->erlang helper macros
    in progress too.  They'll turn into a nice system soon enough.
    committed Jan 8, 2011
  20. Add transaction (multi/exec/discard) support.

    Turns out everything has a potential return type of <<"queued">> when
    using transactions.  Ugly, but doable.  We may want to make the return
    functions nested so we could have the <<"queued">> check in one place.
    
    The give-me-a-fun-and-i-do-you-a-txn style is inspired by mnesia.  Just
    give er:er_transaction/2 or erp:er_transaction/1 a one-airity fun, use
    the parameter to the fun as your connection back to redis, and
    everything you need will Just Work.
    committed Jan 8, 2011
  21. Make exec/discard clean up, fix shutdown, fix reserved back to normal

    Once you exec, you are no longer reserved.  Same for discard.
    
    Shutdown now actually shuts down the er_pool.
    
    Reserved er_pools were evaporating if they crashed.  Now if a
    reserved er_pool crashes, a new er_pool is spawned into the available
    pool again.
    committed Jan 8, 2011
  22. Add auto-expansion by 'counter and defkey-suite explosions

    Example: (defkey-suite user (name addrs friends posts)).
    The above one line generates generates 12 functions (each function
    is duplicated.  One has colons and its duplicate has underscores
    instead of colons to make calling from regular erlang easier):
    counter:user()
    user:N(N)
    user:N:name(N)
    user:N:addrs(N)
    user:N:friends(N)
    user:N:posts(N)
    committed Jan 5, 2011
  23. Make defkey auto-generate functions with underscores too

    Now (defkey (user N stories)) makes two functions:
    user:N:stories(N) and user_N_stories(N).  They both do the same
    thing (which is, return <<"user:N:stories">>).
    
    The underscore functions play nicer with regular erlang.
    committed Jan 4, 2011
  24. Make defkey even more automatic -- no function name required

    Also removing the include from defkey include to make it easier
    to include defkey in other applications directly from the deps/
    directory.
    committed Jan 3, 2011
  25. Add redis key maker function generator for future evil plans

    i.e. (defkey key_comic_article (comic ComicNum article ArticleNum)) makes:
    key_comic_article(ComicNum, ArticleNum) ->
      eru:er_key(comic, ComicNum, article, ArticleNum).
    
    So calling key_comic_article(6, 12) generates <<"comic:6:article:12">>
    committed Jan 3, 2011
  26. Add new base history for entire er repo

    er started out as a fork of another repository, but I quickly
    rewrote so much code of the broken original implementation,
    that the entire original repository ceased to have any code
    in this fork.
    
    But, github still showed the original parentage of this repository
    which made it look like er is "just a fork" instead of an
    entire project full of creativity, insight, and
    developmental awesomeness.
    
    So, under great pains, I'm truncating the history of er to this
    date.  This will render all commit references to the prior
    repository useless, for which I am sorry.  You are better off
    deleting your old repository and re-checking out this one.
    
    Please forward all complaints to management.
    committed Feb 10, 2014