Commit graph

592 commits

Author SHA1 Message Date
Peter Gumeson
cdf998b185 Merge commit 'sethladd/master' 2009-06-12 12:17:15 -07:00
Peter Gumeson
fc18b47800 Merge commit 'mattetti/master' 2009-06-11 21:18:37 -07:00
Seth Ladd
92d7fdb94d refactoring how casting works 2009-06-09 18:02:04 -10:00
Seth Ladd
209e36f61b cast values through setters to ensure validations are run after mass assignment, for example 2009-06-08 16:35:26 -10:00
Seth Ladd
130fdd16dd cosmetic cleanup 2009-06-08 16:34:52 -10:00
Seth Ladd
ffceaec57d add silent settings for created_at and updated_at, allows for mass assignment with semantics that match rails 2009-06-08 16:34:21 -10:00
Seth Ladd
31180f6bc7 require the rails support 2009-06-08 11:52:02 -10:00
Seth Ladd
36f69ec332 check if Rails exists for the rails support 2009-06-08 11:48:15 -10:00
Seth Ladd
7246801f57 merged in sporkd 2009-06-08 10:10:59 -10:00
Matt Aimonetti
c18567f8fc differentiated attachment's URI and URL 2009-06-07 18:51:31 -07:00
Peter Gumeson
db7829e996 Callbacks now take multiple callback methods 2009-06-07 18:46:30 -07:00
Peter Gumeson
ab362cb32c More convenient callback alias methods 2009-06-07 17:01:21 -07:00
Peter Gumeson
806a79a72a Enabled callback halting and added copyright notices 2009-06-07 14:52:23 -07:00
Peter Gumeson
dc4787e905 Integrated Yehuda's new callback code from rails 2009-06-07 02:57:22 -07:00
Peter Gumeson
1c6e073b47 Added logger to rails support 2009-06-07 02:51:50 -07:00
Peter Gumeson
76b1563539 Renamed new_document? and new_model? to simply new? 2009-06-04 20:44:44 -07:00
Peter Gumeson
b4e2250668 Added validation callbacks to extended documents and casted models 2009-06-04 19:49:10 -07:00
Peter Gumeson
91cd1d9c7b base_doc should be nil for unassociated casted models 2009-05-30 23:20:39 -07:00
Peter Gumeson
d012380b67 Added helper for accessing the top level document. And more rails compatibility. 2009-05-28 22:42:30 -07:00
Peter Gumeson
936ce54449 Merge branch 'mattetti/master' 2009-05-28 22:31:20 -07:00
Matt Aimonetti
f1b2315524 bumped the release because of github *sigh* 2009-05-28 19:43:55 -07:00
Matt Aimonetti
28df50daca minor text edit, trying to get github to build the gem 2009-05-28 19:41:30 -07:00
Peter Gumeson
efeb654114 casted_by is now set on assignment to a document. 2009-05-28 17:56:42 -07:00
Peter Gumeson
3e4c90f104 Fixed a comment 2009-05-28 17:00:06 -07:00
Peter Gumeson
23341f3698 Added new_model? and new_record? alias to casted model for rails compatibility. 2009-05-28 16:09:53 -07:00
Peter Gumeson
9a026997dd valid? now recursively checks casted models. Added better validation spec coverage. 2009-05-28 12:18:23 -07:00
Peter Gumeson
4a4cae0d95 Merge branch 'mattetti/master' 2009-05-28 11:30:15 -07:00
Matt Aimonetti
5e0632c1d0 removed ObjectSpace usage 2009-05-28 10:36:25 -07:00
Matt Aimonetti
295c0f0511 fixed the design doc cache issue 2009-05-27 23:59:43 -07:00
Matt Aimonetti
c35c35157a added an automated way to mark design docs as dirty after the db was reset 2009-05-27 18:16:50 -07:00
Peter Gumeson
704d0a09bd Added attributes= to casted model and extended doc 2009-05-27 13:24:25 -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
a1087b48fe Enabled casting of CastedModel attributes 2009-05-26 15:55:10 -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
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
8814ab531d bumped version number after fixing a potentially serious design doc bug 2009-05-20 16:33:19 -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
85079a54d9 bumped the version 2009-05-17 21:20:38 -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
a4e6713aeb removed the json dependency so everything can work fine with ruby1.9/jruby/macruby etc.. version bumped 2009-05-13 23:20:05 -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
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
Matt Aimonetti
53df7369bc bumped the version due to many bug fixes being addressed lately 2009-04-27 20:53:02 -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
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
Geoff Buesing
ef3b0527c9 Hash#=== monkeypatch: don't add special behavior to subclasses, i.e. CouchRest documents 2009-04-01 14:16:10 -07:00
Geoff Buesing
5f5aa06409 Adding Rails-related monkeypatches file, which isn't required by default. Contains fixes for Rails routing and Rails form error compatibility. 2009-04-01 11:42:15 -07: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
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
abd19f7b68 bumped release to 0.23 (lots of fixes) 2009-03-27 11:27:44 -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
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
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
af6ac7df89 Remove obsolete 'move' methods 2009-03-27 11:50:42 +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
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
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
Geoff Buesing
de0476b083 ExtendedDocument: don't require Extlib. Explicitly require Ruby stdlib time (which provides Time.parse), which was required by Extlib::Logger. 2009-03-19 16:38:47 -07:00
Geoff Buesing
1517622d53 Time#to_json monkeypatch: use Time#getutc instead of #utc, so that self is not modified 2009-03-19 16:38:20 -07:00
Geoff Buesing
d9417f3915 Extract humanize method from Extlib::Inflection to CouchRest.humanize, so that Extlib::Inflection dependency can be removed 2009-03-19 16:37:45 -07:00
Matt Aimonetti
ef8933432a Merge branch 'master' of git://github.com/jchris/couchrest
* 'master' of git://github.com/jchris/couchrest:
  Remove CouchRest.move, CouchRest::Database#move and #move_doc, because these methods are no longer supported by CouchDB
