Merge branch 'master' into topic/constructor_rewrite
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / ResultSet / Pager.pm
diff --git a/lib/DBIx/Class/ResultSet/Pager.pm b/lib/DBIx/Class/ResultSet/Pager.pm
new file mode 100644 (file)
index 0000000..e8510c3
--- /dev/null
@@ -0,0 +1,21 @@
+package # hide from pause
+  DBIx::Class::ResultSet::Pager;
+
+use warnings;
+use strict;
+
+use base 'Data::Page';
+use mro 'c3';
+
+# simple support for lazy totals
+sub _total_entries_accessor {
+  if (@_ == 1 and ref $_[0]->{total_entries} eq 'CODE') {
+    return $_[0]->{total_entries} = $_[0]->{total_entries}->();
+  }
+
+  return shift->next::method(@_);
+}
+
+sub _skip_namespace_frames { qr/^Data::Page/ }
+
+1;