Sha256: 35f497ca700aa9e11aaa5390e717eb4425a8c2a4ad5f992b82986f2408a8faca
Contents?: true
Size: 974 Bytes
Versions: 1
Compression:
Stored size: 974 Bytes
Contents
require "string_plus/version" module StringPlus module_function def camelcase(str=self, capitalize_first_char=true) res = "" flag = capitalize_first_char str.each_char {|w| (flag = true ; next) if w == "_" || w == " " res << if flag flag = false w.upcase else w end } res end def lcamelcase(str=self) camelcase(str, false) end def underscore(str=self) return str.downcase if str.each_char.all? { |c| c == c.upcase && c =~ /[a-zA-Z0-9]/} res = "" [nil, *str.each_char].each_cons(2) do |last, current| res << "_" if last !=nil && current == current.upcase && !("0".."9").include?(current) res << current.downcase unless current == " " end res end alias :snakecase :underscore def constantize(str=self) c = str.split("-").map {|segment| camelcase(segment)}.join("::") Object.send(:const_get, c) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
string_plus-0.5.3 | lib/string_plus.rb |