diff options
author | Yuki Nishijima <mail@yukinishijima.net> | 2014-06-22 19:06:44 -0700 |
---|---|---|
committer | Yuki Nishijima <mail@yukinishijima.net> | 2014-06-22 19:14:25 -0700 |
commit | 10adc2ee90c34003edb5850b63c6cae321c09008 (patch) | |
tree | 97f8f3d5a8fafc2f13c3047cbd23ba62385d41cf | |
parent | 04b6ae4d186195008b7801df19ebba295f042288 (diff) | |
download | rails-10adc2ee90c34003edb5850b63c6cae321c09008.tar.gz rails-10adc2ee90c34003edb5850b63c6cae321c09008.tar.bz2 rails-10adc2ee90c34003edb5850b63c6cae321c09008.zip |
Delegate #model_name method to self.class
-rw-r--r-- | activemodel/lib/active_model/naming.rb | 6 | ||||
-rw-r--r-- | activemodel/test/cases/naming_test.rb | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/naming.rb b/activemodel/lib/active_model/naming.rb index 5219de2606..8cf1a191f4 100644 --- a/activemodel/lib/active_model/naming.rb +++ b/activemodel/lib/active_model/naming.rb @@ -214,6 +214,12 @@ module ActiveModel # is required to pass the Active Model Lint test. So either extending the # provided method below, or rolling your own is required. module Naming + def self.extended(base) #:nodoc: + base.class_eval do + delegate :model_name, to: :class + end + end + # Returns an ActiveModel::Name object for module. It can be # used to retrieve all kinds of naming-related information # (See ActiveModel::Name for more information). diff --git a/activemodel/test/cases/naming_test.rb b/activemodel/test/cases/naming_test.rb index aa683f4152..7b8287edbf 100644 --- a/activemodel/test/cases/naming_test.rb +++ b/activemodel/test/cases/naming_test.rb @@ -272,3 +272,9 @@ class NameWithAnonymousClassTest < ActiveModel::TestCase assert_equal "Anonymous", model_name end end + +class NamingMethodDelegationTest < ActiveModel::TestCase + def test_model_name + assert_equal Blog::Post.model_name, Blog::Post.new.model_name + end +end |