lib/fog/vsphere/core.rb in fog-1.21.0 vs lib/fog/vsphere/core.rb in fog-1.22.0

- old
+ new

@@ -11,7 +11,30 @@ class NotFound < ServiceError; end end service(:compute, 'Compute') + # This helper was originally added as Fog.class_as_string and moved to core but only used here + def self.class_from_string classname, defaultpath="" + if classname and classname.is_a? String then + chain = classname.split("::") + klass = Kernel + chain.each do |klass_string| + klass = klass.const_get klass_string + end + if klass.is_a? Class then + klass + elsif defaultpath != nil then + class_from_string((defaultpath.split("::")+chain).join("::"), nil) + else + nil + end + elsif classname and classname.is_a? Class then + classname + else + nil + end + rescue NameError + defaultpath != nil ? class_from_string((defaultpath.split("::")+chain).join("::"), nil) : nil + end end end