2009-03-19 16:35:31 -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
Matt Aimonetti
aad6b8383d merged jchris/master 2009-03-16 14:57:29 -07:00
Chris Anderson
76ef427862 rev gem to version 0.17.0 2009-03-15 13:01:39 -07:00
Chris Anderson
36c8bea453 all specs pass against couchdb trunk 2009-03-15 13:00:47 -07:00
Chris Anderson
917157a0e7 rev version and new gemspec 2009-03-14 19:03:17 -07:00
Chris Anderson
fbc21aacd9 updater is simpler now that I learned about open_revs=all 2009-03-14 19:00:26 -07:00
Chris Anderson
8964a9b282 created upgrade helper 2009-03-14 18:42:34 -07:00
Matt Aimonetti
d2c461e7f0 bumped the version # since this version is only compatible with latest couchdb trunk 2009-03-11 15:15:08 -07:00
Chris Anderson
b3a6a081fd fix for design doc url changes 2009-03-11 15:13:01 -07:00
Chris Anderson
7b03c7ba25 fix for design doc url changes 2009-03-09 13:12:28 -07:00
Matt Aimonetti
bfff491202 bumped the version number 2009-03-06 16:31:07 -08: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
Matthew Ford
d95b9de50d Fix net/http monkey patch, to prevent conflicts with other libraries.
Using the patch included in http://redmine.ruby-lang.org/issues/show/806
2009-03-05 21:19:13 -08:00
Matt Aimonetti
813f673d88 increased the bulk cache limit to 500, it can be manually increased up to 1000 safely 2009-03-05 15:06:56 -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
98fb1d728d bumped to 0.2 now that I rebased with master 2009-03-02 22:40:29 -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
d383c5a7d4 fixed a typo added when I added more debugging info to the request processing 2009-03-02 21:26:18 -08:00
Matt Aimonetti
b1999ac8b7 Merge branch 'casted-extendeddocument'
* casted-extendeddocument:
  fixed a bug where :include_docs on a view couldn't be overwritten
  spec'd casted extended document
