From 174c9f0df39cd338a4871f82794256cc64f68a81 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Mon, 24 Feb 2014 09:43:30 +0100 Subject: [PATCH] include names in model generator warning message. refs #13515. This is a follow up to #13515. It includes the name given and the singularized version in the warning message. This will aide the user to see wether the detected singular was right or not. --- railties/lib/rails/generators/model_helpers.rb | 10 ++++++---- railties/test/generators/model_generator_test.rb | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/railties/lib/rails/generators/model_helpers.rb b/railties/lib/rails/generators/model_helpers.rb index 1309446995..c4f45d344b 100644 --- a/railties/lib/rails/generators/model_helpers.rb +++ b/railties/lib/rails/generators/model_helpers.rb @@ -3,21 +3,23 @@ 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.' + PLURAL_MODEL_NAME_WARN_MESSAGE = "The model name '%s' was recognized as a plural, using the singular '%s'. " \ + "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' + base.class_option :force_plural, type: :boolean, default: false, desc: 'Forces the use of the given model name' end def initialize(args, *_options) super if name == name.pluralize && name.singularize != name.pluralize && !options[:force_plural] + singular = name.singularize unless ModelHelpers.skip_warn - say PLURAL_MODEL_NAME_WARN_MESSAGE + say PLURAL_MODEL_NAME_WARN_MESSAGE % [name, singular] ModelHelpers.skip_warn = true end - name.replace name.singularize + name.replace singular assign_names!(name) end end diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb index cf307d23e1..bdf51b457c 100644 --- a/railties/test/generators/model_generator_test.rb +++ b/railties/test/generators/model_generator_test.rb @@ -38,7 +38,7 @@ class ModelGeneratorTest < Rails::Generators::TestCase content = run_generator ["accounts".freeze] assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/ assert_file "test/models/account_test.rb", /class AccountTest/ - assert_match(/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./, content) + assert_match(/The model name 'accounts' was recognized as a plural, using the singular 'account'\. Override with --force-plural or setup custom inflection rules for this noun before running the generator\./, content) end def test_model_with_underscored_parent_option