Sha256: ad00cfd1bcc57e4fa3bf8223268c0335c176d1df8e666006f0eea1014f932457
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Sidekiq module Paginator def page(key, pageidx=1, page_size=25, opts=nil) current_page = pageidx.to_i < 1 ? 1 : pageidx.to_i pageidx = current_page - 1 total_size = 0 items = [] starting = pageidx * page_size ending = starting + page_size - 1 Sidekiq.redis do |conn| type = conn.type(key) case type when 'zset' rev = opts.try(:[], :reverse) total_size, items = conn.multi do conn.zcard(key) if rev conn.zrevrange(key, starting, ending, :with_scores => true) else conn.zrange(key, starting, ending, :with_scores => true) end end when 'list' total_size, items = conn.multi do conn.llen(key) conn.lrange(key, starting, ending) end when 'none' return [1, 0, []] else raise "can't page a #{type}" end end [current_page, total_size, items] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-2.17.4 | lib/sidekiq/paginator.rb |