Sha256: a4c1d702b6e942c5865d3c76a9fbdd806286bb5665be79a41d63caf089df1c86
Contents?: true
Size: 924 Bytes
Versions: 20
Compression:
Stored size: 924 Bytes
Contents
require 'friendly/document/mixin' module Friendly module Document module Convenience extend Mixin module ClassMethods attr_writer :collection_klass def collection_klass @collection_klass ||= WillPaginate::Collection end def find(id) doc = first(:id => id) raise RecordNotFound, "Couldn't find #{name}/#{id}" if doc.nil? doc end def paginate(conditions) query = query(conditions) count = count(query) collection = collection_klass.new(query.page, query.per_page, count) collection.replace(all(query)) end def create(attributes = {}) doc = new(attributes) doc.save doc end end def update_attributes(attributes) self.attributes = attributes save end end end end
Version data entries
20 entries across 20 versions & 7 rubygems