aboutsummaryrefslogtreecommitdiffstats
path: root/activeresource/test/fixtures/project.rb
diff options
context:
space:
mode:
authortaryn <teast@globalpersonals.co.uk>2009-08-19 11:57:50 +0100
committerJoshua Peek <josh@joshpeek.com>2009-08-19 09:03:17 -0500
commitc2f90d6530dfd0ed68df9f4c429d0f498235e1d4 (patch)
tree97778398363924edd2fc580c642ccefdbf16babf /activeresource/test/fixtures/project.rb
parentef935240582ef6a7d47a9716e8269db817c91503 (diff)
downloadrails-c2f90d6530dfd0ed68df9f4c429d0f498235e1d4.tar.gz
rails-c2f90d6530dfd0ed68df9f4c429d0f498235e1d4.tar.bz2
rails-c2f90d6530dfd0ed68df9f4c429d0f498235e1d4.zip
Added validations to ActiveResource. Added a smoke test to see if we can add a validation and use it, and add a validates callback and use it.
Signed-off-by: Joshua Peek <josh@joshpeek.com>
Diffstat (limited to 'activeresource/test/fixtures/project.rb')
-rw-r--r--activeresource/test/fixtures/project.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/activeresource/test/fixtures/project.rb b/activeresource/test/fixtures/project.rb
new file mode 100644
index 0000000000..e15fa6f620
--- /dev/null
+++ b/activeresource/test/fixtures/project.rb
@@ -0,0 +1,25 @@
+# used to test validations
+class Project < ActiveResource::Base
+ self.site = "http://37s.sunrise.i:3000"
+
+ validates_presence_of :name
+ validate :description_greater_than_three_letters
+
+ # to test the validate *callback* works
+ def description_greater_than_three_letters
+ errors.add :description, 'must be greater than three letters long' if description.length < 3 unless description.blank?
+ end
+
+
+ # stop-gap accessor to default this attribute to nil
+ # Otherwise the validations fail saying that the method does not exist.
+ # In future, method_missing will be updated to not explode on a known
+ # attribute.
+ def name
+ attributes['name'] || nil
+ end
+ def description
+ attributes['description'] || nil
+ end
+end
+