2009-03-02 21:22:15 -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
Chris Anderson
70d594ff5c dcnstrct says Timeout::Error is the constant we probably mean 2009-02-27 12:27:52 -08:00
Matt Aimonetti
4bfb69b3ce added a debugging statement on PUT failures 2009-02-26 19:53:01 -08:00
Matt Aimonetti
bb93a5bb1f added rescue message to GET request 2009-02-26 18:44:39 -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
72542dc876 fixed a bug with validation 2009-02-20 18:32:01 -08:00
Matt Aimonetti
2f8caa8740 added a new validator 2009-02-20 15:34:49 -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
b79bb9a912 getting GH to build my gem, :emo:test #2 2009-02-10 18:06:25 -08:00
Matt Aimonetti
e000c8b68c bumped release to 0.13 2009-02-10 16:20:33 -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
Matt Aimonetti
890b60cae4 added autovalidation (auto_validate! in your ExtendedDocument) and extracted some extlib stuff so we will soon be able to remove the dependency. 2009-02-05 17:06:12 -08:00
Matt Aimonetti
e9930c5a86 extracted the response class to its own file 2009-02-05 16:56:48 -08:00
Matt Aimonetti
5d9e9fc53f simplified the validation callback method. 2009-02-03 18:23:30 -08:00
Matt Aimonetti
fec21c3ff3 got rid of extlib hooking system in favor of the new Rails3 callback system. As well as fixed timestamps! in ExtendedDoc 2009-02-03 17:33:31 -08:00
Matt Aimonetti
dfdcd79a58 Started added a validation mixin
Usage:
  class Invoice < CouchRest::ExtendedDocument
    include CouchRest::Validation

    property :client_name
    property :employee_name
    property :location

    # Validation
    validates_present :client_name, :employee_name
    validates_present :location, :message => "Hey stupid!, you forgot the location"

  end
