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