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

Version Path
ihoka-friendly-0.8.0.pre lib/friendly/document/convenience.rb
ihoka-friendly-0.7.1.2 lib/friendly/document/convenience.rb
ihoka-friendly-0.7.1.1 lib/friendly/document/convenience.rb
ihoka-friendly-0.7.1 lib/friendly/document/convenience.rb
ihoka-friendly-0.7.0 lib/friendly/document/convenience.rb
ihoka-friendly-0.6.3 lib/friendly/document/convenience.rb
ihoka-friendly-0.6.2 lib/friendly/document/convenience.rb
friendly-0.6.0 lib/friendly/document/convenience.rb
honkster-friendly-0.5.3 lib/friendly/document/convenience.rb
honkster-friendly-0.5.2 lib/friendly/document/convenience.rb
honkster-friendly-0.5.1 lib/friendly/document/convenience.rb
wayne-friendly-0.5.1 lib/friendly/document/convenience.rb
wego-friendly-0.5.1 lib/friendly/document/convenience.rb
arunthampi-friendly-0.5.1 lib/friendly/document/convenience.rb
friendly_postgres-0.5.1 lib/friendly/document/convenience.rb
friendly-0.5.1 lib/friendly/document/convenience.rb
friendly-0.5.0 lib/friendly/document/convenience.rb
friendly_postgres-0.4.5 lib/friendly/document/convenience.rb
friendly-0.4.5 lib/friendly/document/convenience.rb
friendly-0.4.4 lib/friendly/document/convenience.rb