diff options
author | Kuldeep Aggarwal <kd.engineer@yahoo.co.in> | 2014-02-23 13:10:41 +0530 |
---|---|---|
committer | Kuldeep Aggarwal <kd.engineer@yahoo.co.in> | 2014-02-23 13:10:41 +0530 |
commit | de8bef98785a78332db037b1cd6f602b2a30026d (patch) | |
tree | cfa7e92be5ec569a38e1044063e9b2c292845616 /railties/lib/rails | |
parent | 020c78341897afc170041eac1e57801f0d78ce90 (diff) | |
download | rails-de8bef98785a78332db037b1cd6f602b2a30026d.tar.gz rails-de8bef98785a78332db037b1cd6f602b2a30026d.tar.bz2 rails-de8bef98785a78332db037b1cd6f602b2a30026d.zip |
Add warning when user tried to create model with pluralize name.
1. Generate model with correct_name.
2. It will help new users to avoid mistakes when tried to create model with wrong name.
Diffstat (limited to 'railties/lib/rails')
-rw-r--r-- | railties/lib/rails/generators/model_helpers.rb | 26 | ||||
-rw-r--r-- | railties/lib/rails/generators/rails/model/model_generator.rb | 4 | ||||
-rw-r--r-- | railties/lib/rails/generators/resource_helpers.rb | 13 |
3 files changed, 32 insertions, 11 deletions
diff --git a/railties/lib/rails/generators/model_helpers.rb b/railties/lib/rails/generators/model_helpers.rb new file mode 100644 index 0000000000..1309446995 --- /dev/null +++ b/railties/lib/rails/generators/model_helpers.rb @@ -0,0 +1,26 @@ +require 'rails/generators/active_model' + +module Rails + module Generators + module ModelHelpers # :nodoc: + PLURAL_MODEL_NAME_WARN_MESSAGE = 'Plural version of the model detected, using singularized version. Override with --force-plural or setup custom inflection rules for this noun before running the generator.' + mattr_accessor :skip_warn + + def self.included(base) #:nodoc: + base.class_option :force_plural, type: :boolean, default: false, desc: 'Forces the use of a plural model name' + end + + def initialize(args, *_options) + super + if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural] + unless ModelHelpers.skip_warn + say PLURAL_MODEL_NAME_WARN_MESSAGE + ModelHelpers.skip_warn = true + end + name.replace name.singularize + assign_names!(name) + end + end + end + end +end diff --git a/railties/lib/rails/generators/rails/model/model_generator.rb b/railties/lib/rails/generators/rails/model/model_generator.rb index ea3d69d7c9..87bab129bb 100644 --- a/railties/lib/rails/generators/rails/model/model_generator.rb +++ b/railties/lib/rails/generators/rails/model/model_generator.rb @@ -1,6 +1,10 @@ +require 'rails/generators/model_helpers' + module Rails module Generators class ModelGenerator < NamedBase # :nodoc: + include Rails::Generators::ModelHelpers + argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]" hook_for :orm, required: true end diff --git a/railties/lib/rails/generators/resource_helpers.rb b/railties/lib/rails/generators/resource_helpers.rb index 7329ee9f48..4669935156 100644 --- a/railties/lib/rails/generators/resource_helpers.rb +++ b/railties/lib/rails/generators/resource_helpers.rb @@ -1,14 +1,14 @@ require 'rails/generators/active_model' +require 'rails/generators/model_helpers' module Rails module Generators # Deal with controller names on scaffold and add some helpers to deal with # ActiveModel. module ResourceHelpers # :nodoc: - mattr_accessor :skip_warn def self.included(base) #:nodoc: - base.class_option :force_plural, type: :boolean, desc: "Forces the use of a plural ModelName" + base.send :include, Rails::Generators::ModelHelpers base.class_option :model_name, type: :string, desc: "ModelName to be used" end @@ -21,15 +21,6 @@ module Rails assign_names!(self.name) end - if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural] - unless ResourceHelpers.skip_warn - say "Plural version of the model detected, using singularized version. Override with --force-plural." - ResourceHelpers.skip_warn = true - end - name.replace name.singularize - assign_names!(name) - end - assign_controller_names!(controller_name.pluralize) end |