Tweaked Label#split default regexp
[erd-marker.git] / spec / erd_handler / label_spec.rb
index d2fb0c8f63624b3950dfbd53818beedfbd0bf590..b432b46f447005612e2cf1ccce31f8490dfa4e6e 100644 (file)
@@ -58,11 +58,35 @@ module ErdHandler
         l2.processed.should == ["TestLabel"]
         l2.original.should == "TestLabel"
       end
+
+      it "splits the original on numbers" do
+        l1 = Label.new "Test123Label"
+        l1.split :numbers => true
+        l1.processed.should == ["Test", "123", "Label"]
+        l1.original.should == "Test123Label"
+
+        l2 = Label.new "test1label"
+        l2.split :numbers => true
+        l2.processed.should == ["test", "1", "label"]
+        l2.original.should == "test1label"
+      end
+
+      it "doesn't split the original on numbers if asked not to" do
+        l1 = Label.new "Test123Label"
+        l1.split :numbers => false
+        l1.processed.should == ["Test123Label"]
+        l1.original.should == "Test123Label"
+        
+        l2 = Label.new "Test123Label"
+        l2.split :numbers => nil
+        l2.processed.should == ["Test123Label"]
+        l2.original.should == "Test123Label"
+      end
       
       it "splits the original using a default regexp" do
-        l1 = Label.new "Test label_string"
+        l1 = Label.new "Test label_string\tfred"
         l1.split
-        l1.processed.should == ["Test", "label", "string"]
+        l1.processed.should == ["Test", "label", "string", "fred"]
       end
       
       it "splits the original on camel case by default" do
@@ -72,19 +96,26 @@ module ErdHandler
         l1.original.should == "TestLabel"
       end
 
-      it "splits the original on punctuation and camel case by default" do
-        l1 = Label.new "TestLabel is_split, he,said"
+      it "splits the original on numbers by default" do
+        l1 = Label.new "Test123Label"
         l1.split
-        l1.processed.should == ["Test", "Label", "is", "split", "he", "said"]
-        l1.original.should == "TestLabel is_split, he,said"
+        l1.processed.should == ["Test", "123", "Label"]
+        l1.original.should == "Test123Label"
+      end
+     
+      it "splits the original on punctuation, whitespace, camel case, and numbers by default" do
+        l1 = Label.new "TestLabel is_split, 123 he,said456Fred"
+        l1.split
+        l1.processed.should == ["Test", "Label", "is", "split","123", "he", "said", "456", "Fred"]
+        l1.original.should == "TestLabel is_split, 123 he,said456Fred"
       end
 
       it "is idempotent" do
-        l1 = Label.new "TestLabel is_split, he,said"
+        l1 = Label.new "TestLabel is_split, 123 he,said456Fred"
         res1 = l1.split.dup
         res2 = l1.split
         res1.processed.should == res2.processed
-        l1.original.should == "TestLabel is_split, he,said"
+        l1.original.should == "TestLabel is_split, 123 he,said456Fred"
       end
     end # split
 
@@ -111,7 +142,6 @@ module ErdHandler
         l1.tidy
         l2.split.downcase.stem
         l1.processed.should == l2.processed
-
       end
     end # tidy