Commit graph

430 commits

Author SHA1 Message Date
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
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
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
Matt Aimonetti
fa29906900 Rebased
* 'master' of git://github.com/jchris/couchrest:
  all specs pass; refined attachment api
  add mattetti's 5aebd53a93
  fix rebase end balance
  Started on the ExtendedDocument class with features moved to mixins.
  Started on the ExtendedDocument class with features moved to mixins.
  updated readme file
  Started the refactoring work on couchrest.
  added some monkey patches to improve the http connection speed. (by keeping the http connection open)
  slight change of API, CR::Document now uses <action>_doc instead of <action>, also added #create! and #recreate! to Document instances
  Added attachment methods to CouchRest::Document: #put_attachment, #fetch_attachment and #delete_attachment. Note you can overwrite exisitng attachments with #put_attachment.
  - Added Database#delete_attachment, for removing them directly
  documentation for Document#copy and #move, copied from Database
  database replication methods, no conflict resolution provided
2009-02-02 15:40:49 -08:00
Chris Anderson
bd2dafd107 add mattetti's 5aebd53a93 2009-02-02 15:03:10 -08:00
Chris Anderson
55cf741859 fix rebase end balance 2009-02-02 14:56:37 -08:00
Matt Aimonetti
5aebd53a93 forgot to push the latest spec fixture 2009-02-02 14:56:17 -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
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
571cd257e0 database replication methods, no conflict resolution provided 2009-02-02 01:25:13 -08:00
Matt Aimonetti
d6665e55ca 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-01-29 18:45:01 -08:00
Matt Aimonetti
6b2e5f84ad 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-01-28 22:55:42 -08:00
Matt Aimonetti
fda5be213a slight change of API, CR::Document now uses <action>_doc instead of <action>, also added #create! and #recreate! to Document instances 2009-01-28 18:16:55 -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
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
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
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
efa3c2e270 remove fm spec 2009-01-08 23:08:21 -08:00
Chris Anderson
88511c6ed0 strip couchapp from couchrest 2009-01-08 23:06:54 -08:00
Chris Anderson
5111cdc78f cleanup gitignore for tmp 2009-01-08 22:20:53 -08:00
Chris Anderson
5d45b8b91b move tmp dir for specs; 2009-01-08 22:18:06 -08:00
Chris Anderson
fb613e7dfb move some couchapp components to couchapp project 2009-01-08 16:48:11 -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
b28e40bb96 commented out spec for fm:generate app 2009-01-04 22:49:39 -08:00
Matt Lyon
71f5ea2a1b Merge branch 'master' of git://github.com/jchris/couchrest
* 'master' of git://github.com/jchris/couchrest:
  file manager a little better
  update gemspec
  don't error when the given directories don't exist
  change count to limit
