36 lines
		
	
	
		
			765 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			765 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module StringHelper
 | |
|   extend self
 | |
| 
 | |
|   # from Rails' ActiveSupport
 | |
|   def underscore(string)
 | |
|     string.gsub(/::/, '/').
 | |
|     gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
 | |
|     gsub(/([a-z\d])([A-Z])/,'\1_\2').
 | |
|     tr("-", "_").
 | |
|     downcase
 | |
|   end
 | |
| 
 | |
|   def underscore_class(klass, without_ancestors=true)
 | |
|     class_name = if without_ancestors
 | |
|       klass.to_s.split('::').last
 | |
|     else
 | |
|       klass.to_s
 | |
|     end
 | |
|     StringHelper.underscore(class_name)
 | |
|   end
 | |
| 
 | |
|   # from Rails' ActiveSupport
 | |
|   def camelize(term)
 | |
|     string = term.to_s
 | |
|     string = string.sub(/^[a-z\d]*/) { $&.capitalize }
 | |
|     string.gsub!(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" }
 | |
|     string.gsub!(/\//, '::')
 | |
|     string
 | |
|   end
 | |
| 
 | |
|   # rough simplification
 | |
|   def pluralize(string)
 | |
|     "#{string}s"
 | |
|   end
 | |
| end
 | 
