diff --git a/README.md b/README.md index 58211ef..dbef01e 100644 --- a/README.md +++ b/README.md @@ -16,27 +16,32 @@ import std.stdio; void main() { - Config.file.read("./settings.conf"); + rc.read("./settings.conf"); - foreach (key, param; Config.file.keys()) + foreach (key, param; rc.sn.keys()) writefln("%s => %s", key, param); - writeln(Config.file.key("value1")); + writeln(rc.sn.key("value1")); + + foreach (key, param; rc.sn("part2").keys()) + writefln("%s => %s", key, param); + + writeln(rc.sn("part2").key("value1")); } ``` Result: ``` -value1 => This is the full value -value2 => Take the value in quotation marks -value3 => Or take in apostrophes -value4 => You can also comment -value5 => So you can also comment -value6 => "And you can even do that!" -value7 => 1234567890 -value8 => 12345.67890 -value9 => You can use large margins -value12 => //path -This is the full value +value1 => text without quotes +value2 => Yes! +value3 => value in apostrophes +value4 => 1000 +value5 => 0.000 +value7 => //path +value8 => "Hey!" +text without quotes +value1 => this value will be in the new section +value3 => good value! +this value will be in the new section ``` diff --git a/img/matches.png b/img/matches.png index c3c3695..28bce79 100644 Binary files a/img/matches.png and b/img/matches.png differ diff --git a/tests/settings.conf b/tests/settings.conf index 0e7ef7d..6d4fb28 100644 --- a/tests/settings.conf +++ b/tests/settings.conf @@ -1,13 +1,23 @@ Such a line will not be read -value1 = This is the full value -value2 = "Take the value in quotation marks" -value3 = 'Or take in apostrophes' -value4 => You can also comment // Another separator and comment -value5 => 'So you can also comment' # Yeah! -value6 => '"And you can even do that!"' ; He-he;) -value7 = 1234567890 # decimal value -value8 => 12345.67890 ; float value -value9 => You can use large margins -value10 = // But a line without a value will not be read -value11 = //path # not working -value12 = "//path" // nice way (or '//path') +The main section is set by default +value1=text without quotes +value2=>"value in quotation marks" +value3=>'value in apostrophes' ; and here is the first comment + value4 => 1000 // free space in spaces and tabs + value5 => 0.000 /* different form of commenting +value6 = // the string will not be read because the parameter value is missing +value7 = '' ; limiting empty characters will also not be taken into account +[part2] ; a new section! +value1 = this value will be in the new section +value 2 = 200 ; The parameter name is incorrect +value3 => good value! # and another way of commenting + +[] ; Make the main section again! +value7 => '//path' # and now the value7 will be read! +value2 = Yes! /* We will also redefine the value2 +value8 => '"Hey!"' # you can separate the values in quotation marks or apostrophes + +[part3] // and another section +value1=>-2 ; so you can +value2=3// but it will not work to leave a comment +value3=>100 //you need space from the value by at least 1 character diff --git a/tests/test.d b/tests/test.d index 796a6f0..60e75be 100644 --- a/tests/test.d +++ b/tests/test.d @@ -4,28 +4,31 @@ unittest { rc.read("./tests/settings.conf"); - assert(rc.sn.key("value1") == "This is the full value"); - assert(rc.sn.key("value2") == "Take the value in quotation marks"); - assert(rc.sn.key("value3") == "Or take in apostrophes"); - assert(rc.sn.key("value4") == "You can also comment"); - assert(rc.sn.key("value5") == "So you can also comment"); - assert(rc.sn.key("value6") == "\"And you can even do that!\""); - assert(rc.sn.key("value7") == "1234567890"); - assert(rc.sn.key("value8") == "12345.67890"); - assert(rc.sn.key("value9") == "You can use large margins"); - assert(rc.sn.key("value10").empty); - assert(rc.sn.key("value11").empty); - assert(rc.sn.key("value12") == "//path"); + assert(rc.sn.key("value1") == "text without quotes"); + assert(rc.sn.key("value2") == "Yes!"); + assert(rc.sn.key("value3") == "value in apostrophes"); + assert(rc.sn.key("value4") == "1000"); + assert(rc.sn.key("value5") == "0.000"); + assert(rc.sn.key("value7") == "//path"); + assert(rc.sn.key("value8") == "\"Hey!\""); + assert(rc.sn("part2").key("value1") == "this value will be in the new section"); + assert(rc.sn("part2").key("value3") == "good value!"); + assert(rc.sn("part3").key("value1") == "-2"); + assert(rc.sn("part3").key("value3") == "100"); } - // void main() // { // import std.stdio; -// Config.file.read("./tests/settings.conf"); +// rc.read("./tests/settings.conf"); -// foreach (key, param; Config.file.keys()) +// foreach (key, param; rc.sn.keys()) // writefln("%s => %s", key, param); -// writeln(Config.file.key("value1")); +// writeln(rc.sn.key("value1")); + +// foreach (key, param; rc.sn("part2").keys()) +// writefln("%s => %s", key, param); + +// writeln(rc.sn("part2").key("value1")); // }