v5 v6: ao_numbering, provide more information on duplicate numbering before stop
authorRalph Amissah <ralph@amissah.com>
Sat, 6 Sep 2014 03:17:24 +0000 (23:17 -0400)
committerRalph Amissah <ralph@amissah.com>
Sat, 6 Sep 2014 03:17:26 +0000 (23:17 -0400)
data/doc/sisu/CHANGELOG_v5
data/doc/sisu/CHANGELOG_v6
lib/sisu/v5/ao_numbering.rb
lib/sisu/v6/ao_numbering.rb

index aed37d241bd350089c456177caa4cd722cf8dbdb..90d953398bc00e40e032795997f7bfc4c7e0422e 100644 (file)
@@ -38,6 +38,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.6.5.orig.tar.xz
   sisu_5.6.5.orig.tar.xz
   sisu_5.6.5-1.dsc
 
+* ao_numbering, provide more information on duplicate numbering before stop
+
 * html navigation, enable turn off (nav buttons on remaining html segments)
 
 * (for html) set default to navigation bar off
index 2e6a6f9b9cac1daa47f622bb28483d178719b47b..772c2df9fa42ffa4bd5e2cf65d4fc8213ac2cafc 100644 (file)
@@ -28,6 +28,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.2.6.orig.tar.xz
   sisu_6.2.6.orig.tar.xz
   sisu_6.2.6-1.dsc
 
+* ao_numbering, provide more information on duplicate numbering before stop
+
 * html navigation, enable turn off (nav buttons on remaining html segments)
 
 * (for html) set default to navigation bar off
index b4ff7f0b8b89b6a6cc897a49dd9d710387ac0e2f..f9257e6a13bf418e3af324232bc6165720180050 100644 (file)
@@ -314,11 +314,11 @@ module SiSU_AO_Numbering
           possible_seg_name.to_s
       end
     end
-    def auto_seg_name(possible_seg_name,heading_num_is,lv,type)
+    def auto_seg_name(possible_seg_name,heading_num_is,dob,type)
       prefix=case type
       when :auto    then Mx[:segname_prefix_auto_num_provide]
       when :extract then Mx[:segname_prefix_auto_num_extract]
-      else               '_'*lv.to_i #should not occur
+      else               '_'*dob.lv.to_i #should not occur
       end
       if possible_seg_name =~/^[0-9]+?\.$/m                #!~/[.,:-]+/
         possible_seg_name=possible_seg_name.
@@ -326,35 +326,38 @@ module SiSU_AO_Numbering
       end
       chosen_seg_name=if possible_seg_name.to_s =~/^[0-9]+[.]?$/m \
       and possible_seg_name.to_i <= heading_num_is.to_i \
-      and lv == '1'
+      and dob.lv == '1'
         prefix + leading_zeros_fixed_width_number(possible_seg_name)
       elsif possible_seg_name.to_s =~/^[0-9]+[.,:-]*$/m \
-      and lv == '1'
+      and dob.lv == '1'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
       elsif possible_seg_name.to_s =~
       /^[0-9]+[.,:-][0-9]+[.,:-]*$/m \
-      and lv == '2'
+      and dob.lv == '2'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
       elsif possible_seg_name.to_s =~
       /^[0-9]+[.,:-][0-9]+[.,:-][0-9][\d.,:-]*$/m \
-      and lv == '3'
+      and dob.lv == '3'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
-      else Mx[:segname_prefix_auto_num_other]*lv.to_i + possible_seg_name.to_s
+      else
+        Mx[:segname_prefix_auto_num_other]*dob.lv.to_i \
+        + possible_seg_name.to_s
       end
       @chosen_seg_names << chosen_seg_name
       if @chosen_seg_names.compact.uniq.length == @chosen_seg_names.compact.length #checks that all auto given seg names are unique
         chosen_seg_name
       else
-        SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark("duplicated auto segment name: #{type} #{chosen_seg_name} - #{@chosen_seg_names}; manually name level 1 segments '1~given_name'")
+        SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).
+         mark("duplicated auto segment name: #{type} #{chosen_seg_name} - #{@chosen_seg_names}; manually name level 1 segments '1~given_name'\n  #{@md.fns}\n  #{dob.obj}")
         exit
       end
     end
@@ -396,7 +399,7 @@ module SiSU_AO_Numbering
           and dob.obj =~/^\s*(?:\S+\s+)?([0-9][0-9.,:-]*)/m      #heading starts with a recognised numeric or word followed by a recognised numeric construct, use that as name
             possible_seg_name=$1
             possible_seg_name=
