aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorsnusnu <gamsnjaga@gmail.com>2010-02-21 03:05:28 +0100
committerYehuda Katz <yehudakatz@YK.local>2010-02-20 20:17:29 -0800
commitf81c6bc0404ba2a03eed0ec6c08bbac45661305f (patch)
tree6c6d892fb444687556ba001c189e0d6e533cddb7 /actionpack/test
parentfed72b5842e5e8604917602a15c126d48cf12fde (diff)
downloadrails-f81c6bc0404ba2a03eed0ec6c08bbac45661305f.tar.gz
rails-f81c6bc0404ba2a03eed0ec6c08bbac45661305f.tar.bz2
rails-f81c6bc0404ba2a03eed0ec6c08bbac45661305f.zip
AMo #key is now #to_key and CI is probably happy
Obviously #key is a too common name to be included in the AMo interface, #to_key fits better and also relates nicely to #to_param. Thx wycats, koz and josevalim for the suggestion. AR's #to_key implementation now takes customized primary keys into account and there's a testcase for that too. The #to_param AMo lint makes no assumptions on how the method behaves in the presence of composite primary keys. It leaves the decision wether to provide a default, or to raise and thus signal to the user that implementing this method will need his special attention, up to the implementers. All AMo cares about is that #to_param is implemented and returns nil in case of a new_record?. The default CompliantObject used in lint_test provides a naive default implementation that just joins all key attributes with '-'. The #to_key default implementation in lint_test's CompliantObject now returns [id] instead of [1]. This was previously causing the (wrong) tests I added for AR's #to_key implementation to pass. The #to_key tests added with this patch should be better. The CI failure was caused by my lack of knowledge about the test:isolated task. The tests for the record_identifier code in action_controller are using fake non AR models and I forgot to stub the #to_key method over there. This issue didn't come up when running the test task, only test:isolated revealed it. This patch fixes that. All tests pass isolated or not, well, apart from one previously unpended test in action_controller that is unrelated to my patch.
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/record_identifier_test.rb1
-rw-r--r--actionpack/test/lib/controller/fake_models.rb14
-rw-r--r--actionpack/test/template/prototype_helper_test.rb6
3 files changed, 11 insertions, 10 deletions
diff --git a/actionpack/test/controller/record_identifier_test.rb b/actionpack/test/controller/record_identifier_test.rb
index 6b6d154faa..813dedc80d 100644
--- a/actionpack/test/controller/record_identifier_test.rb
+++ b/actionpack/test/controller/record_identifier_test.rb
@@ -5,6 +5,7 @@ class Comment
include ActiveModel::Conversion
attr_reader :id
+ def to_key; id ? [id] : nil end
def save; @id = 1 end
def new_record?; @id.nil? end
def name
diff --git a/actionpack/test/lib/controller/fake_models.rb b/actionpack/test/lib/controller/fake_models.rb
index e4aed14dc0..4475d40f63 100644
--- a/actionpack/test/lib/controller/fake_models.rb
+++ b/actionpack/test/lib/controller/fake_models.rb
@@ -6,7 +6,7 @@ class Customer < Struct.new(:name, :id)
undef_method :to_json
- def key
+ def to_key
id ? [id] : nil
end
@@ -47,7 +47,7 @@ module Quiz
extend ActiveModel::Naming
include ActiveModel::Conversion
- def key
+ def to_key
id ? [id] : nil
end
@@ -67,7 +67,7 @@ class Post < Struct.new(:title, :author_name, :body, :secret, :written_on, :cost
alias_method :secret?, :secret
- def key
+ def to_key
id ? [id] : nil
end
@@ -96,7 +96,7 @@ class Comment
attr_reader :id
attr_reader :post_id
def initialize(id = nil, post_id = nil); @id, @post_id = id, post_id end
- def key; id ? [id] : nil end
+ def to_key; id ? [id] : nil end
def save; @id = 1; @post_id = 1 end
def new_record?; @id.nil? end
def to_param; @id; end
@@ -116,7 +116,7 @@ class Tag
attr_reader :id
attr_reader :post_id
def initialize(id = nil, post_id = nil); @id, @post_id = id, post_id end
- def key; id ? [id] : nil end
+ def to_key; id ? [id] : nil end
def save; @id = 1; @post_id = 1 end
def new_record?; @id.nil? end
def to_param; @id; end
@@ -136,7 +136,7 @@ class CommentRelevance
attr_reader :id
attr_reader :comment_id
def initialize(id = nil, comment_id = nil); @id, @comment_id = id, comment_id end
- def key; id ? [id] : nil end
+ def to_key; id ? [id] : nil end
def save; @id = 1; @comment_id = 1 end
def new_record?; @id.nil? end
def to_param; @id; end
@@ -152,7 +152,7 @@ class TagRelevance
attr_reader :id
attr_reader :tag_id
def initialize(id = nil, tag_id = nil); @id, @tag_id = id, tag_id end
- def key; id ? [id] : nil end
+ def to_key; id ? [id] : nil end
def save; @id = 1; @tag_id = 1 end
def new_record?; @id.nil? end
def to_param; @id; end
diff --git a/actionpack/test/template/prototype_helper_test.rb b/actionpack/test/template/prototype_helper_test.rb
index dab34f1201..45f9d85e32 100644
--- a/actionpack/test/template/prototype_helper_test.rb
+++ b/actionpack/test/template/prototype_helper_test.rb
@@ -4,7 +4,7 @@ require 'active_model'
class Bunny < Struct.new(:Bunny, :id)
extend ActiveModel::Naming
include ActiveModel::Conversion
- def key() id ? [id] : nil end
+ def to_key() id ? [id] : nil end
end
class Author
@@ -12,7 +12,7 @@ class Author
include ActiveModel::Conversion
attr_reader :id
- def key() id ? [id] : nil end
+ def to_key() id ? [id] : nil end
def save; @id = 1 end
def new_record?; @id.nil? end
def name
@@ -25,7 +25,7 @@ class Article
include ActiveModel::Conversion
attr_reader :id
attr_reader :author_id
- def key() id ? [id] : nil end
+ def to_key() id ? [id] : nil end
def save; @id = 1; @author_id = 1 end
def new_record?; @id.nil? end
def name