Commit graph

581 commits

Author SHA1 Message Date
Sam Lown
c906be229f Small fix 2010-03-05 14:40:51 +00:00
Sam Lown
ca23e186f4 Added ActiveRecord like after_initialize callback to ExtendedDocument 2010-03-03 20:01:27 +00:00
Sam Lown
d992f44365 Refactoring typecast so that it is less invasive and uses latest code base 2010-03-03 02:18:32 +00:00
Sam Lown
88f42d8fe0 Merge branch 'master' of git://github.com/sauy7/couchrest 2010-03-03 00:18:32 +00:00
Marcos Tapajós
0d0a8ae6b8 bumped the version number to 0.35 2010-02-27 21:38:20 -03:00
Pierre Larochelle
cc9ed83cd3 Added an update_doc method to database to handle conflicts during atomic updates.
Also added appropriate specs

Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-02-27 19:05:55 -03:00
Nolan Darilek
62db7853c3 Updated time regexp.
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-02-27 18:47:05 -03:00
Peter Gumeson
6d571a7d81 Class proxy was not setting database on result sets 2010-02-27 18:42:32 -03:00
Marcos Tapajós
17dac85a02 Changing CouchRest::ExtendedDocument to allow chaining the inherit class callback 2010-02-26 21:57:42 -03:00
Noah Zoschke
a856e98a6a remove double CGI escape when PUTting an attachment
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-02-26 21:00:45 -03:00
Will Leinweber
d41c7c96da BUGFIX: attribute protection
Fixes bug where documents recreated from the database were
being stripped of their protected attributes when instantiated

Signed-off-by: Marcos Tapajos <tapajos@Tapajos-MacBook.local>
2010-02-26 17:18:10 -06:00
Tim Heighes
151ea5566d Fixes for 4 of the original 10 failing specs 2010-02-26 00:25:51 +01:00
Julien Kirch
38dad4bc78 added ascending compatability with restclient-1.4.0
Signed-off-by: Will Leinweber <will@bitfission.com>
2010-02-23 16:21:00 -06:00
Will Leinweber
15ea10eb9c attempt to merge wildchild/type_cast, still failing specs 2010-02-17 16:35:42 -06:00
Damien Mathieu
ec51c34f7d recreating a non-existant database shouldn't raise any exception (and we make sure of it)
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-02-03 14:09:56 -02:00
Johannes J. Schmidt
a7ee95b33c fixed extended attachment encoding part 2
encoding was done twice, once while setting attachment
and once while saving the document.

Also the attachment was decoded while retreaving, but this is done by
CouchDB itself automatically, as described in
http://wiki.apache.org/couchdb/HTTP_Document_API#line-463.

Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-01-29 22:18:55 -02:00
Johannes J. Schmidt
dad7e349a7 fixed set_attachment_attr
works with CouchDB 0.10.0

* use "content_type" instead of "content-type"
* do not encode attachment

Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-01-29 22:18:40 -02:00
Sam Lown iMac
08cf9e59b6 Fixing incorrectly generated document URIs with testing
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-01-03 21:42:22 -02:00
Igal Koshevoy
d0d5eec199 Added CouchRest::Database#bulk_save_doc and #batch_save_doc as human-friendlier wrappers around #save_doc. 2009-11-15 23:15:20 -08:00
Igal Koshevoy
62ea68df63 Improved CouchRest::Database#save_doc, added "batch" mode to significantly speed up saves at cost of lower durability gurantees. 2009-11-15 23:14:09 -08:00
deepj
b8bda3bb02 Initialization of ExtendentDocument model shouldn't failed on a nil value in argument
Signed-off-by: Tapajós <tapajos@gmail.com>
2009-11-10 07:52:33 -02:00
Tapajós
ca2faa81fe Using |property_name, property_value| instead of |key, value|. 2009-10-31 10:49:26 -02:00
Tapajós
1315d65681 Using |attribute_name, attribute_value| instead of |k,v|. 2009-10-31 10:42:36 -02:00
Will Leinweber
b5d09afef5 Adds attribute protection to properties
Public Facing
   * through either :protected or :accessible8 flags
   * prevents protected attributes from being set in mass assignment
 Developer Facing
   * refactors #initialize and #update_attribute_without_saving
       to use same private methods to set attributes on ExtendedDocument
   * adds new mixin to do protection

Signed-off-by: Tapajós <tapajos@gmail.com>
2009-10-31 09:56:58 -02:00
Tapajós
58d621d399 Changing some validations to be compatible with activemodel. 2009-10-31 09:54:16 -02:00
Tapajós
d4010ad76e I think that init_method is more semantic that send. 2009-10-31 09:53:50 -02:00
Julien Sanchez
b5d6baaf11 Save on Document & ExtendedDocument crashed if bulk
- document#save expects to receive {"ok" => true} even with bulk mode
- ExtendedDocument#save_without_callbacks reverted to previous code
  (expecting result["ok"] as in create_without_callbacks)