-              auto_seg_name(possible_seg_name,heading_num_is,dob.lv,:extract)
+              auto_seg_name(possible_seg_name,heading_num_is,dob,:extract)
             possible_seg_name=possible_seg_name.
               gsub(/(?:[:,-]|\W)/,'.').
               gsub(/\.$/,'')
@@ -421,7 +424,7 @@ module SiSU_AO_Numbering
           if dob.ln==4 \
           and not dob.name                                 #if still no segment name, provide a numerical one
             possible_seg_name=
-              auto_seg_name(art_filename_auto,heading_num_is,dob.lv,:auto)
+              auto_seg_name(art_filename_auto,heading_num_is,dob,:auto)
             if @md.seg_names.is_a?(Array) \
             and not @md.seg_names.include?(possible_seg_name)
              dob.name=possible_seg_name
index a96df577bd327af26a3ede35034ee7160c4fa377..7a4e4cee9373d5325edbac26959777b2e201014c 100644 (file)
@@ -314,11 +314,11 @@ module SiSU_AO_Numbering
           possible_seg_name.to_s
       end
     end
-    def auto_seg_name(possible_seg_name,heading_num_is,lv,type)
+    def auto_seg_name(possible_seg_name,heading_num_is,dob,type)
       prefix=case type
       when :auto    then Mx[:segname_prefix_auto_num_provide]
       when :extract then Mx[:segname_prefix_auto_num_extract]
-      else               '_'*lv.to_i #should not occur
+      else               '_'*dob.lv.to_i #should not occur
       end
       if possible_seg_name =~/^[0-9]+?\.$/m                #!~/[.,:-]+/
         possible_seg_name=possible_seg_name.
@@ -326,35 +326,38 @@ module SiSU_AO_Numbering
       end
       chosen_seg_name=if possible_seg_name.to_s =~/^[0-9]+[.]?$/m \
       and possible_seg_name.to_i <= heading_num_is.to_i \
-      and lv == '1'
+      and dob.lv == '1'
         prefix + leading_zeros_fixed_width_number(possible_seg_name)
       elsif possible_seg_name.to_s =~/^[0-9]+[.,:-]*$/m \
-      and lv == '1'
+      and dob.lv == '1'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
       elsif possible_seg_name.to_s =~
       /^[0-9]+[.,:-][0-9]+[.,:-]*$/m \
-      and lv == '2'
+      and dob.lv == '2'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
       elsif possible_seg_name.to_s =~
       /^[0-9]+[.,:-][0-9]+[.,:-][0-9][\d.,:-]*$/m \
-      and lv == '3'
+      and dob.lv == '3'
         possible_seg_name=possible_seg_name.to_s.
           gsub(/(?:[:,-]|\W)/,'.').
           gsub(/\.$/,'')
         prefix + possible_seg_name
-      else Mx[:segname_prefix_auto_num_other]*lv.to_i + possible_seg_name.to_s
+      else
+        Mx[:segname_prefix_auto_num_other]*dob.lv.to_i \
+        + possible_seg_name.to_s
       end
       @chosen_seg_names << chosen_seg_name
       if @chosen_seg_names.compact.uniq.length == @chosen_seg_names.compact.length #checks that all auto given seg names are unique
         chosen_seg_name
       else
-        SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark("duplicated auto segment name: #{type} #{chosen_seg_name} - #{@chosen_seg_names}; manually name level 1 segments '1~given_name'")
+        SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).
+         mark("duplicated auto segment name: #{type} #{chosen_seg_name} - #{@chosen_seg_names}; manually name level 1 segments '1~given_name'\n  #{@md.fns}\n  #{dob.obj}")
         exit
       end
     end
@@ -396,7 +399,7 @@ module SiSU_AO_Numbering
           and dob.obj =~/^\s*(?:\S+\s+)?([0-9][0-9.,:-]*)/m      #heading starts with a recognised numeric or word followed by a recognised numeric construct, use that as name
             possible_seg_name=$1
             possible_seg_name=
-              auto_seg_name(possible_seg_name,heading_num_is,dob.lv,:extract)
+              auto_seg_name(possible_seg_name,heading_num_is,dob,:extract)
             possible_seg_name=possible_seg_name.
               gsub(/(?:[:,-]|\W)/,'.').
               gsub(/\.$/,'')
@@ -421,7 +424,7 @@ module SiSU_AO_Numbering
           if dob.ln==4 \
           and not dob.name                                 #if still no segment name, provide a numerical one
             possible_seg_name=
-              auto_seg_name(art_filename_auto,heading_num_is,dob.lv,:auto)
+              auto_seg_name(art_filename_auto,heading_num_is,dob,:auto)
             if @md.seg_names.is_a?(Array) \
             and not @md.seg_names.include?(possible_seg_name)
              dob.name=possible_seg_name