Commit graph

214 commits

Author SHA1 Message Date
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
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
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
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
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
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