From 754edd3cf0a72dcb24995dcad17fb1d852925240 Mon Sep 17 00:00:00 2001 From: Yuki Nishijima Date: Sun, 16 Mar 2014 11:19:20 -0700 Subject: [PATCH] Simplify page_entries_info by adding entry_name interface to each ORM --- lib/kaminari/helpers/action_view_extension.rb | 12 +----------- .../models/active_record_relation_methods.rb | 4 ++++ lib/kaminari/models/array_extension.rb | 4 ++++ .../models/data_mapper_collection_methods.rb | 4 ++++ lib/kaminari/models/mongoid_criteria_methods.rb | 4 ++++ lib/kaminari/models/plucky_criteria_methods.rb | 4 ++++ 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/kaminari/helpers/action_view_extension.rb b/lib/kaminari/helpers/action_view_extension.rb index 8955e28..1ec1ebb 100644 --- a/lib/kaminari/helpers/action_view_extension.rb +++ b/lib/kaminari/helpers/action_view_extension.rb @@ -86,17 +86,7 @@ module Kaminari # <%= page_entries_info @posts, :entry_name => 'item' %> # #-> Displaying items 6 - 10 of 26 in total def page_entries_info(collection, options = {}) - entry_name = if options[:entry_name] - options[:entry_name] - elsif collection.is_a?(::Kaminari::PaginatableArray) - 'entry' - else - if collection.respond_to? :model # DataMapper - collection.model.model_name.human.downcase - else # AR - collection.model_name.human.downcase - end - end + entry_name = options[:entry_name] || collection.entry_name entry_name = entry_name.pluralize unless collection.total_count == 1 if collection.total_pages < 2 diff --git a/lib/kaminari/models/active_record_relation_methods.rb b/lib/kaminari/models/active_record_relation_methods.rb index d483ad5..6b9bf41 100644 --- a/lib/kaminari/models/active_record_relation_methods.rb +++ b/lib/kaminari/models/active_record_relation_methods.rb @@ -8,6 +8,10 @@ module Kaminari end end + def entry_name + model_name.human.downcase + end + def total_count(column_name = :all, options = {}) #:nodoc: # #count overrides the #select which could include generated columns referenced in #order, so skip #order here, where it's irrelevant to the result anyway @total_count ||= begin diff --git a/lib/kaminari/models/array_extension.rb b/lib/kaminari/models/array_extension.rb index 258d149..00e96c5 100644 --- a/lib/kaminari/models/array_extension.rb +++ b/lib/kaminari/models/array_extension.rb @@ -24,6 +24,10 @@ module Kaminari end end + def entry_name + "entry" + end + # items at the specified "page" class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{Kaminari.config.page_method_name}(num = 1) diff --git a/lib/kaminari/models/data_mapper_collection_methods.rb b/lib/kaminari/models/data_mapper_collection_methods.rb index 7400b38..8bff962 100644 --- a/lib/kaminari/models/data_mapper_collection_methods.rb +++ b/lib/kaminari/models/data_mapper_collection_methods.rb @@ -1,5 +1,9 @@ module Kaminari module DataMapperCollectionMethods + def entry_name + model.model_name.human.downcase + end + def limit_value #:nodoc: query.options[:limit] || 0 end diff --git a/lib/kaminari/models/mongoid_criteria_methods.rb b/lib/kaminari/models/mongoid_criteria_methods.rb index 1310ea5..09dfb16 100644 --- a/lib/kaminari/models/mongoid_criteria_methods.rb +++ b/lib/kaminari/models/mongoid_criteria_methods.rb @@ -1,5 +1,9 @@ module Kaminari module MongoidCriteriaMethods + def entry_name + model_name.human.downcase + end + def limit_value #:nodoc: options[:limit] end diff --git a/lib/kaminari/models/plucky_criteria_methods.rb b/lib/kaminari/models/plucky_criteria_methods.rb index 7845052..9286746 100644 --- a/lib/kaminari/models/plucky_criteria_methods.rb +++ b/lib/kaminari/models/plucky_criteria_methods.rb @@ -4,6 +4,10 @@ module Kaminari delegate :default_per_page, :max_per_page, :max_pages, :to => :model + def entry_name + model.model_name.human.downcase + end + def limit_value #:nodoc: options[:limit] end