class ActiveSet::Paginating::Operation
Public Class Methods
new(set, instructions_hash)
click to toggle source
# File lib/active_set/paginating/operation.rb, line 9 def initialize(set, instructions_hash) @set = set @instructions_hash = instructions_hash end
Public Instance Methods
execute()
click to toggle source
# File lib/active_set/paginating/operation.rb, line 14 def execute [ActiveRecordStrategy, EnumerableStrategy].each do |strategy| maybe_set_or_false = strategy.new(@set, operation_instructions).execute break(maybe_set_or_false) if maybe_set_or_false end end
operation_instructions()
click to toggle source
# File lib/active_set/paginating/operation.rb, line 21 def operation_instructions @instructions_hash.symbolize_keys.tap do |h| h[:page] = page_operation_instruction(h[:page]) h[:size] = size_operation_instruction(h[:size]) h[:count] = count_operation_instruction(@set) end end
Private Instance Methods
count_operation_instruction(set)
click to toggle source
# File lib/active_set/paginating/operation.rb, line 45 def count_operation_instruction(set) # https://work.stevegrossi.com/2015/04/25/how-to-count-with-activerecord/ maybe_integer_or_hash = set.size return maybe_integer_or_hash.count if maybe_integer_or_hash.is_a?(Hash) maybe_integer_or_hash end
page_operation_instruction(initial)
click to toggle source
# File lib/active_set/paginating/operation.rb, line 31 def page_operation_instruction(initial) return 1 unless initial return 1 if initial.to_i <= 0 initial.to_i end
size_operation_instruction(initial)
click to toggle source
# File lib/active_set/paginating/operation.rb, line 38 def size_operation_instruction(initial) return 25 unless initial return 25 if initial.to_i <= 0 initial.to_i end