Sha256: 17478b37f3fa06c1f81ea06baa474a3afb16cf182c73f0c3280b71546dc73a20
Contents?: true
Size: 1.46 KB
Versions: 2
Compression:
Stored size: 1.46 KB
Contents
module Jsus module Util # Various inflection helpers module Inflection class <<self # Converts strings with various punctuation to pascal case # hello_world => HelloWorld # Oh.My.God => OhMyGod # iAmCamelCase => IAmCamelCase # some_Weird_._punctuation => SomeWeirdPunctuation def random_case_to_mixed_case(string) string.split(/[^a-zA-Z]+/).map {|chunk| capitalize(chunk) }.join end # random_case_to_mixed_case # Same as #random_case_to_mixed_case, but preserves dots # color.fx => Color.Fx def random_case_to_mixed_case_preserve_dots(string) string.split(".").map {|c| random_case_to_mixed_case(c) }.join(".") end # random_case_to_mixed_case # Capitalizes first letter (doesn't do anything else to other letters, unlike String#capitalize) def capitalize(string) string[0,1].capitalize + string[1..-1].to_s end # capitalize # Downcases first letter def decapitalize(string) string[0,1].downcase + string[1..-1].to_s end # decapitalize # Translates MixedCase string to camel-case def snake_case(string) decapitalize(string.gsub(/(.)([A-Z])([a-z]+)/) {|_| "#{$1}_#{$2.downcase}#{$3}"}. gsub(/[^A-Za-z_]+/, "_")) end # snake_case end # class <<self end # module Inflection end # module Util end # module Jsus
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jsus-0.3.1 | lib/jsus/util/inflection.rb |
jsus-0.3.0 | lib/jsus/util/inflection.rb |