Commit Graph

115 Commits

Author SHA1 Message Date
David Heinemeier Hansson
903ef71b99 Added transactional fixtures that uses rollback to undo changes to fixtures instead of DELETE/INSERT -- it's much faster. See documentation under Fixtures #760 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@846 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 13:51:55 +00:00
David Heinemeier Hansson
7267db5890 Added destruction of dependent objects in has_one associations when a new assignment happens #742 [mindel]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@843 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 13:40:21 +00:00
David Heinemeier Hansson
838ae35d63 Added validates_numericality_of #716 [skanthak/c.r.mcgrath]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@842 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 12:43:23 +00:00
David Heinemeier Hansson
fe6d929bf0 Fixed reflection_for_gps_location test
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@835 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 11:56:22 +00:00
David Heinemeier Hansson
5e44eda787 Fixed that HasManyAssociation#count was using :finder_sql rather than :counter_sql if it was available #445 [Scott Barron]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@834 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-06 11:53:49 +00:00
David Heinemeier Hansson
02ba03509c Added better defaults for composed_of, so statements like composed_of :time_zone, :mapping => %w( time_zone time_zone ) can be written without the mapping part (it's now assumed)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@821 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-01 23:52:36 +00:00
David Heinemeier Hansson
eac7cf0b06 Added preliminary support for an agile database migration technique (currently only for MySQL)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@818 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-01 14:27:32 +00:00
David Heinemeier Hansson
85bb292a8f Added MacroReflection#macro which will return a symbol describing the macro used (like :composed_of or :has_many) #718, #248 [james@slashetc.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@805 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-27 17:18:35 +00:00
David Heinemeier Hansson
4fbc3e30eb Changed the auto-timestamping feature to use ActiveRecord::Base.default_timezone instead of entertaining the parallel ActiveRecord::Base.timestamps_gmt method. The latter is now deprecated and will throw a warning on use (but still work) #710 [Jamis Buck]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@788 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-24 12:00:42 +00:00
David Heinemeier Hansson
85fa238bca Moved over TimeZone test too
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@770 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-23 16:29:13 +00:00
David Heinemeier Hansson
a8f36e88dd Remove outdated dev-utils
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@765 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-23 14:30:24 +00:00
David Heinemeier Hansson
10d458b0aa Added a OCI8-based Oracle adapter that has been verified to work with Oracle 8 and 9 #629 [Graham Jenkins]. Removed Maiks Oracle adapter until it can be merged with the OCI one.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@761 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-23 13:34:57 +00:00
David Heinemeier Hansson
6329daf5ac Added TimeZone as the first of a number of value objects that Active Record will start shipping to provide incentatives to use rich value objects using composed_of #688 [Jamis Buck]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@760 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-23 12:56:16 +00:00
David Heinemeier Hansson
dfd43d577e Fixed that when using validation macros with a custom message, if you happened to use single quotes in the message string you would get a parsing error #657 [tonka]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@740 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-22 13:54:26 +00:00
David Heinemeier Hansson
101968f367 Added automatic dropping/creating of test tables for running the unit tests on all databases #587 [adelle@bullet.net.au]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@719 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-20 21:21:41 +00:00
David Heinemeier Hansson
5dcbe933df Added validates_each that validates each specified attribute against a block #610 [bitsweat]. Added :allow_nil as an explicit option for validates_length_of, so unless that's set to true having the attribute as nil will also return an error if a range is specified as :within #610 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@667 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-18 17:27:26 +00:00
David Heinemeier Hansson
28edbca477 Fixed that the dynamic finder like find_all_by_something_boolean(false) didn't work #649 [lmarlow@yahoo.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@666 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-18 17:16:04 +00:00
David Heinemeier Hansson
bc574a86ac Skip Active Record tests in Action Pack if the SQLite database cant be brought up
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@652 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-17 19:28:13 +00:00
David Heinemeier Hansson
0e764a5599 Addded validation for validate all the associated objects before declaring failure with validates_associated #618 [Tim Bates]. Added that validates_* now accept blocks to perform validations #618 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@650 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-17 19:14:15 +00:00
David Heinemeier Hansson
dc3d6eb9b4 Moved Active Support into its own gem
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@624 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-15 15:57:44 +00:00
David Heinemeier Hansson
4ce69d79b7 Fix test case for MySQL #598
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@619 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-15 02:06:52 +00:00
David Heinemeier Hansson
1aa82b3217 Added keyword-style approach to defining the custom relational bindings #545 [Jamis Buck]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@527 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:26:57 +00:00
David Heinemeier Hansson
098fa94356 Fixed documentation snafus #575, #576, #577, #585
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@525 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:15:53 +00:00
David Heinemeier Hansson
336c2cbb8f Added an Oracle adapter that works with the Oracle bindings by Yoshida (http://raa.ruby-lang.org/project/oracle/) #564 [Maik Schmidt]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@522 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 14:06:00 +00:00
David Heinemeier Hansson
8382e6e506 Dont call id explicitly to do reloading that way we get rid of the warnings #583 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@521 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 13:47:14 +00:00
David Heinemeier Hansson
431e21cb45 Fixed Base#clone for use with PostgreSQL #565 [hanson@surgery.wisc.edu]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@519 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-07 13:43:44 +00:00
David Heinemeier Hansson
76242253ad Updated documentation for serialize
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@513 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 20:00:44 +00:00
David Heinemeier Hansson
66f44e6cbb Updated documentation for serialize
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@512 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 20:00:20 +00:00
David Heinemeier Hansson
10220d356d Fixed dependency reloading by switching to a remove_const approach where all Active Records, Active Record Observers, and Action Controllers are reloading by undefining their classes. This enables you to remove methods in all three types and see the change reflected immediately and it fixes #539. This also means that only those three types of classes will benefit from the const_missing and reloading approach. If you want other classes (like some in lib/) to reload, you must use require_dependency to do it.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@511 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 18:45:06 +00:00
David Heinemeier Hansson
efa81dad51 Added the option of supplying an array of ids and attributes to Base#update, so that multiple records can be updated at once (inspired by #526/Duane Johnson). Added the option of supplying an array of attributes to Base#create, so that multiple records can be created at once. Added that Base#delete and Base#destroy both can take an array of ids to delete/destroy #336. Added that has_many association build and create methods can take arrays of record data like Base#create and Base#build to build/create multiple records at once.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@504 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-25 12:45:01 +00:00
David Heinemeier Hansson
0d2db8a7d1 Added Base.update_collection that can update an array of id/attribute pairs, such as the ones produced by the recent added support for automatic id-based indexing for lists of items #526 [Duane Johnson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@496 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 14:13:10 +00:00
David Heinemeier Hansson
566a36966b Added that update_all calls sanitize_sql on its updates argument, so stuff like MyRecord.update_all(['time = ?', Time.now]) works #519 [notahat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@489 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 13:06:12 +00:00
David Heinemeier Hansson
93ec130377 Fixed that the dynamic finders didnt treat nil as a "IS NULL" but rather "= NULL" case #515 [Demetrius]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@488 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 13:02:50 +00:00
David Heinemeier Hansson
872ddaf290 Added bind-named arrays for interpolating a group of ids or strings in conditions #528 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@485 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:57:22 +00:00
David Heinemeier Hansson
b29c01ea89 Added that has_and_belongs_to_many associations with additional attributes also can be created between unsaved objects and only committed to the database when Base#save is called on the associator #524 [Eric Anderson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@484 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:39:23 +00:00
David Heinemeier Hansson
1d61845587 Fixed that records fetched with piggy-back attributes or through rich has_and_belongs_to_many associations couldn't be saved due to the extra attributes not part of the table #522 [Eric Anderson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@483 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-24 11:20:47 +00:00
David Heinemeier Hansson
95454bfb33 Added mass-assignment protection for the inheritance column -- regardless of a custom column is used or not
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@477 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-23 17:24:54 +00:00
David Heinemeier Hansson
97849debf3 Fixed that association proxies would fail === tests like PremiumSubscription === @account.subscription
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@476 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-23 15:19:33 +00:00
David Heinemeier Hansson
dfed3d309e A few missing files
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@468 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-20 14:55:13 +00:00
David Heinemeier Hansson
bce0e14930 Fixed that the belongs_to and has_one proxy would fail a test like 'if project.manager' -- this unfortunately also means that you can't call methods like project.manager.build unless there already is a manager on the project #492 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@456 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-18 11:07:03 +00:00
David Heinemeier Hansson
d598635988 Added test_forgetting_the_load_when_foreign_key_enters_late
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@436 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-17 00:44:55 +00:00
David Heinemeier Hansson
8b82c5042d Test for #489
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@434 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-17 00:32:56 +00:00
David Heinemeier Hansson
bb92382424 Fixed that unit tests for MySQL are now run as the "rails" user instead of root #455 [Eric Hodel]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@419 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-15 17:54:45 +00:00
David Heinemeier Hansson
51390b8524 Added validates_associated that enables validation of objects in an unsaved association #398 [Tim Bates]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@418 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-15 17:52:08 +00:00
David Heinemeier Hansson
823554eafe Added support for associating unsaved objects #402 [Tim Bates]
Added replace to associations, so you can do project.manager.replace(new_manager) or project.milestones.replace(new_milestones) #402 [Tim Bates]
Added build and create methods to has_one and belongs_to associations, so you can now do project.manager.build(attributes) #402 [Tim Bates]
Fixed that Base#== wouldn't work for multiple references to the same unsaved object #402 [Tim Bates]
Added that if a before_* callback returns false, all the later callbacks and the associated action are cancelled. If an after_* callback returns false, all the later callbacks are cancelled. Callbacks are generally run in the order they are defined, with the exception of callbacks defined as methods on the model, which are called last. #402 [Tim Bates]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@417 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-15 17:45:16 +00:00
David Heinemeier Hansson
0f4cba7b86 git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@388 5ecf4fe2-1ee6-0310-87b1-e25e094e27de 2005-01-11 00:53:04 +00:00
David Heinemeier Hansson
b067bf7884 Added Base#attributes that returns a hash of all the attributes with their names as keys and clones of their objects as values #433 [atyp.de]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@386 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-11 00:45:26 +00:00
David Heinemeier Hansson
79365a0184 Fixed that foreign keys named the same as the association would cause stack overflow #437 [Eric Anderson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@382 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-11 00:24:19 +00:00
David Heinemeier Hansson
3ff5c5805f Added Base#reload that reloads the attributes of an object from the database #422 [Andreas Schwarz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@376 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-10 23:49:57 +00:00
David Heinemeier Hansson
a133f3e64f Added SQLite3 compatibility through the sqlite3-ruby adapter by Jamis Buck #381 [bitsweat]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@374 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-01-10 23:09:51 +00:00