2009-01-04 22:44:46 -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
Matt Lyon
eca3b06461 don't error when the given directories don't exist 2009-01-04 03:28:08 -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
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
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
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
Chris Anderson
a3ac5fc4e8 Merge branch 'save-bug' of git://github.com/raycmorgan/couchrest into raycmorgan/save-bug 2008-12-31 14:48:29 -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
Matt Lyon
ce172cf77b run individual specs without rake 2008-12-19 02:09:20 -08:00
Matt Lyon
cd53e16eba instantiate Time casts correctly 2008-12-19 02:06:05 -08:00
RayMorgan
b5ec8ba3c3 Fixed the "save bug should fix" spec 2008-12-17 23:09:01 -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
7461e3fede s/localhost/127.0.0.1/ 2008-12-14 12:05:02 +01:00
Chris Anderson
12c09085df justin_dz spec for save bug 2008-12-03 12:09:13 -08:00
Chris Anderson
47087507dd got to green - setup out of order... 2008-12-03 12:03:59 -08:00
Chris Anderson
0c91f5d234 fixed merge 2008-11-22 16:12:16 -08:00
Chris Anderson
9a157ab63b made rake spec pass again 2008-11-22 16:09:34 -08:00
Chris Anderson
64d71d3ac4 Merge commit '9399b27f3f58c1e333b6dd5f20bbcd3531fa4b5e' 2008-11-22 16:06:51 -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
1431196c85 gif mime 2008-11-11 14:10:23 -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
Chris Anderson
0ce716518f factor out couchrest::document 2008-11-03 22:52:50 -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
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
Chris Anderson
59f81d2d77 removed metaprogramming 2008-10-14 15:30:38 -07:00
Chris Anderson
320f6b99aa whitespace 2008-10-14 15:09:02 -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
b1847cb465 better ducktype specs 2008-10-13 16:37:50 -07:00
Chris Anderson
d13159039a adding ducktype support 2008-10-13 02:01:24 -07:00
Chris Anderson
adcaaaf59a fixed specs when run under rake 2008-10-11 09:55:21 -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
ba16fb586a update attributes method 2008-10-03 12:58:45 -07:00
Chris Anderson
696d89c45c use strings instead of constants 2008-10-02 23:56:22 -07:00
Chris Anderson
b3db1c797f silence parens warning 2008-10-02 23:44:54 -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
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
8ac6b78170 default values and lambda unique_ids 2008-10-02 14:11:04 -07:00
Chris Anderson
10806b675e added CR::Model#destroy 2008-10-02 11:06:37 -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
2ae79c51a1 cleanup rakefile business 2008-09-29 21:08:52 -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
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
baa2c1dd37 ignore spec fixtures 2008-09-16 11:16:27 -04:00
Chris Anderson
e3da7d5c8f specs for couchapp 2008-09-16 11:15:36 -04:00
Chris Anderson
2356df978e file manager pushes apps 2008-09-16 11:14:25 -04:00
Jan Lehnardt
bb8371a718 added url parser tests 2008-09-15 00:49:42 +02: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
9e7738fd74 added streamer class 2008-09-07 15:28:20 -07:00
Chris Anderson
54f260173f CouchRest no longer uses POST for doc creation 2008-09-07 13:51:26 -07:00
Chris Anderson
91299f630b added database factory method 2008-09-07 12:54:10 -07:00
Chris Anderson
5d56f1961f added easy method for ensuring databases exist 2008-09-07 12:43:13 -07:00
Chris Anderson
1eac462612 spec the error doc 2008-09-05 14:09:17 -07:00
Chris Anderson
88f83f0742 moved scripts to bin 2008-08-03 12:51:17 -07:00
Chris Anderson
541a3cac74 brought file manager back in as a class 2008-08-02 00:03:54 -07:00
Chris Anderson
93f95741c4 removed version test 2008-07-25 13:47:35 -07:00
Chris Anderson
eecd92a6ef updated rescues for better rest-client 2008-07-19 15:25:02 -04:00
Chris Anderson
f0f25bb7af pager now pages through all_docs view specially 2008-07-14 11:51:15 -07:00
Chris Anderson
5add5b0b5c specs on right server 2008-07-07 00:05:25 -07:00
Chris Anderson
d2de19022e CouchRest::Pager for paging through views 2008-07-04 16:56:37 -07:00
Chris Anderson
915905ca13 upgraded couchrest for 080 2008-07-04 16:56:09 -07:00
Chris Anderson
8641d63533 working towards gem 2008-06-20 12:43:28 -07:00
Chris Anderson
a12ad9c4ea restart etc 2008-06-15 11:43:05 -07:00
Chris Anderson
58c6b7ee8a Merge branch 'mattly/master' 2008-06-12 09:24:07 -07:00
Chris Anderson
82c958606b version numbre spec 2008-06-12 09:16:53 -07:00
Matt Lyon
9954d914c7 PUT attachments as stubs doesnt choke 2008-06-12 08:40:52 -07:00
Chris Anderson
bc7a0ec656 rev spec 2008-06-09 13:18:52 -07:00
Chris Anderson
b350a51963 better attachment api 2008-06-07 09:00:41 -07:00
Chris Anderson
bf1acd8355 document attachments now supported 2008-06-07 08:32:51 -07:00
Chris Anderson
4063210302 update to new Couch, vendor finish 2008-06-01 10:23:24 -07:00
Chris Anderson
85ecf7b076 updated for current revision 2008-05-29 12:32:13 -07:00
Chris Anderson
4cf4b22a75 view round trip specs 2008-05-25 11:49:26 -07:00
Chris Anderson
c776b80ac6 start key and such on all-docs 2008-05-24 17:01:28 -07:00
Chris Anderson
b93f6e7677 JSON.unparse is picky compared to to_json... go figure 2008-05-24 13:17:44 -07:00
Chris Anderson
dc6c9276e5 simplified json include 2008-05-24 12:28:42 -07:00
Chris Anderson
939ecaaf73 just keeping up with the versions 2008-05-23 10:18:09 -07:00
Chris Anderson
ea68f7af85 ability to set keys and count on temp_views 2008-05-22 21:57:21 -07:00
Chris Anderson
ce5bf9ffe8 added handling of view params like count etc 2008-05-22 21:41:52 -07:00
Chris Anderson
1145fc4042 changed the signature of temp_view to match the design document schemas 2008-05-21 14:58:37 -07:00
Chris Anderson
d63f17db85 updated specs for CouchDB version 0.7.3a658733 2008-05-21 11:08:42 -07:00
Chris Anderson
d1ece2c1aa fixed bad constant for localhost name 2008-05-19 14:41:14 -07:00
Chris Anderson
32d96cb634 calling localhost 'localhost' for portability :) 2008-05-17 14:40:45 -07:00
Chris Anderson
80c50ccf8f got reduce support working for javascript views 2008-05-17 13:41:16 -07:00
Chris Anderson
81d27c6f16 updated specs and code to reflect changes in bulk_docs for CouchDB 0.7.3 2008-05-14 17:27:21 -07:00
Chris Anderson
c3b6e3e2d0 get views 2008-03-19 22:38:01 -07:00
Chris Anderson
6995d478c9 temp view 2008-03-19 18:10:16 -07:00
Chris Anderson
7f14458694 bulk save 2008-03-19 16:38:07 -07:00
Chris Anderson
43f51c5490 PUT to update 2008-03-19 16:01:04 -07:00
Chris Anderson
e7ea12f2ae hit a snag with rest-client and query params 2008-03-19 15:21:27 -07:00
Chris Anderson
420168be70 escape get and put ... still need delete 2008-03-19 14:33:41 -07:00
Chris Anderson
99f25bbbfc added document retreival (GET) 2008-03-19 10:17:25 -07:00
Chris Anderson
097ab935c6 getting into view land 2008-03-19 08:57:20 -07:00
Chris Anderson
d356e2356a progress 2008-03-18 23:11:44 -07:00
Chris Anderson
32c01fadad working specy stuff i hope 2008-03-18 11:37:10 -07:00
Chris Anderson
2c42cf1ca5 first check in with one or two specs 2008-03-17 23:07:57 -07:00