Sha256: 8e014a948639b83cad2f05f655c1309830425718a6ca9f5e15801c6308199988

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

# HellaRedis

It's-a hella-redis!

This gem is a wrapper that builds a connection pool of redis connections.  It also provides spies and test mode behavior to ease testing redis interactions.

## Usage

```ruby
# create
@redis =
  HellaRedis.new(
    timeout:  1,
    size:     5,
    redis_ns: "hella-redis-test",
    driver:   "ruby",
    url:      "redis://localhost:6379/0"
  ) # => HellaRedis:ConnectionPool instance

# it's actually a pool of connections
@redis.connection do |connection|
  # checks out a connection so you can do something with it
  # will check it back in once the block has run
end
```

### Test Mode

```ruby
ENV["HELLA_REDIS_TEST_MODE"] = "yes" # set to anything "truthy"

@redis_spy =
  HellaRedis.new({
    timeout:  1,
    size:     5,
    redis_ns: "hella-redis-test",
    driver:   "ruby",
    url:      "redis://localhost:6379/0"
  }) # => HellaRedis::ConnectionPoolSpy instance

@redis_spy.connection do |connection|
  connection # => HellaRedis::ConnectionSpy instance
  connection.info
end

@redis_spy.calls.size # => 1
@redis_spy.calls.first.tap do |call|
  call.command # => :info
  call.args    # => nil
  call.block   # => nil
end

@redis_spy.connection_calls.size # => 1
@redis_spy.connection_calls.first.tap do |connection_call|
  connection_call.block # => block instance
end

Assert.stub(@redis_spy.connection_spy, :get).with("some-key"){ "some-value" }
value = @redis_spy.connection do |connection|
  connection.get("some_key")
end
assert_that("some-value").equals(value)
@redis_spy.calls.size # => 1 (unchanged b/c we stubbed the :get method)
```

## Installation

Add this line to your application's Gemfile:

    gem "hella-redis"

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install hella-redis

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hella-redis-0.5.0 README.md