aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators/resource_helpers.rb
diff options
context:
space:
mode:
authoryalab <rudeboyjet@gmail.com>2013-07-13 14:38:00 +0900
committeryalab <rudeboyjet@gmail.com>2013-10-15 15:35:15 +0900
commit4f642dcb39cea155ddb50978a38fb3a2f2290ea3 (patch)
treec06bcb7fc1f6c406e5dfa9a476651a21851410f2 /railties/lib/rails/generators/resource_helpers.rb
parent44ef5a83c83ad0a99638d87ee3d26f3e8a0e7ddb (diff)
downloadrails-4f642dcb39cea155ddb50978a38fb3a2f2290ea3.tar.gz
rails-4f642dcb39cea155ddb50978a38fb3a2f2290ea3.tar.bz2
rails-4f642dcb39cea155ddb50978a38fb3a2f2290ea3.zip
Added --model-name option scaffold_controller_generator.
Diffstat (limited to 'railties/lib/rails/generators/resource_helpers.rb')
-rw-r--r--railties/lib/rails/generators/resource_helpers.rb25
1 files changed, 20 insertions, 5 deletions
diff --git a/railties/lib/rails/generators/resource_helpers.rb b/railties/lib/rails/generators/resource_helpers.rb
index 7fd5c00768..a01eb57651 100644
--- a/railties/lib/rails/generators/resource_helpers.rb
+++ b/railties/lib/rails/generators/resource_helpers.rb
@@ -9,11 +9,19 @@ module Rails
def self.included(base) #:nodoc:
base.class_option :force_plural, type: :boolean, desc: "Forces the use of a plural ModelName"
+ base.class_option :model_name, type: :string, desc: "ModelName to be used"
end
# Set controller variables on initialization.
def initialize(*args) #:nodoc:
super
+ if options[:model_name]
+ controller_name = name
+ self.name = options[:model_name]
+ assign_names!(self.name)
+ else
+ controller_name = name
+ end
if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural]
unless ResourceHelpers.skip_warn
@@ -24,19 +32,26 @@ module Rails
assign_names!(name)
end
- @controller_name = name.pluralize
+ assign_controller_names!(controller_name.pluralize)
end
protected
- attr_reader :controller_name
+ attr_reader :controller_name, :controller_file_name
def controller_class_path
- class_path
+ if options[:model_name]
+ @controller_class_path
+ else
+ class_path
+ end
end
- def controller_file_name
- @controller_file_name ||= file_name.pluralize
+ def assign_controller_names!(name)
+ @controller_name = name
+ @controller_class_path = name.include?('/') ? name.split('/') : name.split('::')
+ @controller_class_path.map! { |m| m.underscore }
+ @controller_file_name = @controller_class_path.pop
end
def controller_file_path