Skip to content

Instantly share code, notes, and snippets.

@sandinist
Created June 30, 2012 16:21
Show Gist options
  • Save sandinist/3024472 to your computer and use it in GitHub Desktop.
Save sandinist/3024472 to your computer and use it in GitHub Desktop.
memo
MAX = 30
AMAX = 10.0
BMAX = 20.0
def limit_page(count_a, count_b)
ap = (count_a / AMAX).ceil
bp = (count_b / BMAX).ceil
return ap, bp if ap == bp
if ap < bp
return ap, limit(ap, count_a, count_b, AMAX, BMAX)
elsif ap > bp
return limit(bp, count_b, count_a, BMAX, AMAX), bp
end
end
def limit(less_page, less_count, more_count, less_max, more_max)
m = less_count % less_max
more_count1 = ((less_page + 1) * more_max) - m
more_page = (more_count - more_count1) / more_max
(less_page + more_page).ceil
end
p limit_page(10, 20)
p limit_page(10, 30)
p limit_page(20, 20)
p limit_page(28, 50)
p limit_page(30, 2000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment