module StringExtensions def symbolize self.gsub(/[^A-Za-z0-9]+/, "_").gsub(/(^_+|_+$)/, "").underscore.to_sym end def titlecase self.gsub(/((?:^|\s)[a-z])/) { $1.upcase } end def to_name(last_part = '') self.underscore.gsub('/', ' ').humanize.titlecase.gsub(/\s*#{last_part}$/, '') end def to_slug self.strip.downcase.gsub(/[^-a-z0-9~\s\.:;+=_]/, '').gsub(/[\s\.:;=+]+/, '-') end alias_method :slugify, :to_slug alias_method :slugerize, :to_slug end String.send :include, StringExtensions