Converting string from snake_case to CamelCase in Ruby

前端 未结 10 1085
情书的邮戳
情书的邮戳 2020-11-30 19:57

I am trying to convert a name from snake case to camel case. Are there any built-in methods?

Eg: \"app_user\" to \"AppUser\"

(I hav

10条回答
  •  执笔经年
    2020-11-30 20:36

    Source: http://rubydoc.info/gems/extlib/0.9.15/String#camel_case-instance_method

    For learning purpose:

    class String
      def camel_case
        return self if self !~ /_/ && self =~ /[A-Z]+.*/
        split('_').map{|e| e.capitalize}.join
      end
    end
    
    "foo_bar".camel_case          #=> "FooBar"
    

    And for the lowerCase variant:

    class String
      def camel_case_lower
        self.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
      end
    end
    
    "foo_bar".camel_case_lower          #=> "fooBar"
    

提交回复
热议问题