lib/redis_token.rb in redis_token-0.0.2 vs lib/redis_token.rb in redis_token-0.0.3
- old
+ new
@@ -114,23 +114,27 @@
end
# Iterate all exist tokens of an owner
#
# @param [String] owner
- def each(owner)
+ #
+ # @return [Enumerator]
+ def owned_by(owner)
mask = "#{@prefix}#{owner}.*"
- cursor = 0
- loop do
- cursor, r = @redis.scan(cursor, match: mask)
- cursor = cursor.to_i
+ Enumerator.new do |y|
+ cursor = 0
+ loop do
+ cursor, r = @redis.scan(cursor, match: mask)
+ cursor = cursor.to_i
- r.each do |key|
- token = owner_key_to_token(owner, key)
- yield(token, redis_get(token_to_key(token)))
- end
+ r.each do |key|
+ token = owner_key_to_token(owner, key)
+ y << [token, redis_get(token_to_key(token))]
+ end
- break if cursor == 0
+ break if cursor == 0
+ end
end
end
# Delete a token
#