by: @makevoid commits time range: Nov-Dec, 2009 language: Ruby
gem sources --add http://gems.github.com gem install ezmobius-redis-rb
geminstallgemcuttergemtumblegeminstallredismapper
create some models
## models.rb classMessage<RedisMapperproperty:title, :index=>true# enables Message.findproperty:textproperty:user_id# connects it to User (atm it doesn't support model's associations via methods but it will be added soon)endclassUser<RedisMapperproperty:name, :index=>trueend
your mainfile (?.rb)
require'rubygems'requireFile.expand_path(File.dirname(__FILE__)) +'/../lib/redismapper'# setupRedisMapper.setup(Redis.new:db=>14) @r = RedisMapper.db# load your modelsrequire'models'# clean dbRedisMapper.delete_db# insertu = User.create(:name=>"makevoid") Message.create(:title=>"Hello!", :text=>"Welcome in the world of redismapper...", :user_id=>u.id) u = User.create(:name=>"me") Message.create(:title=>"Hello!", :text=>"bla bla...", :user_id=>u.id) Message.create(:title=>"Hey", :text=>"bla bla..", :user_id=>u.id) # readputs"messages (#{Message.count}):"pMessage.all# Message.all(:select => :title) # faster, fetches only the titleputsputs"users (#{User.count}):"pUser.allputsputs"find an user:"pUser.first(:name=>"me")
output:
messages (3): [#<Message:0x1019c2410 @text="Welcome in the world of redismapper...", @title="Hello!", @id=1, @user_id="1">, #<Message:0x1019c1268 @text="bla bla...", @title="Hello!", @id=2, @user_id="2">, #<Message:0x1019c00c0 @text="bla bla..", @title="Hey", @id=3, @user_id="2">] users (2): [#<User:0x1019be590 @name="makevoid", @id=1>, #<User:0x1019bdd48 @name="me", @id=2>] find an user: #<User:0x1019bd1b8 @name="me", @id=2>