2009-02-02 19:21:32 -08:00
Matt Aimonetti
475e970c26 renamed the ExtendedViews mixin 2009-02-02 16:16:14 -08:00
Matt Aimonetti
08c7f2107c moved stuff around and cleaned up some deprecation notices [save/save_doc] 2009-02-02 16:10:07 -08:00
Chris Anderson
60c577963d all specs pass; refined attachment api 2009-02-02 15:24:31 -08:00
Matt Aimonetti
d64fa45cf0 Started on the ExtendedDocument class with features moved to mixins.
Properties got added, they define getters, setters and aliases.
They will also be the base of the new validation system.
2009-02-02 14:53:46 -08:00
Matt Aimonetti
83d7341553 Started on the ExtendedDocument class with features moved to mixins.
Properties got added, they define getters, setters and aliases.
They will also be the base of the new validation system.
2009-02-02 14:51:41 -08:00
Matt Aimonetti
d9fe6ba374 Started the refactoring work on couchrest.
* A server can have multiple defined available databases set to be used by documents (think DM repos)
* A server can have a default database so documents can easily share the same db connection
* Let a document class have a default database to use
* Give access to a document uri
* extracted some of the document features to a mixin
2009-02-02 14:51:41 -08:00
Matt Aimonetti
427122c98a added some monkey patches to improve the http connection speed. (by keeping the http connection open) 2009-02-02 14:50:30 -08:00
Matt Aimonetti
84e2bf94e4 slight change of API, CR::Document now uses <action>_doc instead of <action>, also added #create! and #recreate! to Document instances 2009-02-02 14:50:30 -08:00
Matt Lyon
a4a2b202ae Added attachment methods to CocuhRest::Document: #put_attachment, #fetch_attachment and #delete_attachment. Note you can overwrite exisitng attachments with #put_attachment. 2009-02-02 01:25:14 -08:00
Matt Lyon
b915f7f708 - Added Database#delete_attachment, for removing them directly
- Modified Database#fetch_attachment to take a doc as its first argument +as well as+ a docid, to be consistent with the other attachment methods.
- Refactored the attachment uri generation used by #fetch_attachment, #put_attachment, and #delete_attachment to a common private method, #uri_for_attachment
2009-02-02 01:25:14 -08:00
Matt Lyon
9b3b56bbf5 documentation for Document#copy and #move, copied from Database 2009-02-02 01:25:13 -08:00
Matt Lyon
571cd257e0 database replication methods, no conflict resolution provided 2009-02-02 01:25:13 -08:00
Chris Anderson
e9f7456eab change couchrest back to _temp_view, rev gem version 2009-01-27 15:11:10 -08:00
Chris Anderson
8f24d7d5a3 bulk_save has an option to have couch add the uuids 2009-01-23 23:25:24 -08:00
Chris Anderson
3e0594e534 drop couchdir binary 2009-01-19 16:13:03 -08:00
Chris Anderson
a449ace490 dropped explicit extlib dependency 2009-01-19 16:07:35 -08:00
Chris Anderson
139c3253e2 applied patch from nanodeath -- thanks 2009-01-19 14:49:48 -08:00
Matt Lyon
a0a422b779 add move and copy support to CouchRest::Document instances 2009-01-16 11:31:42 -08:00
Matt Lyon
0519fc5765 patch restclient locally instead of hoping/waiting for an upstream patch. 2009-01-16 11:31:42 -08:00
Chris Anderson
a4144af72d fixup json time format 2009-01-13 20:08:58 -08:00
Chris Anderson
cc5cf62cc4 rev the version so we can get a gem build 2009-01-13 13:23:01 -08:00
Chris Anderson
4c6d12fb6a fixup default handling 2009-01-13 13:06:25 -08:00
Chris Anderson
7d6f3e0ced fix conflict markers... 2009-01-12 21:42:31 -08:00
Chris Anderson
b632b0fdf0 version 0.12.1 2009-01-12 21:33:12 -08:00
Chris Anderson
93d8fd25fb strip old create and update 2009-01-12 21:07:56 -08:00
Jonathan S. Katz
081cf171cd fixed documentation: before(:delete) => before(:destroy) 2009-01-12 21:06:48 -08:00
Jonathan S. Katz
3bff23e7c5 added CouchRest::Model#attachment_url for someone to fetch the attachment using other means 2009-01-12 21:06:48 -08:00
Jonathan S. Katz
a79d9b7f90 changed parameter passing for model attachment methods to be more flexible 2009-01-12 21:06:48 -08:00
Jonathan S. Katz
0cf5fbe311 added #has_attachment? method 2009-01-12 21:06:48 -08:00
Jonathan S. Katz
e497fbbab4 Added basic specs for attachment CRUD 2009-01-12 21:06:48 -08:00
Chris Anderson
8d25cbc8b0 merge mime types in model 2009-01-12 21:06:48 -08:00
Chris Anderson
49685d8e42 fixup save callbacks 2009-01-12 21:06:26 -08:00
Chris Anderson
5e7f61d332 apply sho's patch: default values may be lambdas 2009-01-12 20:46:03 -08:00
Joe Martinez
108ec0a28e Add proxy support 2009-01-12 20:16:22 -08:00
Chris Anderson
6b57357fc0 merge deferred-delete 2009-01-12 20:01:37 -08:00
Chris Anderson
bca68cf1a9 design doc ids fixed throughout 2009-01-12 19:54:02 -08:00
Chris Anderson
d1f8970c84 fixed ddoc names on get 2009-01-12 19:50:00 -08:00
Antony Blakey
36945d5a13 Add bulk save deferal option to db.delete / doc.destroy, just like on save. 2009-01-09 20:29:08 +10:30
Chris Anderson
fb613e7dfb move some couchapp components to couchapp project 2009-01-08 16:48:11 -08:00
Chris Anderson
3c789ab317 change to !json and !code for the include macros 2009-01-08 10:00:36 -08:00
Chris Anderson
5d3e684c6a moved app template 2009-01-08 09:50:45 -08:00
Matt Lyon
9faa9daaca support for couchdb's support for the COPY and MOVE verbs. depends on my commit to RestClient, currently only in b5d75acc68
I have considered adding this to the CouchRest::Document class as well ("@doc.copy new-id" and such) but haven't yet.
2009-01-05 00:44:12 -08:00
Matt Lyon
a2aa4a9a3c Merge branch 'master' of git://github.com/jchris/couchrest
* 'master' of git://github.com/jchris/couchrest:
  Fix up set_default to not munge existing values.
  commented out spec for fm:generate app
