Skip to content

Instantly share code, notes, and snippets.

@rohitarondekar
Created September 2, 2010 10:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rohitarondekar/4b0028201b5fe613baba to your computer and use it in GitHub Desktop.
Save rohitarondekar/4b0028201b5fe613baba to your computer and use it in GitHub Desktop.
From ae592615b001a8cbb6a0e04f7895bcff51727dbf Mon Sep 17 00:00:00 2001
From: rohit <rohit.arondekar@gmail.com>
Date: Thu, 2 Sep 2010 15:11:58 +0530
Subject: [PATCH 1/3] Failing test for GeneratedAttribute [#5461 state:open]
---
.../test/generators/generated_attribute_test.rb | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/railties/test/generators/generated_attribute_test.rb b/railties/test/generators/generated_attribute_test.rb
index de7e4de..272e179 100644
--- a/railties/test/generators/generated_attribute_test.rb
+++ b/railties/test/generators/generated_attribute_test.rb
@@ -108,4 +108,16 @@ class GeneratedAttributeTest < Rails::Generators::TestCase
)
end
end
+
+ def test_nil_type_raises_exception
+ assert_raise Thor::Error do
+ create_generated_attribute(nil, 'title')
+ end
+ end
+
+ def test_missing_type_raises_exception
+ assert_raise Thor::Error do
+ create_generated_attribute(:'', 'title')
+ end
+ end
end
--
1.7.0.4
From 552a6dee14c8d66e736dcbf7b84710ce7cef0003 Mon Sep 17 00:00:00 2001
From: rohit <rohit.arondekar@gmail.com>
Date: Thu, 2 Sep 2010 15:28:00 +0530
Subject: [PATCH 2/3] Output a friendly message when no type given for GeneratedAttribute [#5461 state:resolved]
---
.../lib/rails/generators/generated_attribute.rb | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/railties/lib/rails/generators/generated_attribute.rb b/railties/lib/rails/generators/generated_attribute.rb
index 3b9fff2..64273e4 100644
--- a/railties/lib/rails/generators/generated_attribute.rb
+++ b/railties/lib/rails/generators/generated_attribute.rb
@@ -6,6 +6,7 @@ module Rails
attr_accessor :name, :type
def initialize(name, type)
+ raise Thor::Error, "Missing type for attribute '#{name}'.\nExample: '#{name}:string' where string is the type." if type.blank?
@name, @type = name, type.to_sym
end
--
1.7.0.4
From dde72c4206fe220ee275eaab604bdf3d378b322b Mon Sep 17 00:00:00 2001
From: rohit <rohit.arondekar@gmail.com>
Date: Thu, 2 Sep 2010 16:15:22 +0530
Subject: [PATCH 3/3] Add two integration tests for GeneratedAttribute missing type error. [#5461 state:resolved]
---
railties/test/generators/model_generator_test.rb | 6 ++++++
.../test/generators/scaffold_generator_test.rb | 6 ++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb
index ef415a4..f4a9a15 100644
--- a/railties/test/generators/model_generator_test.rb
+++ b/railties/test/generators/model_generator_test.rb
@@ -11,6 +11,12 @@ class ModelGeneratorTest < Rails::Generators::TestCase
assert_match /TestUnit options:/, content
end
+ def test_model_with_missing_attribute_type
+ content = capture(:stderr) { run_generator ["post", "title:string", "body"] }
+ assert_match /Missing type for attribute 'body'/, content
+ assert_match /Example: 'body:string' where string is the type/, content
+ end
+
def test_invokes_default_orm
run_generator
assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/
diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb
index f12445a..446bed3 100644
--- a/railties/test/generators/scaffold_generator_test.rb
+++ b/railties/test/generators/scaffold_generator_test.rb
@@ -231,4 +231,10 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
assert_file "config/routes.rb", /\.routes\.draw do\s*\|map\|\s*$/
end
+
+ def test_scaffold_generator_outputs_error_message_on_missing_attribute_type
+ content = capture(:stderr) { run_generator ["post", "title:string", "body"]}
+ assert_match /Missing type for attribute 'body'/, content
+ assert_match /Example: 'body:string' where string is the type/, content
+ end
end
--
1.7.0.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment