Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Attributes on scaffold and model generators default to string.

This allows the following: "rails g scaffold Post title body:text author"
  • Loading branch information...
commit 08983fefd547142ef8b913af1859b96597753d9f 1 parent 9a64c8e
@josevalim josevalim authored
View
2  railties/CHANGELOG
@@ -1,5 +1,7 @@
*Rails 3.2.0 (unreleased)*
+* Attributes on scaffold and model generators default to string. This allows the following: "rails g scaffold Post title body:text author" [José Valim]
+
* Removed old plugin generator (`rails generate plugin`) in favor of `rails plugin new` command. [Guillermo Iguaran]
* Removed old 'config.paths.app.controller' API in favor of 'config.paths["app/controller"]' API. [Guillermo Iguaran]
View
2  railties/lib/rails/generators/generated_attribute.rb
@@ -7,7 +7,7 @@ class GeneratedAttribute
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?
+ type = :string if type.blank?
@name, @type = name, type.to_sym
end
View
13 railties/test/generators/generated_attribute_test.rb
@@ -113,15 +113,8 @@ def test_reference_is_false
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
+ def test_blank_type_defaults_to_string_raises_exception
+ assert_equal :string, create_generated_attribute(nil, 'title').type
+ assert_equal :string, create_generated_attribute("", 'title').type
end
end
View
12 railties/test/generators/model_generator_test.rb
@@ -12,9 +12,15 @@ def test_help_shows_invoked_generators_options
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)
+ run_generator ["post", "title", "body:text", "author"]
+
+ assert_migration "db/migrate/create_posts.rb" do |m|
+ assert_method :change, m do |up|
+ assert_match(/t\.string :title/, up)
+ assert_match(/t\.text :body/, up)
+ assert_match(/t\.string :author/, up)
+ end
+ end
end
def test_invokes_default_orm
View
12 railties/test/generators/scaffold_generator_test.rb
@@ -272,8 +272,14 @@ def test_scaffold_generator_no_engines
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)
+ run_generator ["post", "title", "body:text", "author"]
+
+ assert_migration "db/migrate/create_posts.rb" do |m|
+ assert_method :change, m do |up|
+ assert_match(/t\.string :title/, up)
+ assert_match(/t\.text :body/, up)
+ assert_match(/t\.string :author/, up)
+ end
+ end
end
end

8 comments on commit 08983fe

@amatsuda
Collaborator

:+1:

@jnx

I like it...

@Yitsushi

That's cool... :+1:

@TheEmpty

Not sure how I feel, I like getting errors because it generally means I forgot. But how do I find out these github symbols :O

@rwz

awesome

Please sign in to comment.
Something went wrong with that request. Please try again.