diff options
author | Tim Smith <tsmith84@gmail.com> | 2020-10-16 15:03:34 -0700 |
---|---|---|
committer | Tim Smith <tsmith84@gmail.com> | 2020-10-16 15:03:34 -0700 |
commit | ab6f1157723771844f0c0e68fa43c3e5f050932b (patch) | |
tree | 14ae6dec45fd71d6d5d74fc5587343645caa84fd | |
parent | 073be3666d1bf7480ec9a2f40291b2ed0fc691a1 (diff) | |
download | chef-ab6f1157723771844f0c0e68fa43c3e5f050932b.tar.gz |
Remove constantize method from Chef::Mixin::ConvertToClassName
It doesn't look like we're using this anymore and the comment states
that we wouldn't need the implementation after Ruby 2.0 anyways.
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | lib/chef/mixin/convert_to_class_name.rb | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/lib/chef/mixin/convert_to_class_name.rb b/lib/chef/mixin/convert_to_class_name.rb index 7bdbd7d39c..de11110574 100644 --- a/lib/chef/mixin/convert_to_class_name.rb +++ b/lib/chef/mixin/convert_to_class_name.rb @@ -66,62 +66,6 @@ class Chef str = base.to_s + (file_base == "default" ? "" : "_#{file_base}") normalize_snake_case_name(str) end - - # Copied from rails activesupport. In ruby >= 2.0 const_get will just do this, so this can - # be deprecated and removed. - # - # MIT LICENSE is here: https://github.com/rails/rails/blob/master/activesupport/MIT-LICENSE - - # Tries to find a constant with the name specified in the argument string. - # - # 'Module'.constantize # => Module - # 'Test::Unit'.constantize # => Test::Unit - # - # The name is assumed to be the one of a top-level constant, no matter - # whether it starts with "::" or not. No lexical context is taken into - # account: - # - # C = 'outside' - # module M - # C = 'inside' - # C # => 'inside' - # 'C'.constantize # => 'outside', same as ::C - # end - # - # NameError is raised when the name is not in CamelCase or the constant is - # unknown. - def constantize(camel_cased_word) - names = camel_cased_word.split("::") - - # Trigger a built-in NameError exception including the ill-formed constant in the message. - Object.const_get(camel_cased_word) if names.empty? - - # Remove the first blank element in case of '::ClassName' notation. - names.shift if names.size > 1 && names.first.empty? - - names.inject(Object) do |constant, name| - if constant == Object - constant.const_get(name) - else - candidate = constant.const_get(name) - next candidate if constant.const_defined?(name, false) - next candidate unless Object.const_defined?(name) - - # Go down the ancestors to check if it is owned directly. The check - # stops when we reach Object or the end of ancestors tree. - constant = constant.ancestors.inject do |const, ancestor| - break const if ancestor == Object - break ancestor if ancestor.const_defined?(name, false) - - const - end - - # owner is in Object, so raise - constant.const_get(name, false) - end - end - end - end end end |