Commit graph

68 commits

Author SHA1 Message Date
wildchild
16d9e819d7 Added typecasting of properties 2009-07-21 03:17:27 +06:00
Arnaud Berthomier
142989a80d Dont die on empty results
Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-07-18 01:44:42 +08:00
Matt Aimonetti
964526193b Optimized Model.count to run about 3x faster 2009-07-16 20:38:15 -07:00
Matt Aimonetti
8f8b5dc568 added support to cast Float values 2009-07-16 19:52:53 -07:00
Matt Aimonetti
9a167cc27d fixed the specs 2009-07-14 23:48:06 -07:00
Matt Aimonetti
b2a29d9eb7 started extracting the http layer 2009-07-14 01:43:40 -07:00
John Wood
42482a626a Changed pagination technique used by Collection
Modified Collection to use the pagination technique described at
http://wiki.apache.org/couchdb/How_to_page_through_results where possible.
2009-07-08 09:45:08 -07:00
John Wood
a0d6204b42 Added some more doc for Collection, and cleaned up how provides_collection works. 2009-07-08 09:43:31 -07:00
John Wood
a9a53b8729 Added more tests for Collection module, cleaned up the code as well. 2009-07-08 09:40:47 -07:00
John Wood
5963f1d4f8 Better integration with couchrest views. More tests, doc, and some cleanup still needed. 2009-07-08 09:39:30 -07:00
John Wood
cf76466795 Added Collection mixin.
The Collection mixin adds support for executing a view, and passing
back the view results as an Array of the given ExtendedDocument instance.
It also supports will_paginate like pagination methods (paginate, paginated_each),
which will only fetch the given set of documents from CouchDB.
2009-07-08 09:38:26 -07:00
Matt Aimonetti
9a89db44f1 fixed a commit that got reverted by accident 2009-07-08 09:28:15 -07:00
Matt Aimonetti
82090cb780 modified the timestamp parsing to run faster, making a big difference when loading huge datasets 2009-07-07 23:55:20 -07:00
wildchild
f9d8f09ab9 Handle default values properly 2009-06-18 15:00:13 -07:00
Matt Aimonetti
c18567f8fc differentiated attachment's URI and URL 2009-06-07 18:51:31 -07:00
Matt Aimonetti
e48a6c8866 fixed all the specs so we are back to green 2009-05-26 18:27:49 -07:00
Eric Watson
0647307acd Enabled apply_defaults for CastedModel 2009-05-26 15:48:04 -07:00
Eric Watson
96f8d1aa96 Fixing CastedModel bug that modified casted objects
Also refactored code for skipping casting of nil-valued properties
Added and re-arranged specs
2009-05-26 15:47:12 -07:00
Eric Watson
101024aabc Changed CastedModel so it does not cast nil values 2009-05-26 15:45:42 -07:00
Will Leinweber
eb160e3141 Add .count to extended documents to return how many there are.
Adds a reduce function to the default view so that an extra view doesn't have to be maintained just for the counting.
2009-05-26 15:43:27 -07:00
Matt Aimonetti
e538a3881d strings respond to :each and the might break validation on casted arrays 2009-05-20 18:35:41 -07:00
Matt Aimonetti
b1ff1192e5 fixed the refresh design doc method to actually save the doc in the db 2009-05-20 11:44:44 -07:00
Matt Aimonetti
b89d327a61 cleaned up the design view names since we don't need to use md5 view names anymore. (we are using different revision numbers) 2009-05-17 19:34:02 -07:00
Eric Watson
406eaebfc9 Allowing save of default value for read-only property 2009-05-17 17:04:56 -07:00
Matt Aimonetti
2596df1a3d added cascading validations for extended documents using casted models. Most code comes from nrstott's contribution 2009-05-13 22:50:29 -07:00
Mutwin Kraus
f7bbee8243 Make "property :foo, :default => false" work
Before a default value of false was treated like a default of nil,
  which is not the same.

Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-04-28 11:38:00 +08:00
Mutwin Kraus
75a5018b12 Improvements for ExtendedDocument initializer
* Tries to send arg= to the Document before setting the attribute

Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-04-28 11:37:59 +08:00
Brian Candler
55271490e8 Remove unnecessary design_doc_fresh test 2009-03-31 10:58:34 -07:00
Brian Candler
d672d5f8d4 Move design_doc_* attributes into DesignDoc mixin 2009-03-31 10:58:05 -07:00
Brian Candler
159a761ad9 Tidy up initialisations of design_doc which are no longer needed 2009-03-31 10:57:33 -07:00
Matt Aimonetti
661daac473 fixed an inheritance problem with ExtendedDocument subclasses 2009-03-27 11:11:49 -07:00
Geoff Buesing
9c46546b39 Add call to super in CouchRest::Validation.inherited hook, so that ExtendedDocument.inherited isn't bypassed. This reveals a failing test: Subclassing an ExtendedDocument should inherit default property values 2009-03-27 10:39:23 -07:00
Geoff Buesing
5d112df1e8 Make design_doc non-inheritable. Fixes bug where views added to a child class were propagated to the parent and siblings. Child class "all" view map function now checks in guard clause for child class name instead of parent name 2009-03-27 10:35:18 -07:00
Geoff Buesing
1ee82b714c Don't make design_doc_slug_cache and design_doc_fresh inheritable, because these settings should be specific to the class 2009-03-27 10:35:05 -07:00
Matt Aimonetti
4337e676ee Merge commit 'candlerb/candlerb/design-doc' into candlerb-merge
* commit 'candlerb/candlerb/design-doc':
  Update handler for old versions of couchdb
  ClassProxy provides class-level methods on a dynamically chosen database.
  Remove obsolete 'move' methods
  Tidying up spec, remove unnecessary assignments to local variable
  Multiple database support for ExtendedDocument.
  Typo in comment
  Move design_doc attributes to Mixins::DesignDoc
