Tweaked Label#split default regexp
[erd-marker.git] / lib / erd_handler / label.rb
index ad816182ff4be9c58f62ff53819c26579862cfab..cdeacb177eb24c56c7004995e4ab1130303e903d 100644 (file)
@@ -12,12 +12,17 @@ class Label
       regexp = opts
       split_camel_case = true
     else
-      regexp = opts[:regexp] || /[ _,.-]+/
+      regexp = opts[:regexp] || /[\t\n _,.-]+/
       if opts.has_key? :camel_case
         split_camel_case = opts[:camel_case]
       else
         split_camel_case = true
       end
+      if opts.has_key? :numbers
+        split_numbers = opts[:numbers]
+      else
+        split_numbers = true
+      end
     end
     @processed = @processed.map do |segment|
       segment.split(regexp)
@@ -25,7 +30,13 @@ class Label
     
     if split_camel_case
       @processed = @processed.map do |segment|
-        segment.split(/(?=[A-Z])/)
+        segment.split(/(?<=[a-z])(?=[A-Z])/)
+      end.flatten
+    end
+    
+    if split_numbers
+      @processed = @processed.map do |segment|
+        segment.split(/(?:(?<!\d)(?=\d))|(?:(?<=\d)(?!\d))/)
       end.flatten
     end
     self