From deac702d85c5bbe68a8acf762a01939028e65320 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Fri, 7 Oct 2016 12:59:49 -0400
Subject: 0.7.1 re-arranging for unittests; tuple tests; read in files; obt

---
 src/sdp/ao_abstract_doc_source.d   | 38 +-----------------------------------
 src/sdp/ao_conf_make_meta.d        |  1 +
 src/sdp/ao_conf_make_meta_native.d |  2 +-
 src/sdp/ao_conf_make_meta_sdlang.d |  2 +-
 src/sdp/ao_read_source_files.d     | 40 ++++++++++++++++++++++++--------------
 5 files changed, 29 insertions(+), 54 deletions(-)

(limited to 'src/sdp')

diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index 5423513..d97b1b0 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -2064,7 +2064,6 @@ template SiSUdocAbstraction() {
       }
     }
     struct ObjInlineMarkup {
-    // struct ObjInlineMarkup : AssertObjInlineMarkup {
       auto munge = ObjInlineMarkupMunge();
       string[string] obj_txt;
       auto obj_inline_markup_and_anchor_tags(string[string] obj_, string[string][string] dochead_make_aa)
@@ -2078,7 +2077,7 @@ template SiSUdocAbstraction() {
         switch (obj_["is"]) {
         case "heading":
           static __gshared string anchor_tag = "";
-          // WORK ON, you still need to ensure that level 1 anchor_tags are unique
+          // TODO WORK ON, you still need to ensure that level 1 anchor_tags are unique
           obj_txt["munge"]=_configured_auto_heading_numbering_and_segment_anchor_tags(obj_txt["munge"], obj_, dochead_make_aa);
           obj_txt["munge"]=_make_segment_anchor_tags_if_none_provided(obj_txt["munge"], obj_["lev"]);
           if (auto m = match(obj_txt["munge"], rgx.heading_anchor_tag)) {
@@ -2737,41 +2736,6 @@ template SiSUdocAbstraction() {
         auto t = tuple(bookindex_section, obj_cite_number);
         return t;
       }
-      auto bookindex_build_section_(
-        string[][string][string] bookindex_unordered_hashes
-      ) {
-        auto mainkeys =
-          bookindex_unordered_hashes.byKey.array.sort().release;
-        string bi_tmp;
-        string[] bookindex_section;
-        // int bi_num;
-        // writeln(mainkeys.length);
-        foreach (mainkey; mainkeys) {
-          bi_tmp = "_0_1 !{" ~ mainkey ~ "}! ";
-          foreach (ref_; bookindex_unordered_hashes[mainkey]["_a"]) {
-            auto go = replaceAll(ref_, rgx.book_index_go, "$1");
-            bi_tmp ~= " {" ~ ref_ ~ "}#" ~ go ~ ", ";
-          }
-          bi_tmp ~= " \\\\\n    ";
-          bookindex_unordered_hashes[mainkey].remove("_a");
-          auto subkeys =
-            bookindex_unordered_hashes[mainkey].byKey.array.sort().release;
-          foreach (subkey; subkeys) {
-            bi_tmp ~= subkey ~ ", ";
-            // bi_tmp ~= "  " ~ subkey ~ ", ";
-            foreach (ref_; bookindex_unordered_hashes[mainkey][subkey]) {
-              auto go = replaceAll(ref_, rgx.book_index_go, "$1");
-              bi_tmp ~= " {" ~ ref_ ~ "}#" ~ go ~ ", ";
-            }
-            bi_tmp ~= " \\\\\n    ";
-            ++skn;
-          }
-          bi_tmp = replaceFirst(bi_tmp, rgx.trailing_linebreak, "");
-          bookindex_section ~= bi_tmp;
-          ++mkn;
-        }
-        return bookindex_section;
-      }
     }
     struct NotesSection {
       string object_notes;
diff --git a/src/sdp/ao_conf_make_meta.d b/src/sdp/ao_conf_make_meta.d
index 5bc9694..4056914 100644
--- a/src/sdp/ao_conf_make_meta.d
+++ b/src/sdp/ao_conf_make_meta.d
@@ -24,6 +24,7 @@ template SiSUheaderExtractHub() {
       ? (head_native.headerNativeToAA(header_src))
       : (head_sdlang.headerSDLangToAA(header_src, conf_doc_make_aa));
       static assert(!isTypeTuple!(header_make_and_meta_tuple));
+      static assert(header_make_and_meta_tuple.length==2);
       return header_make_and_meta_tuple;
     }
   }
diff --git a/src/sdp/ao_conf_make_meta_native.d b/src/sdp/ao_conf_make_meta_native.d
index f70a7bf..1242565 100644
--- a/src/sdp/ao_conf_make_meta_native.d
+++ b/src/sdp/ao_conf_make_meta_native.d
@@ -209,7 +209,7 @@ template SiSUheaderExtractNative() {
         }
       }
       auto t = tuple(dochead_meta, dochead_make);
-      static assert(!isTypeTuple!(t));
+      static assert(t.length==2);
       return t;
     }
     private auto native_header_extract(
diff --git a/src/sdp/ao_conf_make_meta_sdlang.d b/src/sdp/ao_conf_make_meta_sdlang.d
index 61b4960..3855e7c 100644
--- a/src/sdp/ao_conf_make_meta_sdlang.d
+++ b/src/sdp/ao_conf_make_meta_sdlang.d
@@ -237,7 +237,7 @@ template SiSUheaderExtractSDLang() {
       dochead_make = sdlangToAAmake(dochead_make, header_sdlang);
       auto dochead_meta = sdlangToAAmake(meta_aa, header_sdlang);
       auto t = tuple(dochead_make, dochead_meta);
-      static assert(!isTypeTuple!(t));
+      static assert(t.length==2);
       return t;
     }
     private auto headerSDLangToAA(char[] header_sdlang_src, string[string][string] conf_doc_make_aa) {
diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d
index 5aef05d..3fd070d 100644
--- a/src/sdp/ao_read_source_files.d
+++ b/src/sdp/ao_read_source_files.d
@@ -15,22 +15,28 @@ template SiSUmarkupRaw() {
   mixin RgxInit;
   auto rgx = Rgx();
   struct MarkupRaw {
-    auto sourceContent(in string fn_src) {
+    final sourceContent(in string fn_src) {
+      auto raw = MarkupRawUnit();
+      auto source_txt_str =
+        raw.markupSourceReadIn(fn_src);
+      return source_txt_str;
+    }
+    final auto sourceContentSplitIntoHeaderAndBody(in string source_txt_str, in string fn_src="") {
       auto raw = MarkupRawUnit();
       auto t =
-        raw.markupSourceHeaderContentRawLineTupleArray(fn_src, rgx.src_pth);
+        raw.markupSourceHeaderContentRawLineTupleArray(source_txt_str);
       auto header_raw = t[0];
-      auto sourcefile_content = t[1];
-      if (match(fn_src, rgx.src_fn_master)) {
+      auto sourcefile_body_content = t[1];
+      if (match(fn_src, rgx.src_fn_master)) { // filename with path needed if master file (.ssm) not otherwise
         auto ins = Inserts();
-        sourcefile_content =
-          ins.scan_master_src_for_insert_files_and_import_content(sourcefile_content, fn_src);
-        // auto ins = SiSUdocInserts.Inserts();
+        sourcefile_body_content =
+          ins.scan_master_src_for_insert_files_and_import_content(sourcefile_body_content, fn_src);
       }
       t = tuple(
         header_raw,
-        sourcefile_content
+        sourcefile_body_content
       );
+      static assert(t.length==2);
       return t;
     }
   }
@@ -90,12 +96,16 @@ template SiSUmarkupRaw() {
         split(cast(char[]) src_text, rgx.line_delimiter);
       return source_line_arr;
     }
-    auto markupSourceHeaderContentRawLineTupleArray(in string fn_src, Regex!(char) rgx_file ) {
+    auto markupSourceReadIn(in string fn_src) {
+      auto rgx = Rgx();
       enforce(
-        match(fn_src, rgx_file),
+        match(fn_src, rgx.src_pth),
         "not a sisu markup filename"
       );
       auto source_txt_str = readInMarkupSource(fn_src);
+      return source_txt_str;
+    }
+    auto markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) {
       auto hc = header0Content1(source_txt_str);
       auto header = hc[0];
       char[] la;
@@ -108,7 +118,7 @@ template SiSUmarkupRaw() {
       );
       return t;
     }
-    final char[][] markupSourceContentRawLineArray(in string fn_src, Regex!(char) rgx_file ) {
+    final char[][] getInsertMarkupSourceContentRawLineArray(in string fn_src, Regex!(char) rgx_file) {
       enforce(
         match(fn_src, rgx_file),
         "not a sisu markup filename"
@@ -178,7 +188,7 @@ template SiSUmarkupRaw() {
             to!string(markup_src_file_path ~ insert_sub_pth ~ insert_fn);
           auto raw = MarkupRawUnit();
           auto markup_sourcesubfile_insert_content =
-            raw.markupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
+            raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
           debug(insert) {                              // insert file
             tell_l("red", line);
             tell_l("red", fn_src_insert);
@@ -207,7 +217,7 @@ template SiSUmarkupRaw() {
       return contents_insert;
     }
     auto scan_master_src_for_insert_files_and_import_content(
-      char[][] sourcefile_content,
+      char[][] sourcefile_body_content,
       string fn_src
     ) {
       mixin SiSUrgxInitFlags;
@@ -215,7 +225,7 @@ template SiSUmarkupRaw() {
       auto type = flags_type_init;
       auto fn_pth_full = match(fn_src, rgx.src_pth);
       auto markup_src_file_path = fn_pth_full.captures[1];
-      foreach (line; sourcefile_content) {
+      foreach (line; sourcefile_body_content) {
         if (type["curly_code"] == 1) {
           if (matchFirst(line, rgx.block_curly_code_close)) {
             type["curly_code"] = 0;
@@ -246,7 +256,7 @@ template SiSUmarkupRaw() {
           //   raw.markupSourceHeaderContentRawLineTupleArray(fn_src, rgx.src_pth);
           }
           auto markup_sourcefile_insert_content =
-            raw.markupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
+            raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
           debug(insert) {                              // insert file
             tell_l("red", line);
             tell_l("red", fn_src_insert);
-- 
cgit v1.2.3