summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-10-16 15:32:51 -0700
committerGitHub <noreply@github.com>2020-10-16 15:32:51 -0700
commitd2effb7982c9cea66b31450edf766e9eeb26c41b (patch)
tree10c437e49f71b06f0926adc5577c2282038c30fe
parent932227d4838150303403765a901e92257ba67564 (diff)
parentab6f1157723771844f0c0e68fa43c3e5f050932b (diff)
downloadchef-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.rb56
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