Martin Edenhofer 11 лет назад
Родитель
Сommit
d6d21e6cfe
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      lib/core_ext/class.rb

+ 6 - 2
lib/core_ext/class.rb

@@ -1,6 +1,10 @@
 class Class
   def to_app_model
-    name = self.to_s.downcase
-    name.gsub( /::/, '_' )
+    camel_cased_word = self.to_s
+    camel_cased_word.gsub(/::/, '_').
+      gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
+      gsub(/([a-z\d])([A-Z])/,'\1_\2').
+      tr("-", "_").
+      downcase
   end
 end