9 def initialize list, total, options
17 :type => :default, :total => @total, :total_page => self.total_page,
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
68 (@total / self.limit) + self.adjust
80 def initialize list, total, options
88 :type => :offset, :total => @total, :total_page => self.total_page,
89 :offset => self.offset, :count => self.limit
94 @pager ||= ::Locmare::ListGroupModule::LibModule::Pager::Offset.new(self, @options)
98 return @offset if @offset
99 @offset = PageStatus.offset(@options).to_i
100 @offset = @total - 1 if @offset >= @total
101 @offset = @total - @offset.abs if @offset < 0
102 @offset = 0 if @offset < 0
107 return @limit if @limit
108 @limit = self.count || self.default_page_size
109 @limit = self.default_page_size if @limit == 0
111 @limit = self.default_page_size if @limit < 0
112 @limit = self.max_page_size if @limit > self.max_page_size
114 @limit = -1 if @limit < 0
116 @limit = @total if @total and (@limit > @total)
121 @count ||= PageStatus.count(@options)
125 self.offset % self.limit
129 (@total - self.offset) % self.limit
133 self.first_mod == 0 ? 0 : 1
137 self.last_mod == 0 ? 0 : 1
141 return 1 if self.limit < 0
142 self.offset / self.limit + 1 + self.first_adjust
145 def default_page_size
146 @list.default_page_size
154 return 1 if self.limit < 0
155 @total / self.limit + self.first_adjust + self.last_adjust
165 attr :total, :options
167 def initialize list, total, options
197 def self.load list, total, options
198 return nil if total == 0
199 ps = if self.offset(options) or self.count(options)
200 Offset.new list, total, options
202 Default.new list, total, options
204 ps = Unlimited.new(list, total, options) if ps.limit < 0
208 def self.page options
209 n = options['page'] || options[:page]
213 def self.page_size options
214 n = options['page_size'] || options[:page_size]
218 def self.offset options
219 n = options['offset'] || options[:offset]
223 def self.count options
224 n = options['count'] || options[:count]