Commit graph

219 commits

Author SHA1 Message Date
Matt Aimonetti
e48a6c8866 fixed all the specs so we are back to green 2009-05-26 18:27:49 -07:00
Matt Aimonetti
2d52225a25 fixed some stuff but a lot of specs are still failing on 409s 2009-05-26 16:28:34 -07:00
Eric Watson
dff005f082 Modified CastedModel to apply defaults first
(so the defaults don't overwrite modified values)
Included failing (and now passing) specs
2009-05-26 15:51:30 -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
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
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
Matt Aimonetti
92b77a9649 fixed bulk_load/get_bulk and the specs 2009-05-13 20:44:57 -07:00
Nathan
0c0b6ecff2 added spec to show problem with validation of array of casted models 2009-05-13 20:29:44 -07:00
Matt Aimonetti
1b6ed9ce93 Merge branch 'master' of git://github.com/jchris/couchrest
* 'master' of git://github.com/jchris/couchrest:
  added bulk_load macro
  version support note
2009-05-13 12:59:42 -07:00
Chris Anderson
8363aa6298 added bulk_load macro 2009-05-08 19:00:39 -07:00
Will Leinweber
fb7b33b1a7 Specs now clean up after themselves by deleting the test databases
Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-04-28 11:39:37 +08: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
YAMAMOTO Yohei
6fca60ebe4 fixed a bug with CastedModel constructer calling Hash#initialize(ifnone)
Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-04-28 11:32:59 +08:00
Chris Anderson
09dcc9e5c2 Revert "Server URI can now include a prefix to the database name"
This reverts commit 14acd95444.
2009-03-31 12:24:04 -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
Brian Candler
14acd95444 Server URI can now include a prefix to the database name 2009-03-27 10:27:04 -07:00
Brian Candler
190bd13723 Escape slash in database name 2009-03-27 10:26:54 -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
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
aabf097e88 Tidying up spec, remove unnecessary assignments to local variable 2009-03-27 11:44:09 +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
Geoff Buesing
125689cd34 ValidationErrors#on: allow String field_name 2009-03-24 23:57:28 -07: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
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
Geoff Buesing
4d8314124b Remove CouchRest.move, CouchRest::Database#move and #move_doc, because these methods are no longer supported by CouchDB
Ref: http://n2.nabble.com/Removing-MOVE-td2490780.html#a2490780
2009-03-18 11:22:49 -05:00
Chris Anderson
36c8bea453 all specs pass against couchdb trunk 2009-03-15 13:00:47 -07:00
Matt
2aeb90721e corrected some spec dependencies 2009-03-08 14:27:30 +00: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
Matthew Ford
fdb0854859 Fix a bug where class extentions were conflicting with ActiveSupport 2009-03-05 21:19:27 -08:00
Matt Aimonetti
0250fea373 Merge branch 'master' of git://github.com/jchris/couchrest
* 'master' of git://github.com/jchris/couchrest:
  dcnstrct says Timeout::Error is the constant we probably mean
  fixed db spec
2009-03-02 22:37:36 -08:00
Matt Aimonetti
7455152f63 fixed a typo in the previous commit 2009-03-02 22:36:57 -08:00
Matt Aimonetti
55ecda2c90 spec'd casted extended document 2009-03-02 21:15:02 -08:00
Chris Anderson
f8e8686537 fixed db spec 2009-02-27 10:58:48 -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
Matt Aimonetti
fe489f2d38 removed CouchRest::Model, added more specs and fixed a bug with casted CR::ExtendedDocument 2009-02-24 22:51:13 -08:00
Matt Aimonetti
be469b2a86 bumped release to 0.14 after implementing the new features in a real life app.
* added extended attachments
* fixed a bug with default values
2009-02-17 17:59:31 -08:00
Matt Aimonetti
c4cce18389 added database.bulk_delete as an alias for #bulk_save, added support for Model.by_view_name in ExtendedDoc and bumped the version to 0.13.3 2009-02-17 00:36:11 -08:00
Matt Aimonetti
3a57ed1414 fixed a bug with the RestClient optimization, added more callbacks on the ExtendedDocument and added support for casted arrays of objects. 2009-02-12 20:28:07 -08:00
Matt Aimonetti
c0abafd1e0 fixed a major bug with inheritance and the class database setup. (plus some validation bugs) 2009-02-10 16:10:35 -08:00
Matt Aimonetti
e448112ff6 fixed some serious issues but left some for tomorrow (validations aren't working right) 2009-02-10 02:15:39 -08:00
Matt Aimonetti
bc47e72ae0 fixed a bug with the casting of time objects 2009-02-09 15:12:22 -08:00
Matt Aimonetti
e07e5b468f fixed a bug with a default value being a proc 2009-02-09 12:08:55 -08:00
Matt Aimonetti
621f5565e9 Started working on casted models, basic functionalities are now in.
property :casted_attribute, :cast_as => 'WithCastedModelMixin'

A casted attribute now knows about its parent. (#casted_by to retrieve the parent's object)
2009-02-09 11:20:23 -08:00
Matt Aimonetti
fa7b176fce [extended-document] added support for property :name, :default => 'Matt" and default couchrest type 2009-02-05 18:57:11 -08:00