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
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
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
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
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
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
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
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
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
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
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
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
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
Chris Anderson
36c8bea453
all specs pass against couchdb trunk
2009-03-15 13:00:47 -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
Chris Anderson
7b03c7ba25
fix for design doc url changes
2009-03-09 13:12:28 -07: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
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
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
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
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
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
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