2009-03-27 10:21:56 -07:00
Brian Candler
d71a33fc93 Update handler for old versions of couchdb 2009-03-27 14:00:28 +00:00
Brian Candler
c4b49baecf ClassProxy provides class-level methods on a dynamically chosen database.
Examples:

  db = CouchRest::Database.new(...)
  articles = Article.on(db)

  articles.all { ... }
  articles.by_title { ... }

  u = articles.get("someid")

  u = articles.new(:title => "I like plankton")
  u.save    # saved on the correct database
2009-03-27 13:42:49 +00:00
Brian Candler
ec7848b783 Multiple database support for ExtendedDocument.
New optional parameters are available to select the database:

Mixins::DocumentQueries
  * get <id>, <db>
  * all :database => <db>
  * first :database => <db>

Mixins::Views
  * view <name>, :database => <db>
  * all_design_doc_versions <db>
  * cleanup_design_docs! <db>

Mixins::DesignDoc
  * refresh_design_doc now only updates the design_doc _id and removes _rev
  * call save_design_doc to save and update the design_doc
  * call save_design_doc_on <db> to save the design doc on a given
    database without modifying the model's design_doc object

Design (core/design.rb)
  * new method view_on <db>, ...

Bug fixes:
  * design_doc_slug in mixins/design_doc.rb was using an empty document
    to calculate the slug each time
  * method_missing in core/extended_document.rb now passes a block through
2009-03-27 11:27:37 +00:00
Brian Candler
f9278a4ca6 Typo in comment 2009-03-26 21:39:36 +00:00
Brian Candler
ada5b1660f Move design_doc attributes to Mixins::DesignDoc 2009-03-26 21:21:20 +00:00
Geoff Buesing
49d19e2a29 Validation inheritance: do deeper dup so that child classes don't add to the parent's validations 2009-03-24 23:56:41 -07:00
Matt Aimonetti
115cb6a7ee fixed the subclassing of ExtendedDocument classes 2009-03-19 18:53:17 -07:00
Geoff Buesing
bb119ae181 Move require of stdlib time from extended_document to properties 2009-03-19 16:59:58 -07:00
Geoff Buesing
a1a4985149 Namespace Extlib versions of class_inheritable_accessor methods with extlib_prefix, as done in Wycats' Rails fork, so that their inclusion won't overwrite existing ActiveSupport implementations, if present. Check for existence of Class extensions on a per-method basis. 2009-03-19 16:59:22 -07:00
Matt Aimonetti
5607936540 updated the callback system using Yehuda's latest version and bumped the release to make the latest fixes available 2009-03-05 23:52:48 -08:00
Matt Aimonetti
3e6dba7b66 fixed a bug with ExtendedDocument not declaring any views and trying to use #all or #first 2009-03-03 16:57:59 -08:00
Matt Aimonetti
7455152f63 fixed a typo in the previous commit 2009-03-02 22:36:57 -08:00
Matt Aimonetti
5258a0ba52 fixed a bug where :include_docs on a view couldn't be overwritten 2009-03-02 21:21:59 -08:00
Matt Aimonetti
55ecda2c90 spec'd casted extended document 2009-03-02 21:15:02 -08:00
Matt Aimonetti
80317f31a5 fixed the uuid count for the latest version of couchdb
also avoided CONSTANTS warnings, cleaned up the attachment specs, added missing fixtures
2009-02-25 00:22:11 -08:00