diff options
author | Tim Smith <tsmith@chef.io> | 2020-10-16 15:32:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-16 15:32:51 -0700 |
commit | d2effb7982c9cea66b31450edf766e9eeb26c41b (patch) | |
tree | 10c437e49f71b06f0926adc5577c2282038c30fe | |
parent | 932227d4838150303403765a901e92257ba67564 (diff) | |
parent | ab6f1157723771844f0c0e68fa43c3e5f050932b (diff) | |
download | chef-d2effb7982c9cea66b31450edf766e9eeb26c41b.tar.gz |
Merge pull request #10522 from chef/remove_old_activesupport_code
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 |