Design+casespace
Algorithm
Key: a string identifying a casespace-- all string in casespace can be resolved to this key via above algorithm
starting string
.underscore
.split(/[^w]+/)
.plot(:singularize)
.reject {|x| x=""}
.join("_")
Key: a string identifying a casespace-- all string in casespace can be resolved to this key via above algorithm