<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -33,12 +33,15 @@ class Redis
     &quot;sismember&quot; =&gt; true,
     &quot;echo&quot;      =&gt; true,
     &quot;getset&quot;    =&gt; true,
-    &quot;smove&quot;     =&gt; true
+    &quot;smove&quot;     =&gt; true,
+    &quot;zadd&quot;      =&gt; true,
+    &quot;zrem&quot;      =&gt; true,
+    &quot;zscore&quot;    =&gt; true
   }
-
+  
   MULTI_BULK_COMMANDS = {
-    &quot;mset&quot;   =&gt; true,
-    &quot;msetnx&quot; =&gt; true
+    &quot;mset&quot;      =&gt; true,
+    &quot;msetnx&quot;    =&gt; true
   }
 
   BOOLEAN_PROCESSOR = lambda{|r| r == 1 }
@@ -49,6 +52,8 @@ class Redis
     &quot;sadd&quot;      =&gt; BOOLEAN_PROCESSOR,
     &quot;srem&quot;      =&gt; BOOLEAN_PROCESSOR,
     &quot;smove&quot;     =&gt; BOOLEAN_PROCESSOR,
+    &quot;zadd&quot;      =&gt; BOOLEAN_PROCESSOR,
+    &quot;zrem&quot;      =&gt; BOOLEAN_PROCESSOR,
     &quot;move&quot;      =&gt; BOOLEAN_PROCESSOR,
     &quot;setnx&quot;     =&gt; BOOLEAN_PROCESSOR,
     &quot;del&quot;       =&gt; BOOLEAN_PROCESSOR,
@@ -97,7 +102,14 @@ class Redis
     &quot;set_move&quot;             =&gt; &quot;smove&quot;,
     &quot;set_unless_exists&quot;    =&gt; &quot;setnx&quot;,
     &quot;rename_unless_exists&quot; =&gt; &quot;renamenx&quot;,
-    &quot;type?&quot;                =&gt; &quot;type&quot;
+    &quot;type?&quot;                =&gt; &quot;type&quot;,
+    &quot;zset_add&quot;             =&gt; &quot;zadd&quot;,
+    &quot;zset_count&quot;           =&gt; 'zcard',
+    &quot;zset_range_by_score&quot;  =&gt; 'zrangebyscore',
+    &quot;zset_reverse_range&quot;   =&gt; 'zrevrange',
+    &quot;zset_range&quot;           =&gt; 'zrange',
+    &quot;zset_delete&quot;          =&gt; 'zrem',
+    &quot;zset_score&quot;           =&gt; 'zscore'
   }
 
   DISABLED_COMMANDS = {</diff>
      <filename>lib/redis.rb</filename>
    </modified>
    <modified>
      <diff>@@ -415,6 +415,103 @@ describe &quot;redis&quot; do
     @r.sort('dogs', :get =&gt; ['dog:*:name', 'dog:*:breed'], :limit =&gt; [0,1], :order =&gt; 'desc alpha').should == ['taj', 'terrier']
   end
   #
+  it &quot;should be able count the members of a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_count('zset').should == 1
+    @r.delete('set')
+    @r.delete('zset')
+  end
+  # 
+  it &quot;should be able add members to a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_range('zset', 0, 1).should == ['set']
+    @r.zset_count('zset').should == 1
+    @r.delete('set')
+    @r.delete('zset')
+  end
+  # 
+  it &quot;should be able delete members to a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.type?('set').should == &quot;set&quot;
+    @r.set_add &quot;set2&quot;, 'key3'
+    @r.set_add &quot;set2&quot;, 'key4'
+    @r.type?('set2').should == &quot;set&quot;
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_count('zset').should == 1
+    @r.zset_add 'zset', 2, 'set2'
+    @r.zset_count('zset').should == 2
+    @r.zset_delete 'zset', 'set'
+    @r.zset_count('zset').should == 1
+    @r.delete('set')
+    @r.delete('set2')
+    @r.delete('zset')
+  end
+  # 
+  it &quot;should be able to get a range of values from a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.set_add &quot;set2&quot;, 'key3'
+    @r.set_add &quot;set2&quot;, 'key4'
+    @r.set_add &quot;set3&quot;, 'key1'
+    @r.type?('set').should == 'set'
+    @r.type?('set2').should == 'set'
+    @r.type?('set3').should == 'set'
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_add 'zset', 2, 'set2'
+    @r.zset_add 'zset', 3, 'set3'
+    @r.zset_count('zset').should == 3
+    @r.zset_range('zset', 0, 3).should == ['set', 'set2', 'set3']
+    @r.delete('set')
+    @r.delete('set2')
+    @r.delete('set3')
+    @r.delete('zset')
+  end
+  # 
+  it &quot;should be able to get a reverse range of values from a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.set_add &quot;set2&quot;, 'key3'
+    @r.set_add &quot;set2&quot;, 'key4'
+    @r.set_add &quot;set3&quot;, 'key1'
+    @r.type?('set').should == 'set'
+    @r.type?('set2').should == 'set'
+    @r.type?('set3').should == 'set'
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_add 'zset', 2, 'set2'
+    @r.zset_add 'zset', 3, 'set3'
+    @r.zset_count('zset').should == 3
+    @r.zset_reverse_range('zset', 0, 3).should == ['set3', 'set2', 'set']
+    @r.delete('set')
+    @r.delete('set2')
+    @r.delete('set3')
+    @r.delete('zset')
+  end
+  # 
+  it &quot;should be able to get a range by score of values from a zset&quot; do
+    @r.set_add &quot;set&quot;, 'key1'
+    @r.set_add &quot;set&quot;, 'key2'
+    @r.set_add &quot;set2&quot;, 'key3'
+    @r.set_add &quot;set2&quot;, 'key4'
+    @r.set_add &quot;set3&quot;, 'key1'
+    @r.set_add &quot;set4&quot;, 'key4'
+    @r.zset_add 'zset', 1, 'set'
+    @r.zset_add 'zset', 2, 'set2'
+    @r.zset_add 'zset', 3, 'set3'
+    @r.zset_add 'zset', 4, 'set4'
+    @r.zset_count('zset').should == 4
+    @r.zset_range_by_score('zset', 2, 3).should == ['set2', 'set3']
+    @r.delete('set')
+    @r.delete('set2')
+    @r.delete('set3')
+    @r.delete('set4')
+    @r.delete('zset')
+  end
+  
   it &quot;should provide info (INFO)&quot; do
     [:last_save_time, :redis_version, :total_connections_received, :connected_clients, :total_commands_processed, :connected_slaves, :uptime_in_seconds, :used_memory, :uptime_in_days, :changes_since_last_save].each do |x|
     @r.info.keys.should include(x)</diff>
      <filename>spec/redis_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>edfb1f6d135d4af03b43b896508e0f08842020fb</id>
    </parent>
  </parents>
  <author>
    <name>Ezra Zygmuntowicz</name>
    <email>ez@engineyard.com</email>
  </author>
  <url>http://github.com/ezmobius/redis-rb/commit/4c07ac06e94e628ad3ce16dde6729c6ca418bc62</url>
  <id>4c07ac06e94e628ad3ce16dde6729c6ca418bc62</id>
  <committed-date>2009-11-04T13:52:57-08:00</committed-date>
  <authored-date>2009-11-04T13:52:57-08:00</authored-date>
  <message>adding support + specs for zset and friends</message>
  <tree>2d214549958bd004627e9ad6595bb0586cedfcc5</tree>
  <committer>
    <name>Ezra Zygmuntowicz</name>
    <email>ez@engineyard.com</email>
  </committer>
</commit>
