Ruby String#to_class

后端 未结 3 1657
谎友^
谎友^ 2020-12-21 15:45

Taken from a previous post with some modifications to respond to sepp2k\'s comment about namespaces, I have implemented String#to_class method. I\'m sharing the code here an

3条回答
  •  猫巷女王i
    2020-12-21 16:48

    I would take a look at ActiveSupport::CoreExtensions::String::Inflections specifically it's constantize method:

    def constantize(camel_cased_word)
      names = camel_cased_word.split('::')
      names.shift if names.empty? || names.first.empty?
    
      constant = Object
      names.each do |name|
        constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
      end
      constant
    end
    

提交回复
热议问题