class RedisModel::Helpers::SortedSetPaginator
Public: Pagination helper for elements contained in a sorted set defined based on RedisModel
.
Example:
paginator = RedisModel::Helpers::SortedSetPaginator.new(sorted_set_object) paginator.per(10).page(2) # => Returns objects in the second page.
Elements in sorted set is ordered in descending score order, which is consistent with that of RedisModel::Types::SortedSet
handles the object.
Public Class Methods
new(sorted_set)
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 21 def initialize(sorted_set) @sorted_set = sorted_set end
Public Instance Methods
each() { |element| ... }
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 54 def each(&block) result.each do |element| yield element end end
load_default_options()
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 25 def load_default_options @per ||= 20 @page ||= 1 end
max_id(id)
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 48 def max_id(id) @max = id self end
page(page_number)
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 30 def page(page_number) @page = page_number.to_i self end
per(number_per_page)
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 36 def per(number_per_page) @per = number_per_page.to_i self end
result()
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 60 def result load_default_options @result ||= (@since || @max) ? result_with_score : result_with_rank end
result_with_rank()
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 72 def result_with_rank from = (@page - 1) * @per to = from + @per - 1 @sorted_set.get_range_by_rank(from, to) end
result_with_score()
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 66 def result_with_score raw_result = @sorted_set.get_range(@since || '-inf', @max || '+inf') Kaminari.paginate_array(raw_result).page(@page).per(@per) end
since_id(id)
click to toggle source
# File lib/redis_model/helpers/sorted_set_paginator.rb, line 42 def since_id(id) @since = id self end