2009-10-18 01:59:31 +08:00
Julien Sanchez
1c43a8f3d3 Streamer fixes
* url must be quoted inside the curl command otherwise '&' between
  params are interpreted by shells
* View url format updated
* Streamer yielded the last row returned by curl ("}]") as nil
* Specs
2009-10-18 01:59:30 +08:00
Mathias Meyer
d8e7652680 Added support for https database URIs.
Signed-off-by: Tapajós <tapajos@gmail.com>
2009-10-18 01:57:39 +08:00
Tapajós
2f2c507582 Merge remote branch 'tapajos/master'
Conflicts:
	README.md
	lib/couchrest/mixins/properties.rb
	spec/couchrest/core/database_spec.rb
	spec/couchrest/more/extended_doc_spec.rb
2009-09-20 22:52:39 -03:00
Tapajós
3c2ebb022d Merge remote branch 'remotes/old/master'
Conflicts:
	README.md
	couchrest.gemspec
	lib/couchrest.rb
	lib/couchrest/mixins/properties.rb
2009-09-03 23:10:06 -03:00
Tapajós
8db522a116 Fix issue #1. 2009-09-03 00:27:04 -03:00
Tapajós
5219f3c0d5 Updating the version number 2009-09-03 00:09:16 -03:00
Tapajós
bc6df2f5ca Adding support to :cast_as => 'Date'. 2009-09-02 23:55:55 -03:00
Matt Aimonetti
ccdf9d779a removed the Database class deprecation notices 2009-08-24 17:32:34 -07:00
Matt Aimonetti
a3cc649616 last touch up before merging all the 0.4 changes 2009-08-24 17:12:13 -07:00
Matt Aimonetti
64a51b73ae merged Peter's stuff 2009-08-24 16:57:58 -07:00
John Wood
feb09f9764 Removed amount_pages calculation for the pagination collection, since it cannot be reliably calculated without a view 2009-08-20 12:29:02 -07:00
John Wood
b0dca70b02 Fixed a bug in the pagination code that caused it to paginate over records outside of the scope of the view parameters. 2009-08-20 12:28:28 -07:00
Luke Burton
2057e59777 To address http://github.com/couchrest/couchrest/issues/#issue/2, we simply remove the check on the value returned by database.save_doc. Errors from RestClient or CouchDB itself will be propagated as exceptions, which an upstream client should handle for themselves. 2009-08-20 12:25:12 -07:00
Peter Gumeson
44d02c4b32 Rails logger is no longer needed. 2009-08-16 21:19:45 -07:00
Peter Gumeson
1938270d65 Merge commit 'mattetti/master' 2009-08-12 16:48:13 -07:00
Chris Anderson
212bc79f3e fix content_type handling for attachments 2009-08-06 13:04:17 -07:00
Matt Aimonetti
6811745a32 bumped the version number to 0.33 2009-08-03 12:23:13 -07:00
Matt Aimonetti
889a923dbf Added #amount_pages to a paginated result array 2009-08-03 12:19:07 -07:00
Matt Aimonetti
a17df45fc3 made all the specs run on 1.9.2, yay :) 2009-08-01 14:21:18 -07:00
John Wood
d1d8da513c Added code to generate a property? method for properties casted as :boolean
Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-07-31 08:23:45 +08:00
Matt Aimonetti
5270fde0fa added an option to force the deletion of a attachment 2009-07-29 20:12:35 -07:00
Matt Aimonetti
9141669df1 extracted the rest API to its own module 2009-07-29 18:32:34 -07:00
Matt Aimonetti
ac3d0a988f added a Rack logger middleware 2009-07-27 00:14:38 -07:00
tc
41eeedd49b removed {:reduce => false} in #all method to make it 0.10 comp. 2009-07-26 23:33:15 -07:00
Matt Aimonetti
dd480bcd75 bumped version to 0.32 2009-07-22 16:54:28 -07:00
Matt Aimonetti
5cd2eaf18a made get not raise an exception anymore, use get! instead if you need to raise exceptions.
* ExtendedDocument.get doesn't raise an exception anymore. If no documents are found nil is returned.
* ExtendedDocument.get! works the say #get used to work and will raise an exception if a document isn't found.
2009-07-22 16:05:55 -07:00
Matt Aimonetti
87d246d30e modified the 'all' view to emit doc ids so we can do Model.all(:keys => [1,2]) 2009-07-22 15:45:18 -07:00
Peter Wagenet
153ce54b1e Added ValidationErrors#count in order to play nicely with Rails 2009-07-21 23:26:24 -07:00
Daniel Kirsch
4d4972f0de fixed class proxy design doc wreidness 2009-07-21 23:38:00 +02:00
Daniel Kirsch
3ee810010d forgot to add database to count query 2009-07-21 14:36:09 +02:00
Daniel Kirsch
be7cd7442b added count to proxy 2009-07-21 14:14:58 +02:00
wildchild
e4ad16b77c Use Time#mktime_with_offset 2009-07-21 09:31:18 +06:00
Peter Gumeson
d85155040a Merge commit 'mattetti/master' 2009-07-20 16:21:10 -07:00
wildchild
f65d8bbbcc Should cast casted attribute on direct assignment 2009-07-21 05:01:34 +06:00
Matt Aimonetti
413a7602e8 added amount_pages to a paginated collection 2009-07-20 15:52:14 -07:00
wildchild
e27135cb1e Fixed required_field_validator to behave correctly with boolean fields 2009-07-21 03:18:07 +06:00
wildchild
16d9e819d7 Added typecasting of properties 2009-07-21 03:17:27 +06:00
Matt Aimonetti
0a4f7e0607 bumping the release version before breaking the API in 0.4 2009-07-19 17:14:06 -07:00
Peter Gumeson
e87c543b0f reunited some __FILE__, __LINE__ with their + 1 2009-07-19 01:23:51 -07:00
Peter Gumeson
1e44302d1a Merge commit 'mattetti/master' 2009-07-19 00:01:07 -07:00
Peter Gumeson
7bae8acc36 Merge branch 'new_callbacks' 2009-07-18 23:37:16 -07:00
Arnaud Berthomier
142989a80d Dont die on empty results
Signed-off-by: Matt Aimonetti <mattaimonetti@gmail.com>
2009-07-18 01:44:42 +08:00
Matt Aimonetti
5140899041 Added ExtendedDocument.create({}) and #create!({}) so you don't have to do Model.new.create 2009-07-17 00:12:33 -07:00
Matt Aimonetti
964526193b Optimized Model.count to run about 3x faster 2009-07-16 20:38:15 -07:00
Matt Aimonetti
8f8b5dc568 added support to cast Float values 2009-07-16 19:52:53 -07:00
Matt Aimonetti
9a167cc27d fixed the specs 2009-07-14 23:48:06 -07:00
Matt Aimonetti
b2a29d9eb7 started extracting the http layer 2009-07-14 01:43:40 -07:00
Matt Aimonetti
bd1b114930 bumped version to 0.30 and added history.txt + pagination doc in the readme 2009-07-08 11:54:06 -07:00
John Wood
42482a626a Changed pagination technique used by Collection
Modified Collection to use the pagination technique described at
http://wiki.apache.org/couchdb/How_to_page_through_results where possible.
2009-07-08 09:45:08 -07:00
John Wood
a0d6204b42 Added some more doc for Collection, and cleaned up how provides_collection works. 2009-07-08 09:43:31 -07:00
John Wood
a9a53b8729 Added more tests for Collection module, cleaned up the code as well. 2009-07-08 09:40:47 -07:00
John Wood
5963f1d4f8 Better integration with couchrest views. More tests, doc, and some cleanup still needed. 2009-07-08 09:39:30 -07:00
John Wood
cf76466795 Added Collection mixin.
The Collection mixin adds support for executing a view, and passing
back the view results as an Array of the given ExtendedDocument instance.
It also supports will_paginate like pagination methods (paginate, paginated_each),
which will only fetch the given set of documents from CouchDB.
2009-07-08 09:38:26 -07:00
Seth Falcon
3e2b3ece46 Timeout::TimeoutError does not exist, use Timeout::Error instead
Also added a require for 'timeout' that contains this code.  Easy to get
confused as there is an alias TimeoutError:

