Commit Graph

100 Commits

Author SHA1 Message Date
lilleman 48e2b1ce9f Reword the bindOptions, parseInput and datatypeOf comments, the --help paragraph on blank stdin, and the empty-table and no-datatype errors 2026-10-08 12:37:59 +02:00
lilleman 9baa77c752 Drop the CLI's no-data hint, keep the number underflow rule in grammar/number.go, and name the JSON a template may be 2026-10-08 12:37:59 +02:00
lilleman 295347a455 Test that --no-shipped-data alone reports the library's no-data note as it is 2026-10-08 12:37:59 +02:00
lilleman 357a2a276d Print the CSV header at -n 0, refuse --separator with a record format, refuse a date field in time(), read a bare number template as a format string, and say when no data is loaded 2026-10-08 12:37:59 +02:00
lilleman 332b99ad88 Test the CSV header at -n 0, --separator refused with a record format, a date field in time() refused, a bare number template printed as written, and the no-data note 2026-10-08 12:37:59 +02:00
lilleman c337dc4436 Test what stability round 1 found untested: a parent's zero-weight rows, a frame per draw of a choice item, ignored flags against the run without them, two leading slashes, and an option too close to 0 2026-10-08 12:37:59 +02:00
lilleman 8f1cd76bf1 Render blank stdin, read a category's own fields as fresh draws, refuse a bare number or boolean in a record column, and refuse a one-item choice of weight 0 2026-10-08 12:37:59 +02:00
lilleman dd09d7ae82 Test blank stdin rendering, a category reading itself as a fresh draw, a bare number or boolean refused in a record column, a one-item choice of weight 0 refused, and a hidden rows file read 2026-10-08 12:37:59 +02:00
lilleman 3dfaa8d0fa Let --repeat 0 print nothing, or an empty array under --format json 2026-10-08 12:37:59 +02:00
lilleman 24a4b6ed24 Test --repeat 0 writing no render and no record 2026-10-08 12:37:59 +02:00
lilleman f036f859d6 Load a generator with no data, a repeat or count of 0, and a name a choice's item binds for that item's own reads 2026-10-08 12:37:59 +02:00
lilleman 1e159fdf3a Test a generator with no data, a repeat or count of 0 rendering nothing, and a name a choice's item binds and reads 2026-10-08 12:37:59 +02:00
lilleman ee236d7955 Load whatever is well-formed and means one thing: ignore a part with no effect, print a constant sample, render any JSON value, draw no weight-0 item, and let a name, a rows file, a struct or a CLI flag go unused 2026-10-08 12:37:59 +02:00
lilleman 052a52fc7a Test that what is well-formed and means one thing loads: ignored parts, constant samples, any JSON value, weight 0, an unread name, a stray rows file, a tagless struct and flags with no effect 2026-10-08 12:37:59 +02:00
lilleman 57bd06c16f Answer architecture round 3 and principles audits round 2: a weight drawn against nothing names the drop, null alone on stdin names jq, the CLI-copy decision names hasEmptySegment, the padding and layout decisions quote what they catch, and the padded binding is filed 2026-10-08 12:37:59 +02:00
lilleman c8193da3d0 Test a weight of 0 drawn against nothing naming the drop, and null alone on stdin naming jq 2026-10-08 12:37:59 +02:00
lilleman d8acc9f3f3 Load a default written out in every position, refuse null outside a column again, read a field once per alternation, refuse an empty segment in the CLI's lone reference, and hold a declared datatype as one value 2026-10-08 12:37:59 +02:00
lilleman 49736bd2b6 Test that a default written out loads in every position, null outside a column is refused, an alternation reads a field once, and the CLI's lone reference refuses an empty segment 2026-10-08 12:37:59 +02:00
lilleman 6b26b18104 Let a declared datatype win over a column read, count a repeat as written, refuse null alone on stdin and a second leading slash, and hand NewTemplate stdin as sent 2026-10-08 12:37:59 +02:00
lilleman 1a022dbd79 Test a declared datatype over a column read, repeats counting as written, null alone on stdin, one leading slash, and the CLI's lone reference against the grammar 2026-10-08 12:37:59 +02:00
lilleman e63efe327f Load each spelling that only restated a shorter one, as that shorter form 2026-10-08 12:37:59 +02:00
lilleman 91b65e3ded Test that each spelling goal 5.7 no longer refuses loads as its shorter form 2026-10-08 12:37:59 +02:00
lilleman 3e932d5e5f Answer architecture round 5, stability round 4 and product-owner round 4: an argument that is a lone reference is echoed back, and a hint for a template holding a backslash pipes it through printf 2026-10-07 21:58:29 +02:00
lilleman 75184b44cb Answer prose round 3: --format text names the default, the record sentence in --help reads on one pass, and the padded-JSON decision points at the stdin ruling 2026-10-07 21:58:29 +02:00
lilleman 0de54c3b15 Answer architecture round 4, stability round 3, product-owner round 3 and prose round 2: stdin trims JSON's own whitespace around any JSON value, the padded-JSON title names NewTemplate and the CLI, the JSON examples hold no backslash for echo, an argument's example is built only from a template or a valid reference and shell-quoted, the text scope of adding nothing, blank stdin, and the stdin decision in four paragraphs 2026-10-07 21:58:29 +02:00
lilleman e5babf413d Answer architecture round 3, stability round 2, product-owner round 2 and prose round 1: the CLI renders exactly the template on stdin and adds nothing, --separator defaults to empty, whitespace around JSON is dropped, a lone reference under --format allows one newline, a blank stdin is refused, an unexpected argument names the spelling to use, and the prose names one lone reference 2026-10-07 21:58:29 +02:00
lilleman 58a7b16a7f Answer architecture round 2, stability round 1 and product-owner round 1: a format string on stdin keeps every byte while JSON or a lone reference drops one newline, an operand's error names stdin, a file or the pipe, {//x} is refused and "{/x}" read as its record, plain echo and a heredoc in the examples, goal 7 reads one command line, decision titles drop argument, and items 157 to 159 filed 2026-10-07 21:58:29 +02:00
lilleman 83b4b0bdf0 Answer architecture round 1: stdin drops one newline, \n or \r\n, and reaches the library unchanged, inputError names the input's fault, two decisions and item 110 stop naming a CLI argument, the gate exemption moves to the floor entry, and item 156 asks about the JSON string 2026-10-07 21:58:29 +02:00
lilleman 2bf043aefc Read the CLI's template from stdin, drop one newline ending it, trim the whitespace around a JSON template, and refuse an argument 2026-10-07 21:58:29 +02:00
lilleman b68ec83f29 Test the CLI reading its template from stdin, dropping one trailing newline, trimming around JSON and refusing an argument 2026-10-07 21:58:29 +02:00
lilleman ec1dcbf9d3 Answer prose round 1: name the parent after .., mark the step down as the one exception to the shared draw, and plainer errors 2026-10-05 00:23:18 +02:00
lilleman 406232e8f9 Answer stability round 1 and product-owner round 1: spell .. in the fence's and the link column's advice, take it in struct tags, and show the whole climb 2026-10-05 00:23:18 +02:00
lilleman bded47846d State the seed exception once, with pin-then-regenerate advice, and word --seed's help as the README's row 2026-10-04 17:17:46 +02:00
lilleman 6eb9880a3f Name the version in every seed promise, and say to regenerate seeded fixtures when it changes 2026-10-04 17:17:46 +02:00
lilleman a9448d1a99 Delete comments restating their code, and doc.go's partial list of draw fences 2026-09-30 22:01:04 +02:00
lilleman 21b48c8c41 Correct the false comments and delete dead code 2026-09-28 21:46:24 +02:00
lilleman fab6ab4f2e Move the project to GitHub, where a stranger can file an issue and open a PR 2026-09-21 00:30:16 +02:00
lilleman b0db82f2f1 Rename misc.country to misc.territory, name each one's sovereign state, and state the four data rules that settle it 2026-09-18 23:02:45 +02:00
lilleman e9d8603611 Expect misc.territory and the sovereign it names, in place of misc.country 2026-09-18 23:02:43 +02:00
lilleman 35dc998b03 Test that a fieldless path names its record and the quoting a shell needs 2026-09-18 20:43:37 +02:00
lilleman 57b2d182c7 Name both quotings when a shell splits a template
Tests / vet + fmt + tests (pull_request) Successful in 1m25s
Tests / Gitea release from CHANGELOG.md (pull_request) Has been skipped
2026-09-18 20:39:54 +02:00
lilleman fb5a5ff38f Test that a split template names both quotings 2026-09-18 20:39:08 +02:00
lilleman c8a4ffa764 Export ErrNoColumns, name the cure for a shell-split template and an unquoted record, and name the flag a missing data path came from 2026-09-18 20:35:56 +02:00
lilleman d5d9c2655e Give every table its path in one pass, name it in every message, read the layout probes through predicates, and leave the shell to the CLI 2026-09-18 20:02:08 +02:00
lilleman 42c74b9b43 Load the whole shipped set where a test loaded one locale, and admit registered street and place names 2026-09-18 00:23:03 +02:00
lilleman 51b9385aee Adjust the fixtures the table fence refuses, and pair README table examples with their TSV and parent 2026-09-17 12:28:49 +02:00
lilleman f6b54c8ae6 Add the table node: rows TSV, key and name selection, linked tables drawn consistently, and the choice-of-rows fence 2026-09-17 12:28:46 +02:00
lilleman d4060e041a Test the table node: rows TSV, key and name selection, linked tables drawn consistently, and the choice-of-rows fence 2026-09-17 11:47:39 +02:00
lilleman e4ebfdb28d Cap a struct type's records at 1024, find a lone reference in the value a template holds, word range refusals as unproven, and scope the lone-reference Decision to arguments and tags
Tests / vet + fmt + tests (pull_request) Successful in 1m0s
2026-09-15 17:35:15 +02:00
lilleman a548abcc02 Tests: embedded fields join their struct's record, fake:"-" leaves a struct unfilled, integer ranges round inward, and a lone reference is refused as a path 2026-09-15 16:53:56 +02:00