Андрей
Вы можете думать о DataMapper :: Resource как об экземпляре (строка) и о DataMapper :: Model как о классе (таблица). Теперь, чтобы изменить возможности по умолчанию на уровне ресурса или модели, вы можете добавить в модель включения или расширения.
Сначала вам нужно обернуть ваш метод #paginate в модуле. Я также добавил, вероятно, бесполезный метод #page, чтобы показать, как добавить ресурс, если вам это понадобится.
module Pagination
module ClassMethods
def paginate(page)
# ...
end
end
module InstanceMethods
def page
# ...
end
end
end
В вашем случае вы хотите, чтобы #paginate был доступен на модели, поэтому вы должны сделать:
DataMapper::Model.append_extensions(Pagination::ClassMethods)
Если вам нужно добавить возможности по умолчанию для каждого ресурса, выполните:
DataMapper::Model.append_inclusions(Pagination::InstanceMethods)
Надеюсь, это поможет!