OSDN Git Service

fix page status for offset
[pettanr/pettanr.git] / lib / locmare / list_group / lib / page_status.rb
index 843a877..ee726b9 100644 (file)
@@ -113,17 +113,25 @@ module Locmare
             @count ||= PageStatus.count(@options)
           end
           
-          def mod
+          def first_mod
             self.offset % self.limit
           end
           
-          def adjust
-            self.mod == 0 ? 0 : 1
+          def last_mod
+            (@total - self.offset) % self.limit
+          end
+          
+          def first_adjust
+            self.first_mod == 0 ? 0 : 1
+          end
+          
+          def last_adjust
+            self.last_mod == 0 ? 0 : 1
           end
           
           def page
             return 1 if self.limit < 0
-            self.offset / self.limit + 1 + self.adjust
+            self.offset / self.limit + 1 + self.first_adjust
           end
           
           def default_page_size
@@ -136,8 +144,7 @@ module Locmare
           
           def total_page
             return 1 if self.limit < 0
-            round = (@total % self.limit) == 0 ? 0 : 1
-            @total / self.limit + round + self.adjust
+            @total / self.limit + self.first_adjust + self.last_adjust
           end
           
           def pageable?