redis_model 0.1.0.pre3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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