2009-01-04 23:01:17 -08:00
Matt Lyon
e15581b1dd fix temp_view -> slow_view stuff for couchdb trunk 2009-01-04 23:00:59 -08:00
Max Aller
f3bc7f8eba Fix up set_default to not munge existing values. 2009-01-04 22:51:08 -08:00
Chris Anderson
dcef68e725 file manager a little better 2009-01-04 22:42:36 -08:00
Matt Lyon
d290357c78 don't error when the given directories don't exist 2009-01-04 21:01:32 -08:00
Chris Anderson
7aaffe5d63 change count to limit 2009-01-04 21:00:36 -08:00
Chris Anderson
ba8f84127c require before include 2009-01-02 17:37:04 -08:00
Chris Anderson
0341b039a7 require system 2009-01-02 03:46:26 -08:00
Chris Anderson
ba6caf8d41 deep include 2009-01-02 03:22:28 -08:00
Chris Anderson
7644217add change it to !include 2009-01-02 01:59:33 -08:00
Chris Anderson
d6088be47f use the lib dir 2009-01-02 01:51:40 -08:00
Chris Anderson
b8856771f7 lib not library 2009-01-01 23:33:14 -08:00
Chris Anderson
8733b631e3 more reorg for couchapp 2009-01-01 23:11:01 -08:00
Chris Anderson
c435aa0932 remove couchview 2009-01-01 22:54:41 -08:00
Chris Anderson
cc6039cbd4 modernizing couchapp 2009-01-01 22:45:41 -08:00
Chris Anderson
293e9abad8 simpler mappings 2009-01-01 22:32:50 -08:00
Chris Anderson
a10d902d71 simplyfy couchapp push 2009-01-01 22:29:39 -08:00
Chris Anderson
98ff079093 extract method 2009-01-01 21:22:14 -08:00
Chris Anderson
f8dd2766d5 removed doc.json special case 2009-01-01 21:07:19 -08:00
Chris Anderson
71b25a592a hand merge mattly time patch 2008-12-31 16:00:24 -08:00
Chris Anderson
c180a317e8 merge rafaelss :as patch 2008-12-31 15:40:17 -08:00
Frederik Fix
cae6395007 removed the suffix and duplication when importing views 2008-12-31 15:24:19 -08:00
Chris Anderson
c488aab338 Merge branch 'janl/master' 2008-12-31 15:16:32 -08:00
Chris Anderson
8b34f083c7 Merge branch 'mattly/master' into mergemattly 2008-12-31 14:54:28 -08:00
Rafael Souza
716bc74023 added possibility to cast any key to any type using any method 2008-12-30 11:25:23 -02:00
Jan Lehnardt
5a35359f51 push forms/ into _design/$this/forms 2008-12-25 21:48:02 +01:00
Jan Lehnardt
6b4913e9e8 push forms/ into _design/$this/forms 2008-12-25 21:03:58 +01:00
Matt Lyon
cd53e16eba instantiate Time casts correctly 2008-12-19 02:06:05 -08:00
Nolan Darilek
84382d8af4 Removed model create/update callbacks and integrated with new bulk save infrastructure. 2008-12-15 10:27:53 -06:00
Nolan Darilek
d8d5645ebd Make bulk saving more flexible.
* Database#save(doc, true) caches the doc in a database-specific bulk
cache.
* Database#save(doc, false), default, saves normally, bulk saving and
emptying the cache if one exists.
* The cache is automatically saved on Database#save if it excedes a
configurable limit, 50 by default.
* Database#bulk_save without arguments saves and clears the bulk save
cache.
2008-12-14 23:17:35 -06:00
Nolan Darilek
dd7f109878 Add support for database compaction. 2008-12-14 17:29:15 -06:00
Jan Lehnardt
5f65f9d8ab add txt mimetype 2008-12-14 13:14:31 +01:00
Jan Lehnardt
7461e3fede s/localhost/127.0.0.1/ 2008-12-14 12:05:02 +01:00
Sho Fukamachi
0c527baa25 modified apply_defaults in CouchRest::Model to allow Procs in defaults and to safely clone (not reference) defaults from the class variable 2008-11-30 12:40:01 +11:00
Sho Fukamachi
313aae3e3d modified Time#to_json monkeypatch to include microseconds 2008-11-30 12:36:24 +11:00
Chris Anderson
7430dc17ea Merge branch 'model-first' of git://github.com/mattetti/couchrest into mattetti/model-first 2008-11-22 16:13:46 -08:00
Chris Anderson
0c91f5d234 fixed merge 2008-11-22 16:12:16 -08:00
Chris Anderson
64d71d3ac4 Merge commit '9399b27f3f58c1e333b6dd5f20bbcd3531fa4b5e' 2008-11-22 16:06:51 -08:00
Chris Anderson
5d34117323 Merge commit '60c5994e432d6b6f92d320187a52eac83c0003c8' 2008-11-22 16:05:57 -08:00
Chris Anderson
2c63d91a81 added a cleanup_design_docs! method 2008-11-22 15:40:14 -08:00
Chris Anderson
8533520ef9 added couchrest-type back in to model 2008-11-22 14:29:03 -08:00
Chris Anderson
e23ad9876e Merge branch 'design-doc' 2008-11-22 14:15:41 -08:00
Chris Anderson
78534f8ec9 I seem to have all the CR::Model specs passing 2008-11-22 14:15:07 -08:00
Chris Anderson
19a70ffd7d got view queries happening correctly 2008-11-21 16:21:20 -08:00
Chris Anderson
32ffbfe019 more notions 2008-11-20 17:03:06 -08:00
Chris Anderson
8f642e709b couchapp spec 2008-11-11 14:10:13 -08:00
Chris Anderson
0769c2690f on the road toward design docs 2008-11-08 16:28:58 -08:00
Vinicius Teles
9399b27f3f Added the method update_attributes_without_saving.
To understand the reason, say you have this:

