Will Leinweber
d333133319
Adds suppport for ActiveModel::Dirty and ::AttributeMethods
...
* ActiveModel::Dirty
** Basic support for dirty tracking
** It does not bubble up any changes to casted models currently
* ActiveModel::AttributeMethods
** Attributes are now read and written through ActiveModel
** This also allows you to add your own attribute methods with
prefix suffix and affix names. For more information check out
ActiveModel::AttributeMethods::ClassMethods
2010-09-16 17:30:43 -05:00
Sam Lown
5c21de8586
Fixing find(blank) issue
2010-09-05 20:06:44 +02:00
Sam Lown
31770ba571
Merge branch 'master' of github.com:couchrest/couchrest_model
2010-09-05 19:18:37 +02:00
Will Leinweber
c2fde42fa6
bugfix: allow CastedArrays to be assigned
...
(And be a bit more general about it)
2010-09-03 12:23:53 -05:00
Sam Lown
fafbfff474
Ensuring update_attributes cannot be called in CastedModel as per issue #9
2010-08-24 19:27:35 +02:00
Sam Lown
c32992c21b
Merge branch 'master' of git://github.com/tapajos/couchrest_model
...
Conflicts:
Rakefile
couchrest_model.gemspec
history.txt
lib/couchrest_model.rb
spec/couchrest/attribute_protection_spec.rb
2010-08-24 11:45:37 +02:00
Marcos Tapajós
bb667459a8
Adding model generator
2010-08-23 20:29:34 -03:00
Will Leinweber
62f4f72cab
Fixes Model.new(nil) with attribute protection. GH issue #8
...
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-08-23 20:02:08 -03:00
Will Leinweber
9437678380
refactor #read_ and #write_attribute to behave the same when called with a missing property
...
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-08-23 20:00:19 -03:00
Will Leinweber
49c9656fe3
Allow mixing of protected and accessible properties.
...
Any unspecified properties are now assumed to be protected by default
Signed-off-by: Marcos Tapajós <tapajos@gmail.com>
2010-08-23 19:59:25 -03:00
Sam Lown
51918548b1
Finalizing move to rspec 2.0.0 (rake wasn't working)
2010-08-18 20:00:03 +02:00
Sam Lown
dad386d8c9
Fixing time parsing issue for times without zone
2010-08-18 19:36:01 +02:00
Will Leinweber
1a7154f5bf
refactor #read_ and #write_attribute to behave the same when called with a missing property
2010-08-11 22:27:53 -05:00
Will Leinweber
aac6b80d26
Allow mixing of protected and accessible properties.
...
Any unspecified properties are now assumed to be protected by default
2010-08-11 17:42:14 -05:00
Sam Lown
ee31946e07
Merge branch 'master' of github.com:couchrest/couchrest_model into improve_associations
2010-08-11 17:36:02 +02:00
Sam Lown
796f7d9f7e
Raising an error when adding an un-saved item to a collection
2010-08-04 11:54:02 +02:00
Marcos Tapajós
33657d9470
creating attachments accessor
2010-08-03 23:58:28 -03:00
Marcos Tapajós
c7acbc07ec
Fixing documentation and two describes
2010-08-03 23:09:05 -03:00
Marcos Tapajós
1a551b54eb
Adding tests to some expected behaviors
2010-08-03 22:55:17 -03:00
Sam Lown
efb07295f0
Fixing big problem with lack of database passed to collection proxy
2010-06-25 20:02:18 +02:00
Sam Lown
c52f009270
Fixing typoo
2010-06-23 11:58:35 +02:00
Sam Lown
3d46db1104
Fixing proxy and view bug
2010-06-22 14:15:30 +02:00
Sam Lown
fcbc0b08e5
Adding manual view support to uniqueness validation
2010-06-21 23:12:15 +02:00
Sam Lown
8337bab714
Fixing uniqueness proxy error + more in README
2010-06-21 22:37:13 +02:00
Sam Lown
08390e6709
Adding uniqueness validation support out of the box
2010-06-21 21:33:46 +02:00
Sam Lown
b81d37fc02
Fixing association bug to avoid searching when foreign key is nil
2010-06-21 17:03:32 +02:00
Sam Lown
226fe3bf38
Fixing view deleting database option bug
2010-06-21 16:43:33 +02:00
Sam Lown
0c008d4bc7
Renaming support delete method so as not to conflict with ExtendedDocument
2010-06-21 15:10:42 +02:00
Sam Lown
d138ebc05f
Testing model name
2010-06-21 14:13:19 +02:00
Sam Lown
188fd0d4de
Fixing ActiveModel special calls
2010-06-21 13:58:19 +02:00
Sam Lown
c280b3a29b
Renaming to CouchRest Model
...
Refactored basic directory structure.
Moved to ActiveSupport for Validations and Callbacks.
Cleaned up older code, and removed support for text property types.
2010-06-20 22:01:11 +02:00
Sam Lown
9f1eea8d32
Fixes and testing for class proxy
2010-06-18 21:11:02 +02:00
Sam Lown
061c7a0154
Moving tests for class proxy and fixing issue with finding first
2010-06-18 20:07:34 +02:00
Sam Lown
5580caf346
Adding missing methods to proxy, proxy needs tests
2010-06-18 19:00:20 +02:00
Sam Lown
1b89f1e1df
Array Properties accept hash with ordered keys and raise error for anything else
2010-06-18 01:24:49 +02:00
Sam Lown
dd55466764
adding support for collection_of association
2010-06-17 15:02:33 +02:00
Sam Lown
fa0ab968a8
Adding associations to casted model
2010-06-17 02:43:17 +02:00
Sam Lown
144fff028a
Raising version to match history
2010-06-17 02:39:55 +02:00
Sam Lown
a7a6b2f0ac
adding initial support for belongs_to associations
2010-06-17 02:39:09 +02:00
Sam Lown
e638db63c2
Adding more tests for new property class layout
2010-06-16 22:02:12 +02:00
Sam Lown
2b0694e1e2
Merged
2010-06-16 21:04:53 +02:00
Sam Lown
19cd7ae41e
trying to refine design doc change detection
2010-06-15 02:10:14 +02:00
Sam Lown
d0f8b0be68
Ensuring that views with two properties will quick find
2010-06-15 01:35:14 +02:00
Sam Lown
5dfd18cd71
Adding support for find_by quick view access searches
2010-06-15 01:15:30 +02:00
Sam Lown
b5d38e3ebd
Updating versions for beta release
2010-06-11 02:02:22 +02:00
Sam Lown
b5d03d0be7
Check for nil paths on MIME check
2010-06-08 00:17:43 +02:00
Sam Lown
406c2e6a01
Altering history
2010-06-07 14:04:43 +02:00
Sam Lown
7b40042087
Adding alias to get for find
2010-06-07 13:56:39 +02:00
Sam Lown
5b048c2280
More trueness testing and removing string comparison for booleans
2010-05-22 00:17:33 +02:00
Sam Lown
3fa8c4b215
Fixing #property? support for boolean and TrueClass
2010-05-21 23:00:19 +02:00
Sam Lown
81168bdd79
Correcting old HTTP abstract issue
2010-05-20 20:49:53 +02:00
Sam Lown
89c45ebb87
Adding support for setting types with hash
2010-05-13 00:17:30 +02:00
Sam Lown
b0d2258bd3
Improving handling of mime types, instanciation of documents from the
...
database, and more dependencies on active_support.
2010-05-12 23:43:17 +02:00
Sam Lown
303f0cd1cf
Adding validation by default
2010-05-11 16:27:06 +02:00
Sam Lown
11a56e6f48
Moving initial loading parts
2010-05-11 15:37:50 +02:00
Sam Lown
d239d037fb
Added base file for better automated library loading support
2010-05-11 00:15:40 +02:00
Sam Lown
bd481151d9
Removing monkeypatches to avoid conflict with CouchRest
2010-05-10 22:28:19 +02:00
Sam Lown
3894579304
Moving to own repo without the base couchrest
2010-05-10 21:19:24 +02:00
Sam Lown
e6604a0990
Simplifying design docs
2010-04-16 02:51:59 +02:00
Sam Lown
0e282f0727
Disabling reset_design_doc to avoid conflict errors
2010-04-14 20:47:26 +00:00
Sam Lown
ab6d833397
Adding support for only resfreshing design document if really required
2010-04-07 21:00:51 +00:00
Sam Lown
5fd1c3903b
Making design doc thread safe for checking status of design doc
2010-04-06 17:51:17 +00:00
Sam Lown
77cb8160c7
Fixing support for specifying database in collections
2010-04-05 22:22:56 +00:00
Sam Lown
f196aacecc
Simplifying and moving CastedArray into own file
2010-03-31 08:25:33 +00:00
Sam Lown
1b019fa3fe
Merge branch 'master' of git://github.com/couchrest/couchrest
2010-03-30 20:57:22 +00:00
Sam Lown
dd3df8fb69
Adding support for defining cast_as on properties as a Class
2010-03-30 20:50:47 +00:00
Sam Lown
64d68ecc1a
Using Classes instead of strings for typecasting and removing redundant comparisons
2010-03-30 19:06:24 +00:00
John Wood
b26f90d2ff
Added support for couchdb-lucene.
...
Added a search method to CouchRest:Database to search the documents in a
given database. Added support for a :search parameter to Collection's
paginated_each method, which will allow you to paginate over a set of
search results.
This code has been brought to you by Dave Farkas (sakrafd) and
Arnaud Berthomier (oz).
2010-03-15 19:20:07 -05:00
John Wood
3066458eed
Provide a description of the timeout error
2010-03-15 19:16:40 -05:00
Will Leinweber
ef6739774b
Merge remote branch 'samlown/master' into official-master
2010-03-15 18:50:20 -05:00
Sam Lown
e922b81ccc
Using database method call instead of using variable
2010-03-13 15:03:38 +00:00
Sam Lown
de0878c84b
Adding fix for ruby1.9.1 when Array casted property is not provided an array
2010-03-11 10:49:54 +00:00
sauy7
3c314e14d0
Patching in fixes for missing uri scheme in CouchRest.parse and adding support for continuous replication
2010-03-10 18:49:31 -06:00
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
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
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
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
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