redis_model 0.1.0.pre3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7a542c893f6a0451c7e008f352c6ed233696177
4
- data.tar.gz: ee2e0ba63aabc72f0eaa61237d117ab0fef4ea9b
3
+ metadata.gz: 24e2a96b8cb23085ea04a00d6b724bad2cd2dc3c
4
+ data.tar.gz: 1b8e76b298b35262e60622763cafcdbf1cc9b676
5
5
  SHA512:
6
- metadata.gz: ee8f88e7a912a8388b6b6a71c4c57df60b2c0f9ad0ff570a1497d512cc967dad0357a2a5ff8d794e9dc648c9354b7818a2c5095f754c5b77a3f2fa368aec5014
7
- data.tar.gz: 4083958ab4af9bac45607e21fdb14989f350096a38882de0c6b0e045eae2579f8a0f0f0158ccddaf8b9bebcd1a3d8535646fc49c236fabc9fc61f088d1449562
6
+ metadata.gz: 006173a4ef7c04224396e6f0fbcef54c31b553781a1c00bfc07d86dcc421a291e6959d4aafe879530cb3699346228db85dd360431e81a74b62df30f4d88065f1
7
+ data.tar.gz: f7098aa9a4162d1c5000f8ac6cc9a062ed3cd9800f68cfd49a91dcb1290ff0e2e85b6e6e8c779ea6dae8b78e0f1dc515c8c835138c469972f507ad55a867463d
@@ -179,6 +179,17 @@ module RedisModel
179
179
 
180
180
  result
181
181
  end
182
+
183
+ # Public: Obtain rank-sampled keys from the sorted set.
184
+ #
185
+ # count - Number of keys to sample
186
+ #
187
+ # Returns Array of sampled keys.
188
+ def sample(count = 1)
189
+ (0...count).to_a.sample(count).map do |sampled_rank|
190
+ connection.zrevrange(key_label, sampled_rank, sampled_rank)
191
+ end.compact.map(&:first)
192
+ end
182
193
  end
183
194
  end
184
195
  end
@@ -1,3 +1,3 @@
1
1
  module RedisModel
2
- VERSION = '0.1.0.pre3'
2
+ VERSION = '0.1.0'
3
3
  end
data/lib/redis_model.rb CHANGED
@@ -3,6 +3,7 @@ require 'time'
3
3
 
4
4
  require 'redis'
5
5
  require 'active_support/inflector'
6
+ require 'active_support/time'
6
7
 
7
8
  require "redis_model/version"
8
9
  require 'redis_model/configurations'
@@ -34,4 +35,8 @@ module RedisModel
34
35
  yield configurations if block_given?
35
36
  end
36
37
  end
38
+
39
+ module Helpers
40
+ autoload :SortedSetPaginator, 'redis_model/helpers/sorted_set_paginator'
41
+ end
37
42
  end
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'redis_model/helpers/sorted_set_paginator'
3
2
 
4
3
  describe RedisModel::Helpers::SortedSetPaginator do
5
4
  let(:klass) { dynamic_class(RedisModel::Base) }
@@ -300,4 +300,11 @@ describe RedisModel::Types::SortedSet do
300
300
  end
301
301
  end
302
302
  end
303
+
304
+ describe '#sample' do
305
+ before { populate }
306
+
307
+ it { expect(members.keys.map(&:to_s)).to be_include(object.sample.first) }
308
+ it { expect(members.keys.map(&:to_s).sort).to eq(object.sample(3).sort) }
309
+ end
303
310
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inbeom Hwang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2014-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -161,9 +161,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
161
  version: '0'
162
162
  required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 1.3.1
166
+ version: '0'
167
167
  requirements: []
168
168
  rubyforge_project:
169
169
  rubygems_version: 2.2.2