class Post < CouchRest::Model

  key_accessor :title, :body, :author, comments

  cast :author, :as => 'Author'
  cast :comments, :as => ['Comment']

end

comment = post.comments.first

I'd like to do

comment.update_attributes_without_saving hash

because otherwise, it would create a new document for comment, which I don't want in my particular use. I just want to update the internal comment in the post.
2008-11-07 10:36:38 -02:00
Vinicius Teles
60c5994e43 Improved docummentation of the method CouchRest::Model#cast in order to clarify its use when we need to declare collections of a given type. 2008-11-06 15:43:02 -02:00
Chris Anderson
04e818c154 added cr:view 2008-11-03 22:53:46 -08:00
Chris Anderson
0ce716518f factor out couchrest::document 2008-11-03 22:52:50 -08:00
Matt Aimonetti
1c5feaa845 added documentation to model#first 2008-11-03 18:08:14 -08:00
Matt Aimonetti
b1315d20f4 added model#save! raising an exception if the document isn't saved properly 2008-11-03 17:45:21 -08:00
Matt Aimonetti
19f587c0d6 added support for model#first 2008-11-03 16:40:19 -08:00
Chris Anderson
a6f285adfa better design doc formula 2008-11-02 17:37:34 -08:00
Chris Anderson
4866018100 extlib only in model 2008-10-29 12:30:09 -07:00
Chris Anderson
d72d5699c9 remove comment 2008-10-28 10:21:34 -07:00
Chris Anderson
b37f6a326b fixed a hash bug 2008-10-28 10:07:57 -07:00
Chris Anderson
b62b77eee5 new capabilities for couchapp script 2008-10-28 09:56:42 -07:00
Jeremy Burks
572e0d32fc don't be loud if asked not to be 2008-10-26 09:59:55 -05:00
Chris Anderson
8f09303b75 Merge branch 'master' of git://github.com/mattly/couchrest into mattly/master 2008-10-21 16:46:34 -07:00
Chris Anderson
9787c5830a default page size of 2000 in key_reduce 2008-10-21 16:46:14 -07:00
Matt Lyon
0c50435b68 fix bad variable name on #update_attributes 2008-10-21 11:11:35 -07:00
Chris Anderson
ebfda803c8 docs 2008-10-15 23:26:43 -07:00
Chris Anderson
59f81d2d77 removed metaprogramming 2008-10-14 15:30:38 -07:00
Chris Anderson
6851c7a2be views accept blocks 2008-10-14 15:08:17 -07:00
Chris Anderson
254eb20161 view blocks flow 2008-10-14 01:07:48 -07:00
Chris Anderson
54a0afdf8e added block yields to db.view 2008-10-13 16:46:48 -07:00
Chris Anderson
d13159039a adding ducktype support 2008-10-13 02:01:24 -07:00
Chris Anderson
7a92723260 include-docs support 2008-10-08 12:32:22 -07:00
Chris Anderson
e2f7163816 multi-key support for views, temp-views, and alldocs 2008-10-08 12:19:28 -07:00
Chris Anderson
75bbb26c7a document view queries 2008-10-03 14:23:31 -07:00
Chris Anderson
ba16fb586a update attributes method 2008-10-03 12:58:45 -07:00
Chris Anderson
1e9e550428 documentation model 2008-10-03 11:11:06 -07:00
Chris Anderson
696d89c45c use strings instead of constants 2008-10-02 23:56:22 -07:00
Chris Anderson
26059f63f2 added the Model.all view 2008-10-02 23:36:39 -07:00
Chris Anderson
355d408730 move to class_inheritable_accessor 2008-10-02 23:30:41 -07:00
Chris Anderson
c170008deb dont save over an existing design doc 2008-10-02 21:21:48 -07:00
Chris Anderson
428d304438 argument error 2008-10-02 17:16:49 -07:00
Chris Anderson
9858f85c19 subobject casting 2008-10-02 17:13:59 -07:00
Chris Anderson
03f4169350 couchrest-type 2008-10-02 16:39:06 -07:00
Chris Anderson
8cfed5af4f fix indentation 2008-10-02 16:27:45 -07:00
Chris Anderson
8ac6b78170 default values and lambda unique_ids 2008-10-02 14:11:04 -07:00
Chris Anderson
0b0ac14b19 clean up comments way more 2008-10-02 11:32:11 -07:00
Chris Anderson
10806b675e added CR::Model#destroy 2008-10-02 11:06:37 -07:00
Chris Anderson
f6f66407c7 documentation fix 2008-10-02 10:52:33 -07:00
Chris Anderson
98923843ef converted to Hash subclass 2008-10-02 10:45:08 -07:00
Chris Anderson
2b7e49c9c6 put attachments 2008-09-30 17:22:54 -07:00
Chris Anderson
902e1bed26 moved specs so the autotest filemapping works better 2008-09-30 16:21:28 -07:00
Chris Anderson
0e5eb76459 better docs 2008-09-30 10:20:15 -07:00
Chris Anderson
b3b58ffa83 polished documentation 2008-09-29 23:39:57 -07:00
Chris Anderson
26c4db7fc6 documenting CouchRest::Model 2008-09-29 23:26:34 -07:00
Chris Anderson
280aa43415 documenting CouchRest::Model 2008-09-29 23:16:44 -07:00
Chris Anderson
8f4cdace38 documenting CouchRest::Model 2008-09-29 22:57:52 -07:00
Chris Anderson
7f2d0d3c88 documenting CouchRest::Model 2008-09-29 22:56:24 -07:00
Chris Anderson
b58259ec1a implemented view argument currying 2008-09-29 20:18:18 -07:00
Chris Anderson
6a86a00d21 couchrest model supports custom view definitions 2008-09-29 18:10:07 -07:00
Chris Anderson
4a1de8c1ba couchrest query params passed through by_xxxx views 2008-09-29 17:46:33 -07:00
Chris Anderson
f408dfceb6 compound-key views work 2008-09-29 17:27:41 -07:00
Chris Anderson
5e0cb81ad7 most of the callbacks are installed, adding view generation 2008-09-29 16:28:57 -07:00
Chris Anderson
ce3a3258bc created CouchRest::Model mixin 2008-09-29 09:55:40 -07:00
Chris Anderson
ef3055c222 use url parser to parse database! urls 2008-09-28 16:03:15 -07:00
Chris Anderson
a6f852943e force all JSON dates to be in UTC 2008-09-26 14:31:29 -07:00
Chris Anderson
38462375b4 bug fixes in couchapp 2008-09-16 12:10:45 -04:00
Chris Anderson
7f818c2cf1 added attachment uploading 2008-09-16 11:44:02 -04:00
Chris Anderson
49148644ea templates for app generate 2008-09-16 11:15:00 -04:00
Chris Anderson
2356df978e file manager pushes apps 2008-09-16 11:14:25 -04:00
Chris Anderson
2082c491fa this may fix the attachment erase problem on couchview 2008-09-13 23:54:39 -04:00
Chris Anderson
26d50c8ac1 added a url parser that CouchRest can use throughout (but is not yet using) 2008-09-13 21:07:21 -04:00
Chris Anderson
9e4d5c0eda backwards compatibility for old couchdbs 2008-09-13 18:59:24 -04:00
Chris Anderson
4089e79a7f Revert "cleanup commands"
This reverts commit 3df92619bb.
2008-09-11 22:47:01 -07:00
Chris Anderson
3df92619bb cleanup commands 2008-09-11 22:42:06 -07:00
Chris Anderson
49a36af2b0 fixed apache license 2008-09-11 21:39:48 -07:00
Chris Anderson
0f8baf85ba added apache license 2008-09-11 21:31:59 -07:00
Chris Anderson
711fdc1ca6 all specs pass with the new layout 2008-09-11 21:25:51 -07:00
Chris Anderson
211331f4a6 most specs passing with CouchRest module 2008-09-11 21:22:43 -07:00
Chris Anderson
7028f7f7b3 ganked load path from merb 2008-09-11 21:16:01 -07:00
Chris Anderson
f5fdc8b913 made CouchRest a module 2008-09-11 21:14:34 -07:00
Chris Anderson
26de4acc5a moge thng aournd 2008-09-11 21:09:39 -07:00
Chris Anderson
ac07c15c28 move files around alot today 2008-09-11 21:09:24 -07:00
Chris Anderson
e411207b79 more sweeping changes 2008-09-11 21:00:44 -07:00
Chris Anderson
fa1ef4b4f9 slash and burn reorg 2008-09-11 20:53:38 -07:00
Chris Anderson
40f22ffadc fix broken CouchRest.database! method 2008-09-11 20:48:17 -07:00
Geoffrey Grosenbach
c5397a9b6b Use optparse for couchview. Implemented view generation option. 2008-09-11 13:29:12 -07:00
Geoffrey Grosenbach
021121f22f Added FileManager pull_views method
Fixed bugs in couchcontrol script
2008-09-10 18:03:50 -07:00
Chris Anderson
a2306c3c1b file manager cleanup 2008-09-10 16:19:54 -07:00
Chris Anderson
a8eae5423d make Time.parse available 2008-09-10 16:19:28 -07:00
Chris Anderson
a2a78dcf5f better json time format 2008-09-10 14:37:30 -07:00
Chris Anderson
9e7738fd74 added streamer class 2008-09-07 15:28:20 -07:00
Chris Anderson
ac47164e93 removed enumerable monkeypatches from pager 2008-09-07 14:13:34 -07:00