Small lib which helps with extending your classes or modules with redis (and nest) goodies.
gem install redis-aid # with sudo if necessary
You can configure global redis connection:
Redis::Aid.redis = Redis.new
class MyClass include Redis::Aid def foo redis.get(:foo) end end
Powered by nest:
class MySecondClass include Redis::Aid::Ns(:foo) def bar redis[:bar].get # => value of 'foo:bar' end def spam_and_eggs redis[:spam][:eggs].get # => value of 'foo:spam:eggs' end
Custom redis connection for each class? No problem:
class MyThirdClass include Redis::Aid self.redis = Redis.connect(:host => "host.com") end
Redis Aid provides Railtie and configuration generator for Ruby On Rails (only Rails 3). All you have to do is add redis-aid to your `Gemfile`:
gem 'redis-aid', '>= 0.1'
and require railtie within your `config/application.rb`:
require "rails/all" require "redis/railtie" # ...
Now you can generate configuration files with command:
$ rails generate redis:install
And that's all. Now you can use redis-powered classes anywhere you want to. You have also access to redis client object via your application instance, eg:
Rails.application.redis # => #<Redis client v2.1.1 connected ...>
You can also integrate Redis Aid with Redis Objects very easy:
Redis::Aid.redis = Redis.new(:host => 'myhost.com', :db => 10) class Foo include Redis::Objects include Redis::Aid # ... end class Bar include Redis::Objects include Redis::Aid::Ns(:bar) # ... end
Remember that includes order is important here. You have to include Redis::Aid last, then it will overwrite #redis and #redis= methods previously declared and used by Redis::Objects module.
Fork the project.
Make your feature addition or bug fix.
Add tests for it. This is important so I don't break it in a future version unintentionally.
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 Kriss 'nu7hatch' Kowalik. See LICENSE for details.