irb(main):001:0> require 'timeout'
=> true
irb(main):002:0> TimeoutError
=> Timeout::Error
irb(main):003:0> Timeout::Error
=> Timeout::Error
irb(main):004:0> Timeout::TimeoutError
NameError: uninitialized constant Timeout::TimeoutError
        from (irb):4
2009-07-08 09:32:43 -07:00
Matt Aimonetti
9a89db44f1 fixed a commit that got reverted by accident 2009-07-08 09:28:15 -07:00
Rob Kaufman
baabe40674 Fixed validates_is_numeric when dealing with an actual float 2009-07-08 09:17:07 -07:00
Matt Aimonetti
82090cb780 modified the timestamp parsing to run faster, making a big difference when loading huge datasets 2009-07-07 23:55:20 -07:00
Peter Gumeson
ce02d05eac Merge commit 'mattetti/master' 2009-06-20 21:05:00 -07:00
wildchild
f9d8f09ab9 Handle default values properly 2009-06-18 15:00:13 -07:00
Peter Gumeson
f4f3946d86 Merged in more new callback stuff from rails 3 2009-06-13 22:41:16 -07:00
Peter Gumeson
a47de6aaf5 Tidying up rails support 2009-06-13 14:51:15 -07:00
Peter Gumeson
62e8709df7 Fixed some casting issues for assigned properties 2009-06-12 12:22:58 -07:00
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