aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-12-09 15:53:23 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-12-10 00:01:41 -0300
commit80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e (patch)
tree73bb105d779bbfa4588177aa7c3c599c503d7b26 /railties/lib
parentb05b77be9caf2617f35d93786d9b40c17e07bf64 (diff)
downloadrails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.tar.gz
rails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.tar.bz2
rails-80735ff4c059d634e5eb3a83ce6a0bb8bda5cd8e.zip
Extract a attributes_names method to avoid duplication
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/generators/named_base.rb7
-rw-r--r--railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb9
-rw-r--r--railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb2
-rw-r--r--railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb16
4 files changed, 12 insertions, 22 deletions
diff --git a/railties/lib/rails/generators/named_base.rb b/railties/lib/rails/generators/named_base.rb
index cc10fd9177..25d3f5518f 100644
--- a/railties/lib/rails/generators/named_base.rb
+++ b/railties/lib/rails/generators/named_base.rb
@@ -160,6 +160,13 @@ module Rails
end
end
+ def attributes_names
+ @attributes_names ||= attributes.each_with_object([]) do |a, names|
+ names << (a.reference? ? "#{a.name}_id" : a.name)
+ names << "#{a.name}_type" if a.polymorphic?
+ end
+ end
+
def pluralize_table_names?
!defined?(ActiveRecord::Base) || ActiveRecord::Base.pluralize_table_names
end
diff --git a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
index 3cfd2233e2..4f36b612ae 100644
--- a/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
+++ b/railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
@@ -22,15 +22,6 @@ module Rails
hook_for :helper, as: :scaffold do |invoked|
invoke invoked, [ controller_name ]
end
-
- private
-
- def attributes_names
- attributes.each_with_object([]) do |attribute, names|
- names << (attribute.reference? ? ":#{attribute.name}_id" : ":#{attribute.name}")
- names << ":#{attribute.name}_type" if attribute.polymorphic?
- end
- end
end
end
end
diff --git a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb
index 078ca3a996..4d08b01e60 100644
--- a/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb
+++ b/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb
@@ -94,7 +94,7 @@ class <%= controller_class_name %>Controller < ApplicationController
<%- if attributes_names.empty? -%>
params[<%= ":#{singular_table_name}" %>]
<%- else -%>
- params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.join(', ') %>)
+ params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
<%- end -%>
end
end
diff --git a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb
index 08bf50dfe2..8f3ecaadea 100644
--- a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb
+++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb
@@ -18,19 +18,11 @@ module TestUnit # :nodoc:
private
def attributes_hash
- return if attributes.empty?
+ return if attributes_names.empty?
- hash_values = []
- attributes.each do |a|
- hash_values << hash_value(a.reference? ? "#{a.name}_id" : a.name)
- hash_values << hash_value("#{a.name}_type") if a.polymorphic?
- end
-
- hash_values.sort.join(', ')
- end
-
- def hash_value(name)
- "#{name}: @#{singular_table_name}.#{name}"
+ attributes_names.map do |name|
+ "#{name}: @#{singular_table_name}.#{name}"
+ end.sort.join(', ')
end
end
end