aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators/model_helpers.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-02-26 10:14:40 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2014-02-26 10:14:40 -0800
commitbf3ddfa28da8ca837ddce8c6744a6c1fd9a51243 (patch)
treec96839ac99bcf2142939a728b56116679bf0f909 /railties/lib/rails/generators/model_helpers.rb
parente5e440f477a0b5e06b008ee77e3c635049405957 (diff)
parent3225898513434ded93fe3abe51ba700f5bd9db84 (diff)
downloadrails-bf3ddfa28da8ca837ddce8c6744a6c1fd9a51243.tar.gz
rails-bf3ddfa28da8ca837ddce8c6744a6c1fd9a51243.tar.bz2
rails-bf3ddfa28da8ca837ddce8c6744a6c1fd9a51243.zip
Merge branch 'master' into adequaterecord
* master: (55 commits) [ci skip] Move association class method notes extract common code in `uuid_test.rb`. move PostgreSQL UUID tests from `datatype_test.rb` to `uuid_test.rb`. [ci skip] remove guide section on models in migrations test case for custom PostgreSQL enum type. Remove inclusion of rubysl gem for rbx on generated Gemfile let `insert_record` actuall save the object. [skip ci] Fix test name typo in app generator tests. travis s/2.1.0/2.1.1 Bump version of bcrypt gem Skip test_migrate_revert_add_index_with_name if databases do not allow to create duplicate indexes on the same columns Optimize getting started guide images, and use png instead of jpg :scissors: [ci skip] Point master changelogs to 4-1-stable branch Add missing parantheses in index_exists? `ActionDispatch::Head` was replaced by `Rack::Head`. Closes #14191. [skip ci] Standardized punctuation. [skip ci] Fix typo in link_to :method option description refactor, with_locale is not needed because I18n is mocked. Fix ActionView label translation for more than 10 nested elements ...
Diffstat (limited to 'railties/lib/rails/generators/model_helpers.rb')
-rw-r--r--railties/lib/rails/generators/model_helpers.rb28
1 files changed, 28 insertions, 0 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..c4f45d344b
--- /dev/null
+++ b/railties/lib/rails/generators/model_helpers.rb
@@ -0,0 +1,28 @@
+require 'rails/generators/active_model'
+
+module Rails
+ module Generators
+ module ModelHelpers # :nodoc:
+ 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 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 % [name, singular]
+ ModelHelpers.skip_warn = true
+ end
+ name.replace singular
+ assign_names!(name)
+ end
+ end
+ end
+ end
+end