9 def initialize list, total, options
17 :type => :default, :total => @total,
18 :page => self.page, :page_size => self.limit
23 @pager ||= ::Locmare::ListGroupModule::LibModule::Pager::Default.new(self, @options)
27 return @offset if @offset
28 @offset = (self.page - 1) * self.limit
32 return @limit if @limit
33 @limit = PageStatus.page_size(@options) || self.default_page_size
35 @limit = self.default_page_size if @limit < 0
36 @limit = self.max_page_size if @limit > self.max_page_size
38 @limit = -1 if @limit < 0
40 @limit = @total if @total and (@limit > @total)
46 @page = PageStatus.page(@options).to_i
47 @page = 1 if @page < 1
52 @list.default_page_size
60 (@total / self.limit) + 1
72 def initialize list, total, options
80 :type => :offset, :total => @total,
81 :offset => self.offset, :count => self.limit
86 c = @total ? @total.to_i : 0
90 return @offset if @offset
91 @offset = PageStatus.offset(@options).to_i
92 @offset = self.count - 1 if @offset >= self.count
93 @offset = self.count - @offset.abs if @offset < 0
94 @offset = 0 if @offset < 0
99 return @limit if @limit
100 @limit = self.count || self.default_page_size
102 @limit = self.default_page_size if @limit < 0
103 @limit = self.max_page_size if @limit > self.max_page_size
105 @limit = -1 if @limit < 0
107 @limit = @total if @total and (@limit > @total)
112 @count ||= PageStatus.count(@options)
118 attr :total, :options
120 def initialize list, total, options
146 def self.load list, total, options
147 ps = if self.offset(options) or self.count(options)
148 Offset.new list, total, options
150 Default.new list, total, options
152 ps = Unlimited.new(list, total, options) if ps.limit < 0
156 def self.page options
157 n = options['page'] || options[:page]
161 def self.page_size options
162 n = options['page_size'] || options[:page_size]
166 def self.offset options
167 n = options['offset'] || options[:offset]
171 def self.count options
172 n = options['count'] || options[:count]