stupidedi
stupidedi copied to clipboard
Ruby API for parsing and generating ASC X12 EDI transactions
These transaction sets don't yet have any fixtures, so there aren't any automated tests to ensure their definitions can parse actual files. Even though these might be correct and working...
ElementDefs for lots of elements contain references to external code lists. What is a proper way to utilize those links? For example: ``` E1271 = t::AN.new(:E1271, "Industry Code" , 1,...
The HR271 standard contains one `NM1` loop (Loop 2120) nested within another (Loop 2100). When the parser encounters an `NM1` segment, it cannot decide whether to instantiate a new Loop...
In #164, I have disabled several transaction sets that were once in `Contrib::*::Guides`, because they would cause an exception when `require`d. These are: * [ ] Contrib::TwoThousandOne::Guides::FA997 * [ ]...
Because nearly every definition has a `#parent`, simple elements that are the "leaves" of a tree are copied quite a lot. Specifically, once a `SimpleElementDef` becomes part of a `SegmentDef`,...
The API documentation at [rubydoc.info](https://www.rubydoc.info/github/irobayna/stupidedi/) is probably in decent shape, but I'm not sure if the YARD plugins are still working. The human-readable documentation in `doc/` could be stale. It...
This code hasn't been reviewed in a long time, and it currently has low test coverage. Many of the validations are useful, however I think the only place it's used...
Check that any element marked `Relational` actually has a corresponding `SyntaxRule` and that each `SyntaxRule` uses valid segments indexes.
Because X12 standards are much easier to understand at a glance (because they omit the element-level details given in an X12 implementation), they could be a good tool to spot-check...
The reason behind having a parser than can handle non-determinism (see [GLR parser](https://en.wikipedia.org/wiki/GLR_parser)), was that it wasn't known if X12 specifications forbid ambiguous grammars, either implicitly or explicitly, or if...