stupidedi 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +215 -0
- data/Rakefile +108 -0
- data/bin/edi-ed +71 -0
- data/bin/edi-pp +81 -0
- data/doc/Defining.md +0 -0
- data/doc/Generating.md +321 -0
- data/doc/LICENSE.md +0 -0
- data/doc/Navigating.md +645 -0
- data/doc/Parsing.md +0 -0
- data/doc/Serializing.md +7 -0
- data/doc/Tokenizing.md +0 -0
- data/doc/Validating.md +0 -0
- data/doc/design/Parser.md +0 -0
- data/doc/design/Reader.md +0 -0
- data/lib/ruby/array.rb +164 -0
- data/lib/ruby/blank.rb +67 -0
- data/lib/ruby/enumerable.rb +35 -0
- data/lib/ruby/exception.rb +33 -0
- data/lib/ruby/hash.rb +4 -0
- data/lib/ruby/instance_exec.rb +26 -0
- data/lib/ruby/module.rb +79 -0
- data/lib/ruby/object.rb +63 -0
- data/lib/ruby/string.rb +73 -0
- data/lib/ruby/symbol.rb +24 -0
- data/lib/ruby/to_d.rb +81 -0
- data/lib/ruby/to_date.rb +33 -0
- data/lib/ruby/to_time.rb +24 -0
- data/lib/ruby/try.rb +43 -0
- data/lib/stupidedi/blank_slate.rb +11 -0
- data/lib/stupidedi/builder/builder_dsl.rb +281 -0
- data/lib/stupidedi/builder/constraint_table.rb +418 -0
- data/lib/stupidedi/builder/generation.rb +112 -0
- data/lib/stupidedi/builder/instruction.rb +102 -0
- data/lib/stupidedi/builder/instruction_table.rb +204 -0
- data/lib/stupidedi/builder/navigation.rb +655 -0
- data/lib/stupidedi/builder/state_machine.rb +55 -0
- data/lib/stupidedi/builder/states/abstract_state.rb +332 -0
- data/lib/stupidedi/builder/states/failure_state.rb +69 -0
- data/lib/stupidedi/builder/states/functional_group_state.rb +97 -0
- data/lib/stupidedi/builder/states/initial_state.rb +63 -0
- data/lib/stupidedi/builder/states/interchange_state.rb +94 -0
- data/lib/stupidedi/builder/states/loop_state.rb +79 -0
- data/lib/stupidedi/builder/states/table_state.rb +96 -0
- data/lib/stupidedi/builder/states/transaction_set_state.rb +112 -0
- data/lib/stupidedi/builder/states/transmission_state.rb +59 -0
- data/lib/stupidedi/builder/tokenization.rb +196 -0
- data/lib/stupidedi/builder.rb +23 -0
- data/lib/stupidedi/color.rb +93 -0
- data/lib/stupidedi/config/code_list_config.rb +42 -0
- data/lib/stupidedi/config/editor_config.rb +51 -0
- data/lib/stupidedi/config/functional_group_config.rb +62 -0
- data/lib/stupidedi/config/interchange_config.rb +79 -0
- data/lib/stupidedi/config/transaction_set_config.rb +91 -0
- data/lib/stupidedi/config.rb +101 -0
- data/lib/stupidedi/editor/00501.rb +341 -0
- data/lib/stupidedi/editor/005010/N2.rb +0 -0
- data/lib/stupidedi/editor/005010/N3.rb +0 -0
- data/lib/stupidedi/editor/005010/N4.rb +63 -0
- data/lib/stupidedi/editor/005010/NM1.rb +0 -0
- data/lib/stupidedi/editor/005010.rb +469 -0
- data/lib/stupidedi/editor/X222-HC837.rb +195 -0
- data/lib/stupidedi/editor/abstract_ed.rb +36 -0
- data/lib/stupidedi/editor/claim_ack.rb +9 -0
- data/lib/stupidedi/editor/implementation_ack.rb +213 -0
- data/lib/stupidedi/editor/interchange_ack.rb +9 -0
- data/lib/stupidedi/editor/result.rb +100 -0
- data/lib/stupidedi/editor/result_set.rb +69 -0
- data/lib/stupidedi/editor/transaction_set_ed.rb +275 -0
- data/lib/stupidedi/editor/transmission_ed.rb +90 -0
- data/lib/stupidedi/editor.rb +37 -0
- data/lib/stupidedi/either.rb +287 -0
- data/lib/stupidedi/exceptions/invalid_element_error.rb +8 -0
- data/lib/stupidedi/exceptions/invalid_schema_error.rb +8 -0
- data/lib/stupidedi/exceptions/output_error.rb +8 -0
- data/lib/stupidedi/exceptions/parse_error.rb +8 -0
- data/lib/stupidedi/exceptions/stupidedi_error.rb +8 -0
- data/lib/stupidedi/exceptions/tokenize_error.rb +8 -0
- data/lib/stupidedi/exceptions/zipper_error.rb +8 -0
- data/lib/stupidedi/exceptions.rb +11 -0
- data/lib/stupidedi/guides/005010/X214-HN277.rb +409 -0
- data/lib/stupidedi/guides/005010/X221-HP835.rb +613 -0
- data/lib/stupidedi/guides/005010/X221A1-HP835.rb +613 -0
- data/lib/stupidedi/guides/005010/X222-HC837P.rb +2291 -0
- data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +2297 -0
- data/lib/stupidedi/guides/005010/X231-FA999.rb +123 -0
- data/lib/stupidedi/guides/005010/X231A1-FA999.rb +119 -0
- data/lib/stupidedi/guides/005010/element_reqs.rb +38 -0
- data/lib/stupidedi/guides/005010/guide_builder.rb +180 -0
- data/lib/stupidedi/guides/005010/segment_reqs.rb +32 -0
- data/lib/stupidedi/guides/005010.rb +64 -0
- data/lib/stupidedi/guides.rb +5 -0
- data/lib/stupidedi/inspect.rb +26 -0
- data/lib/stupidedi/reader/input/abstract_input.rb +133 -0
- data/lib/stupidedi/reader/input/delegated_input.rb +111 -0
- data/lib/stupidedi/reader/input/file_input.rb +155 -0
- data/lib/stupidedi/reader/input.rb +30 -0
- data/lib/stupidedi/reader/position.rb +69 -0
- data/lib/stupidedi/reader/result.rb +168 -0
- data/lib/stupidedi/reader/segment_dict.rb +175 -0
- data/lib/stupidedi/reader/separators.rb +85 -0
- data/lib/stupidedi/reader/stream_reader.rb +172 -0
- data/lib/stupidedi/reader/token_reader.rb +466 -0
- data/lib/stupidedi/reader/tokens/component_element_tok.rb +56 -0
- data/lib/stupidedi/reader/tokens/composite_element_tok.rb +64 -0
- data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +64 -0
- data/lib/stupidedi/reader/tokens/segment_tok.rb +51 -0
- data/lib/stupidedi/reader/tokens/simple_element_tok.rb +63 -0
- data/lib/stupidedi/reader.rb +121 -0
- data/lib/stupidedi/schema/abstract_def.rb +74 -0
- data/lib/stupidedi/schema/abstract_use.rb +73 -0
- data/lib/stupidedi/schema/code_list.rb +94 -0
- data/lib/stupidedi/schema/element_def.rb +173 -0
- data/lib/stupidedi/schema/element_req.rb +56 -0
- data/lib/stupidedi/schema/element_use.rb +251 -0
- data/lib/stupidedi/schema/functional_group_def.rb +114 -0
- data/lib/stupidedi/schema/interchange_def.rb +93 -0
- data/lib/stupidedi/schema/loop_def.rb +152 -0
- data/lib/stupidedi/schema/repeat_count.rb +85 -0
- data/lib/stupidedi/schema/segment_def.rb +108 -0
- data/lib/stupidedi/schema/segment_req.rb +43 -0
- data/lib/stupidedi/schema/segment_use.rb +98 -0
- data/lib/stupidedi/schema/syntax_note.rb +63 -0
- data/lib/stupidedi/schema/table_def.rb +139 -0
- data/lib/stupidedi/schema/transaction_set_def.rb +88 -0
- data/lib/stupidedi/schema.rb +28 -0
- data/lib/stupidedi/sets/absolute_set.rb +297 -0
- data/lib/stupidedi/sets/abstract_set.rb +174 -0
- data/lib/stupidedi/sets/null_set.rb +125 -0
- data/lib/stupidedi/sets/relative_complement.rb +137 -0
- data/lib/stupidedi/sets/relative_set.rb +269 -0
- data/lib/stupidedi/sets/universal_set.rb +104 -0
- data/lib/stupidedi/sets.rb +57 -0
- data/lib/stupidedi/tail_call.rb +109 -0
- data/lib/stupidedi/thread_local.rb +174 -0
- data/lib/stupidedi/values/abstract_element_val.rb +19 -0
- data/lib/stupidedi/values/abstract_val.rb +130 -0
- data/lib/stupidedi/values/composite_element_val.rb +95 -0
- data/lib/stupidedi/values/functional_group_val.rb +102 -0
- data/lib/stupidedi/values/interchange_val.rb +86 -0
- data/lib/stupidedi/values/invalid_envelope_val.rb +61 -0
- data/lib/stupidedi/values/invalid_segment_val.rb +78 -0
- data/lib/stupidedi/values/loop_val.rb +70 -0
- data/lib/stupidedi/values/repeated_element_val.rb +105 -0
- data/lib/stupidedi/values/segment_val.rb +104 -0
- data/lib/stupidedi/values/segment_val_group.rb +20 -0
- data/lib/stupidedi/values/simple_element_val.rb +80 -0
- data/lib/stupidedi/values/table_val.rb +66 -0
- data/lib/stupidedi/values/transaction_set_val.rb +66 -0
- data/lib/stupidedi/values/transmission_val.rb +52 -0
- data/lib/stupidedi/values.rb +21 -0
- data/lib/stupidedi/version.rb +3 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +54 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +527 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +335 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +299 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +287 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +338 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +309 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +124 -0
- data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GS.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/004010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +1405 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +577 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +322 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +354 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +368 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +398 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +132 -0
- data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK1.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AMT.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BHT.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BPR.rb +49 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CAS.rb +56 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CL1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLM.rb +41 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLP.rb +34 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CN1.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR2.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CRC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTP.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTX.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DMG.rb +34 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN2.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTM.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/FRM.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GS.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HCP.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HI.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/K3.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LIN.rb +69 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LQ.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MEA.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MIA.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MOA.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NM1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/OI.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PAT.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PER.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLB.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PRV.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PS1.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PWK.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/QTY.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/RDM.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SBR.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ST.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/STC.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV1.rb +44 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV2.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV3.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV5.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TOO.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TRN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS2.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS3.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +227 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +165 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +85 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +163 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +64 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +74 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +68 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +53 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +240 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +68 -0
- data/lib/stupidedi/versions/functional_groups/005010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups.rb +8 -0
- data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +224 -0
- data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +45 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00401.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +269 -0
- data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +47 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISB.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISE.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA3.rb +18 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +37 -0
- data/lib/stupidedi/versions/interchanges/00501.rb +23 -0
- data/lib/stupidedi/versions/interchanges.rb +8 -0
- data/lib/stupidedi/versions.rb +6 -0
- data/lib/stupidedi/writer/claredi.rb +142 -0
- data/lib/stupidedi/writer/default.rb +124 -0
- data/lib/stupidedi/writer.rb +6 -0
- data/lib/stupidedi/zipper/abstract_cursor.rb +351 -0
- data/lib/stupidedi/zipper/dangling_cursor.rb +103 -0
- data/lib/stupidedi/zipper/edited_cursor.rb +157 -0
- data/lib/stupidedi/zipper/memoized_cursor.rb +131 -0
- data/lib/stupidedi/zipper/path.rb +124 -0
- data/lib/stupidedi/zipper/root_cursor.rb +120 -0
- data/lib/stupidedi/zipper.rb +25 -0
- data/lib/stupidedi.rb +66 -0
- data/spec/examples/integration/generating.example +551 -0
- data/spec/examples/integration/navigating.example +214 -0
- data/spec/examples/integration/parsing.example +445 -0
- data/spec/examples/ruby/array.example +476 -0
- data/spec/examples/ruby/blank.example +62 -0
- data/spec/examples/ruby/count.example +68 -0
- data/spec/examples/ruby/object.example +99 -0
- data/spec/examples/ruby/string.example +111 -0
- data/spec/examples/ruby/symbol.example +117 -0
- data/spec/examples/ruby/to_d.example +90 -0
- data/spec/examples/ruby/try.example +50 -0
- data/spec/examples/stupidedi/either.example +375 -0
- data/spec/examples/stupidedi/reader/failure.example +68 -0
- data/spec/examples/stupidedi/reader/input/delegated_input.example +292 -0
- data/spec/examples/stupidedi/reader/separators.example +73 -0
- data/spec/examples/stupidedi/reader/stream_reader.example +48 -0
- data/spec/examples/stupidedi/reader/success.example +34 -0
- data/spec/examples/stupidedi/reader/token_reader.example +775 -0
- data/spec/examples/stupidedi/reader.example +168 -0
- data/spec/examples/stupidedi/sets/absolute_set.example +1577 -0
- data/spec/examples/stupidedi/sets/null_set.example +2 -0
- data/spec/examples/stupidedi/sets/relative_set.example +2 -0
- data/spec/examples/stupidedi/sets/universal_set.example +1 -0
- data/spec/examples/stupidedi/versions/005010/element_types/an.example +201 -0
- data/spec/examples/stupidedi/versions/005010/element_types/dt.example +258 -0
- data/spec/examples/stupidedi/versions/005010/element_types/id.example +192 -0
- data/spec/examples/stupidedi/versions/005010/element_types/nn.example +177 -0
- data/spec/examples/stupidedi/versions/005010/element_types/r.example +178 -0
- data/spec/examples/stupidedi/versions/005010/element_types/tm.example +2 -0
- data/spec/examples/stupidedi/zipper/abstract_cursor.example +417 -0
- data/spec/examples/stupidedi/zipper.example +9 -0
- data/spec/fixtures/X186-AG824/1-bad.txt +21 -0
- data/spec/fixtures/X186-AG824/1-good.txt +17 -0
- data/spec/fixtures/X186-AG824/2-bad.txt +26 -0
- data/spec/fixtures/X186-AG824/2-good.txt +21 -0
- data/spec/fixtures/X186-AG824/3-bad.txt +87 -0
- data/spec/fixtures/X186-AG824/3-good.txt +61 -0
- data/spec/fixtures/X212-HN277/1-bad.txt +54 -0
- data/spec/fixtures/X212-HN277/1-good.txt +46 -0
- data/spec/fixtures/X212-HN277/2-bad.txt +37 -0
- data/spec/fixtures/X212-HN277/2-good.txt +29 -0
- data/spec/fixtures/X212-HN277/3-bad.txt +22 -0
- data/spec/fixtures/X212-HN277/3-good.txt +17 -0
- data/spec/fixtures/X212-HN277/4-bad.txt +30 -0
- data/spec/fixtures/X212-HN277/4-good.txt +24 -0
- data/spec/fixtures/X212-HR276/1-bad.txt +53 -0
- data/spec/fixtures/X212-HR276/1-good.txt +46 -0
- data/spec/fixtures/X212-HR276/2-bad.txt +45 -0
- data/spec/fixtures/X212-HR276/2-good.txt +38 -0
- data/spec/fixtures/X212-HR276/3-bad.txt +32 -0
- data/spec/fixtures/X212-HR276/3-good.txt +26 -0
- data/spec/fixtures/X212-HR276/4-bad.txt +32 -0
- data/spec/fixtures/X212-HR276/4-good.txt +26 -0
- data/spec/fixtures/X214-HN277/1-bad.txt +58 -0
- data/spec/fixtures/X214-HN277/1-good.txt +47 -0
- data/spec/fixtures/X214-HN277/2-bad.txt +34 -0
- data/spec/fixtures/X214-HN277/2-good.txt +22 -0
- data/spec/fixtures/X214-HN277/3-bad.txt +64 -0
- data/spec/fixtures/X214-HN277/3-good.txt +54 -0
- data/spec/fixtures/X214-HN277/4-bad.txt +77 -0
- data/spec/fixtures/X214-HN277/4-good.txt +63 -0
- data/spec/fixtures/X216-HI278/1-bad.txt +42 -0
- data/spec/fixtures/X216-HI278/1-good.txt +27 -0
- data/spec/fixtures/X216-HI278/2-bad.txt +43 -0
- data/spec/fixtures/X216-HI278/2-good.txt +29 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1_Clean.txt +20 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2.txt +46 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2_Clean.txt +30 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3.txt +38 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3_Clean.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a.txt +39 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a_Clean.txt +24 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b.txt +43 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b_Clean.txt +25 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5.txt +63 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5_Clean.txt +41 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6.txt +36 -0
- data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6_Clean.txt +20 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r.txt +34 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r_Clean.txt +23 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r.txt +46 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r_Clean.txt +31 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r.txt +44 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r_Clean.txt +26 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4ar_Clean.txt +28 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4br_Clean.txt +35 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r.txt +60 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r_Clean.txt +42 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r.txt +40 -0
- data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r_Clean.txt +24 -0
- data/spec/fixtures/X218-RA820/1-bad.txt +31 -0
- data/spec/fixtures/X218-RA820/1-good.txt +25 -0
- data/spec/fixtures/X218-RA820/2-bad.txt +37 -0
- data/spec/fixtures/X218-RA820/2-good.txt +29 -0
- data/spec/fixtures/X218-RA820/3-bad.txt +29 -0
- data/spec/fixtures/X218-RA820/3-good.txt +23 -0
- data/spec/fixtures/X218-RA820/4-bad.txt +36 -0
- data/spec/fixtures/X218-RA820/4-good.txt +27 -0
- data/spec/fixtures/X220-BE834/1-bad.txt +35 -0
- data/spec/fixtures/X220-BE834/1-good.txt +29 -0
- data/spec/fixtures/X220-BE834/10-bad.txt +26 -0
- data/spec/fixtures/X220-BE834/10-good.txt +19 -0
- data/spec/fixtures/X220-BE834/2-bad.txt +31 -0
- data/spec/fixtures/X220-BE834/2-good.txt +23 -0
- data/spec/fixtures/X220-BE834/3-bad.txt +36 -0
- data/spec/fixtures/X220-BE834/3-good.txt +26 -0
- data/spec/fixtures/X220-BE834/4-bad.txt +27 -0
- data/spec/fixtures/X220-BE834/4-good.txt +21 -0
- data/spec/fixtures/X220-BE834/5-bad.txt +26 -0
- data/spec/fixtures/X220-BE834/5-good.txt +17 -0
- data/spec/fixtures/X220-BE834/6-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/6-good.txt +20 -0
- data/spec/fixtures/X220-BE834/7-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/7-good.txt +20 -0
- data/spec/fixtures/X220-BE834/8-bad.txt +25 -0
- data/spec/fixtures/X220-BE834/8-good.txt +20 -0
- data/spec/fixtures/X220-BE834/9-bad.txt +27 -0
- data/spec/fixtures/X220-BE834/9-good.txt +21 -0
- data/spec/fixtures/X221-HP835/1-bad.txt +58 -0
- data/spec/fixtures/X221-HP835/1-good.txt +40 -0
- data/spec/fixtures/X221-HP835/2-bad.txt +51 -0
- data/spec/fixtures/X221-HP835/2-good.txt +40 -0
- data/spec/fixtures/X221-HP835/3a-bad.txt +78 -0
- data/spec/fixtures/X221-HP835/3a-good.txt +49 -0
- data/spec/fixtures/X221-HP835/3b-bad.txt +60 -0
- data/spec/fixtures/X221-HP835/3b-good.txt +32 -0
- data/spec/fixtures/X221-HP835/3c-bad.txt +55 -0
- data/spec/fixtures/X221-HP835/3c-good.txt +34 -0
- data/spec/fixtures/X222-HC837/1-bad.txt +60 -0
- data/spec/fixtures/X222-HC837/1-good.txt +53 -0
- data/spec/fixtures/X222-HC837/10a-bad.txt +52 -0
- data/spec/fixtures/X222-HC837/10a-good.txt +40 -0
- data/spec/fixtures/X222-HC837/10b-bad.txt +99 -0
- data/spec/fixtures/X222-HC837/10b-good.txt +80 -0
- data/spec/fixtures/X222-HC837/10c-bad.txt +105 -0
- data/spec/fixtures/X222-HC837/10c-good.txt +80 -0
- data/spec/fixtures/X222-HC837/11-bad.txt +69 -0
- data/spec/fixtures/X222-HC837/11-good.txt +45 -0
- data/spec/fixtures/X222-HC837/12-bad.txt +73 -0
- data/spec/fixtures/X222-HC837/12-good.txt +51 -0
- data/spec/fixtures/X222-HC837/13-bad.txt +64 -0
- data/spec/fixtures/X222-HC837/13-good.txt +46 -0
- data/spec/fixtures/X222-HC837/3a-bad.txt +83 -0
- data/spec/fixtures/X222-HC837/3a-good.txt +59 -0
- data/spec/fixtures/X222-HC837/3b-bad.txt +97 -0
- data/spec/fixtures/X222-HC837/3b-good.txt +70 -0
- data/spec/fixtures/X222-HC837/3c-bad.txt +95 -0
- data/spec/fixtures/X222-HC837/3c-good.txt +74 -0
- data/spec/fixtures/X222-HC837/4-bad.txt +67 -0
- data/spec/fixtures/X222-HC837/4-good.txt +48 -0
- data/spec/fixtures/X222-HC837/5-bad.txt +73 -0
- data/spec/fixtures/X222-HC837/5-good.txt +60 -0
- data/spec/fixtures/X222-HC837/6-bad.txt +50 -0
- data/spec/fixtures/X222-HC837/6-good.txt +39 -0
- data/spec/fixtures/X222-HC837/7-bad.txt +93 -0
- data/spec/fixtures/X222-HC837/7-good.txt +78 -0
- data/spec/fixtures/X222-HC837/8-bad.txt +64 -0
- data/spec/fixtures/X222-HC837/8-good.txt +52 -0
- data/spec/fixtures/X222-HC837/9-bad.txt +56 -0
- data/spec/fixtures/X222-HC837/9-good.txt +38 -0
- data/spec/fixtures/X223-HC837/1-bad.txt +66 -0
- data/spec/fixtures/X223-HC837/1-good.txt +53 -0
- data/spec/fixtures/X223-HC837/2-bad.txt +69 -0
- data/spec/fixtures/X223-HC837/2-good.txt +60 -0
- data/spec/fixtures/X223-HC837/3-bad.txt +89 -0
- data/spec/fixtures/X223-HC837/3-good.txt +61 -0
- data/spec/fixtures/X223-HC837/4-bad.txt +60 -0
- data/spec/fixtures/X223-HC837/4-good.txt +40 -0
- data/spec/fixtures/X223-HC837/5-bad.txt +75 -0
- data/spec/fixtures/X223-HC837/5-good.txt +58 -0
- data/spec/fixtures/X224-HC837/1-bad.txt +54 -0
- data/spec/fixtures/X224-HC837/1-good.txt +44 -0
- data/spec/fixtures/X224-HC837/2a-bad.txt +52 -0
- data/spec/fixtures/X224-HC837/2a-good.txt +42 -0
- data/spec/fixtures/X224-HC837/2b-bad.txt +67 -0
- data/spec/fixtures/X224-HC837/2b-good.txt +52 -0
- data/spec/fixtures/X224-HC837/3-bad.txt +67 -0
- data/spec/fixtures/X224-HC837/3-good.txt +51 -0
- data/spec/fixtures/X224-HC837/4-bad.txt +49 -0
- data/spec/fixtures/X224-HC837/4-good.txt +40 -0
- data/spec/fixtures/X230-FA997/1-bad.txt +19 -0
- data/spec/fixtures/X230-FA997/1-good.txt +16 -0
- data/spec/fixtures/X231-FA999/1-bad.txt +20 -0
- data/spec/fixtures/X231-FA999/1-good.txt +20 -0
- data/spec/fixtures/X279-HB271/1-bad.txt +36 -0
- data/spec/fixtures/X279-HB271/1-good.txt +30 -0
- data/spec/fixtures/X279-HB271/2-bad.txt +22 -0
- data/spec/fixtures/X279-HB271/2-good.txt +16 -0
- data/spec/fixtures/X279-HB271/3-bad.txt +44 -0
- data/spec/fixtures/X279-HB271/3-good.txt +36 -0
- data/spec/fixtures/X279-HS270/1-bad.txt +29 -0
- data/spec/fixtures/X279-HS270/1-good.txt +23 -0
- data/spec/fixtures/X279-HS270/2-bad.txt +32 -0
- data/spec/fixtures/X279-HS270/2-good.txt +25 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/support/fixtures.rb +26 -0
- data/spec/support/matchers/either_matchers.rb +26 -0
- data/spec/support/matchers/navigation_matchers.rb +247 -0
- data/spec/support/node.rb +41 -0
- data/spec/support/quickcheck/characters.rb +28 -0
- data/spec/support/quickcheck/property.rb +105 -0
- data/spec/support/quickcheck/serialized_edi.rb +399 -0
- data/spec/support/quickcheck.rb +302 -0
- data/spec/support/rcov.rb +34 -0
- metadata +577 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module FunctionalGroups
|
|
4
|
+
module FiftyTen
|
|
5
|
+
module TransactionSetDefs
|
|
6
|
+
|
|
7
|
+
d = Schema
|
|
8
|
+
r = SegmentReqs
|
|
9
|
+
s = SegmentDefs
|
|
10
|
+
|
|
11
|
+
RA820 = d::TransactionSetDef.build("RA", "820",
|
|
12
|
+
"Payment Order/Remittance Advice",
|
|
13
|
+
|
|
14
|
+
d::TableDef.header("Table 1 - Header",
|
|
15
|
+
s:: ST.use(100, r::Mandatory, d::RepeatCount.bounded(1)),
|
|
16
|
+
s::BHT.use(200, r::Mandatory, d::RepeatCount.bounded(1)),
|
|
17
|
+
s::NTE.use(300, r::Optional, d::RepeatCount.unbounded),
|
|
18
|
+
s::TRN.use(350, r::Optional, d::RepeatCount.bounded(1)),
|
|
19
|
+
s::CUR.use(400, r::Optional, d::RepeatCount.bounded(1)),
|
|
20
|
+
s::REF.use(500, r::Optional, d::RepeatCount.unbounded),
|
|
21
|
+
s::DTM.use(600, r::Optional, d::RepeatCount.unbounded),
|
|
22
|
+
|
|
23
|
+
d::LoopDef.build("N1", d::RepeatCount.unbounded,
|
|
24
|
+
s:: N1.use( 700, r::Optional, d::RepeatCount.bounded(1)),
|
|
25
|
+
s:: N2.use( 800, r::Optional, d::RepeatCount.unbounded),
|
|
26
|
+
s:: N3.use( 900, r::Optional, d::RepeatCount.unbounded),
|
|
27
|
+
s:: N4.use(1000, r::Optional, d::RepeatCount.bounded(1)),
|
|
28
|
+
s::REF.use(1100, r::Optional, d::RepeatCount.unbounded),
|
|
29
|
+
s::PER.use(1200, r::Optional, d::RepeatCount.unbounded),
|
|
30
|
+
s::RDM.use(1300, r::Optional, d::RepeatCount.bounded(1)),
|
|
31
|
+
s::DTM.use(1400, r::Optional, d::RepeatCount.bounded(1)))),
|
|
32
|
+
|
|
33
|
+
d::TableDef.detail("Table 2 - Detail",
|
|
34
|
+
d::LoopDef.build("ENT", d::RepeatCount.unbounded,
|
|
35
|
+
s::ENT.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
36
|
+
|
|
37
|
+
d::LoopDef.build("ENT/FA1", d::RepeatCount.unbounded,
|
|
38
|
+
s::FA1.use( 150, r::Optional, d::RepeatCount.bounded(1)),
|
|
39
|
+
s::FA2.use( 160, r::Mandatory, d::RepeatCount.unbounded)),
|
|
40
|
+
|
|
41
|
+
d::LoopDef.build("ENT/NM1", d::RepeatCount.unbounded,
|
|
42
|
+
s::NM1.use( 200, r::Optional, d::RepeatCount.bounded(1)),
|
|
43
|
+
s:: N2.use( 300, r::Optional, d::RepeatCount.unbounded),
|
|
44
|
+
s:: N3.use( 400, r::Optional, d::RepeatCount.unbounded),
|
|
45
|
+
s:: N4.use( 500, r::Optional, d::RepeatCount.bounded(1)),
|
|
46
|
+
s::REF.use( 600, r::Optional, d::RepeatCount.unbounded),
|
|
47
|
+
s::PER.use( 700, r::Optional, d::RepeatCount.unbounded)),
|
|
48
|
+
|
|
49
|
+
d::LoopDef.build("ENT/ADX", d::RepeatCount.unbounded,
|
|
50
|
+
s::ADX.use( 800, r::Optional, d::RepeatCount.bounded(1)),
|
|
51
|
+
s::NTE.use( 900, r::Optional, d::RepeatCount.unbounded),
|
|
52
|
+
s::PER.use(1000, r::Optional, d::RepeatCount.unbounded),
|
|
53
|
+
s::DTM.use(1050, r::Optional, d::RepeatCount.bounded(1)),
|
|
54
|
+
|
|
55
|
+
d::LoopDef.build("ENT/ADX/REF", d::RepeatCount.unbounded,
|
|
56
|
+
s::REF.use(1100, r::Optional, d::RepeatCount.bounded(1)),
|
|
57
|
+
s::DTM.use(1200, r::Optional, d::RepeatCount.unbounded)),
|
|
58
|
+
|
|
59
|
+
d::LoopDef.build("ENT/ADX/IT1", d::RepeatCount.unbounded,
|
|
60
|
+
s::IT1.use(1300, r::Optional, d::RepeatCount.bounded(1)),
|
|
61
|
+
s::RPA.use(1310, r::Optional, d::RepeatCount.bounded(1)),
|
|
62
|
+
s::QTY.use(1320, r::Optional, d::RepeatCount.bounded(1)),
|
|
63
|
+
|
|
64
|
+
d::LoopDef.build("ENT/ADX/IT1/REF", d::RepeatCount.unbounded,
|
|
65
|
+
s::REF.use(1400, r::Optional, d::RepeatCount.bounded(1)),
|
|
66
|
+
s::DTM.use(1410, r::Optional, d::RepeatCount.bounded(1))),
|
|
67
|
+
|
|
68
|
+
d::LoopDef.build("ENT/ADX/IT1/SAC", d::RepeatCount.unbounded,
|
|
69
|
+
s::SAC.use(1420, r::Optional, d::RepeatCount.bounded(1)),
|
|
70
|
+
s::TXI.use(1430, r::Optional, d::RepeatCount.unbounded),
|
|
71
|
+
s::DTM.use(1440, r::Optional, d::RepeatCount.bounded(10))),
|
|
72
|
+
|
|
73
|
+
d::LoopDef.build("ENT/ADX/IT1/SLN", d::RepeatCount.unbounded,
|
|
74
|
+
s::SLN.use(1450, r::Optional, d::RepeatCount.bounded(1)),
|
|
75
|
+
|
|
76
|
+
d::LoopDef.build("ENT/ADX/IT1/SLN/REF", d::RepeatCount.unbounded,
|
|
77
|
+
s::REF.use(1460, r::Optional, d::RepeatCount.bounded(1)),
|
|
78
|
+
s::DTM.use(1470, r::Optional, d::RepeatCount.unbounded)),
|
|
79
|
+
|
|
80
|
+
d::LoopDef.build("ENT/ADX/IT1/SLN/SAC", d::RepeatCount.unbounded,
|
|
81
|
+
s::SAC.use(1480, r::Optional, d::RepeatCount.bounded(1)),
|
|
82
|
+
s::TXI.use(1490, r::Optional, d::RepeatCount.unbounded)))),
|
|
83
|
+
|
|
84
|
+
d::LoopDef.build("ENT/ADX/FA1", d::RepeatCount.unbounded,
|
|
85
|
+
s::FA1.use(1495, r::Optional, d::RepeatCount.bounded(1)),
|
|
86
|
+
s::FA2.use(1496, r::Mandatory, d::RepeatCount.bounded(1)))),
|
|
87
|
+
|
|
88
|
+
d::LoopDef.build("ENT/RMR", d::RepeatCount.unbounded,
|
|
89
|
+
s::RMR.use(1500, r::Optional, d::RepeatCount.bounded(1)),
|
|
90
|
+
s::NTE.use(1600, r::Optional, d::RepeatCount.unbounded),
|
|
91
|
+
s::REF.use(1700, r::Optional, d::RepeatCount.unbounded),
|
|
92
|
+
s::DTM.use(1800, r::Optional, d::RepeatCount.unbounded),
|
|
93
|
+
s::VEH.use(1850, r::Optional, d::RepeatCount.bounded(1)),
|
|
94
|
+
|
|
95
|
+
d::LoopDef.build("ENT/RMR/IT1", d::RepeatCount.unbounded,
|
|
96
|
+
s::IT1.use(1900, r::Optional, d::RepeatCount.bounded(1)),
|
|
97
|
+
s::RPA.use(1920, r::Optional, d::RepeatCount.bounded(1)),
|
|
98
|
+
s::QTY.use(1940, r::Optional, d::RepeatCount.bounded(1)),
|
|
99
|
+
|
|
100
|
+
d::LoopDef.build("ENT/RMR/IT1/REF", d::RepeatCount.unbounded,
|
|
101
|
+
s::REF.use(2000, r::Optional, d::RepeatCount.bounded(1)),
|
|
102
|
+
s::DTM.use(2010, r::Optional, d::RepeatCount.bounded(1))),
|
|
103
|
+
|
|
104
|
+
d::LoopDef.build("ENT/RMR/IT1/SAC", d::RepeatCount.unbounded,
|
|
105
|
+
s::SAC.use(2020, r::Optional, d::RepeatCount.bounded(1)),
|
|
106
|
+
s::TXI.use(2030, r::Optional, d::RepeatCount.unbounded)),
|
|
107
|
+
|
|
108
|
+
d::LoopDef.build("ENT/RMR/IT1/SLN", d::RepeatCount.unbounded,
|
|
109
|
+
s::SLN.use(2040, r::Optional, d::RepeatCount.bounded(1)),
|
|
110
|
+
|
|
111
|
+
d::LoopDef.build("ENT/RMR/IT1/SLN/REF", d::RepeatCount.unbounded,
|
|
112
|
+
s::REF.use(2050, r::Optional, d::RepeatCount.bounded(1)),
|
|
113
|
+
s::DTM.use(2060, r::Optional, d::RepeatCount.unbounded)),
|
|
114
|
+
|
|
115
|
+
d::LoopDef.build("ENT/RMR/IT1/SLN/SAC", d::RepeatCount.unbounded,
|
|
116
|
+
s::SAC.use(2070, r::Optional, d::RepeatCount.bounded(1)),
|
|
117
|
+
s::TXI.use(2080, r::Optional, d::RepeatCount.unbounded)))),
|
|
118
|
+
|
|
119
|
+
d::LoopDef.build("ENT/RMR/ADX", d::RepeatCount.unbounded,
|
|
120
|
+
s::ADX.use(2100, r::Optional, d::RepeatCount.unbounded),
|
|
121
|
+
s::NTE.use(2200, r::Optional, d::RepeatCount.unbounded),
|
|
122
|
+
s::PER.use(2300, r::Optional, d::RepeatCount.unbounded),
|
|
123
|
+
|
|
124
|
+
d::LoopDef.build("ENT/RMR/ADX/REF", d::RepeatCount.unbounded,
|
|
125
|
+
s::REF.use(2400, r::Optional, d::RepeatCount.bounded(1)),
|
|
126
|
+
s::DTM.use(2500, r::Optional, d::RepeatCount.unbounded)),
|
|
127
|
+
|
|
128
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1", d::RepeatCount.unbounded,
|
|
129
|
+
s::IT1.use(2600, r::Optional, d::RepeatCount.bounded(1)),
|
|
130
|
+
s::RPA.use(2610, r::Optional, d::RepeatCount.bounded(1)),
|
|
131
|
+
s::QTY.use(2620, r::Optional, d::RepeatCount.bounded(1)),
|
|
132
|
+
|
|
133
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1/REF", d::RepeatCount.unbounded,
|
|
134
|
+
s::REF.use(2700, r::Optional, d::RepeatCount.bounded(1)),
|
|
135
|
+
s::DTM.use(2710, r::Optional, d::RepeatCount.bounded(1))),
|
|
136
|
+
|
|
137
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1/SAC", d::RepeatCount.unbounded,
|
|
138
|
+
s::SAC.use(2720, r::Optional, d::RepeatCount.bounded(1)),
|
|
139
|
+
s::TXI.use(2730, r::Optional, d::RepeatCount.unbounded)),
|
|
140
|
+
s::DTM.use(2740, r::Optional, d::RepeatCount.bounded(10))),
|
|
141
|
+
|
|
142
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1/SLN", d::RepeatCount.unbounded,
|
|
143
|
+
s::SLN.use(2750, r::Optional, d::RepeatCount.bounded(1)),
|
|
144
|
+
|
|
145
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1/SLN/REF", d::RepeatCount.unbounded,
|
|
146
|
+
s::REF.use(2760, r::Optional, d::RepeatCount.bounded(1)),
|
|
147
|
+
s::DTM.use(2770, r::Optional, d::RepeatCount.unbounded)),
|
|
148
|
+
|
|
149
|
+
d::LoopDef.build("ENT/RMR/ADX/IT1/SLN/SAC", d::RepeatCount.unbounded,
|
|
150
|
+
s::SAC.use(2780, r::Optional, d::RepeatCount.bounded(1)),
|
|
151
|
+
s::TXI.use(2790, r::Optional, d::RepeatCount.unbounded)))),
|
|
152
|
+
|
|
153
|
+
d::LoopDef.build("ENT/RMR/FA1", d::RepeatCount.unbounded,
|
|
154
|
+
s::FA1.use(2795, r::Optional, d::RepeatCount.unbounded),
|
|
155
|
+
s::FA2.use(2796, r::Optional, d::RepeatCount.unbounded))),
|
|
156
|
+
|
|
157
|
+
d::LoopDef.build("TXP", d::RepeatCount.unbounded,
|
|
158
|
+
s::TXP.use(2800, r::Optional, d::RepeatCount.bounded(1)),
|
|
159
|
+
s::TXI.use(2850, r::Optional, d::RepeatCount.unbounded),
|
|
160
|
+
s::REF.use(2855, r::Optional, d::RepeatCount.unbounded),
|
|
161
|
+
s::DTM.use(2860, r::Optional, d::RepeatCount.unbounded)),
|
|
162
|
+
|
|
163
|
+
d::LoopDef.build("DED", d::RepeatCount.unbounded,
|
|
164
|
+
s::DED.use(2870, r::Optional, d::RepeatCount.bounded(1))),
|
|
165
|
+
|
|
166
|
+
d::LoopDef.build("LX", d::RepeatCount.unbounded,
|
|
167
|
+
s:: LX.use(2900, r::Optional, d::RepeatCount.bounded(1)),
|
|
168
|
+
s::REF.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
169
|
+
s::TRN.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
170
|
+
|
|
171
|
+
d::LoopDef.build("LX/NM1", d::RepeatCount.unbounded,
|
|
172
|
+
s::NM1.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
173
|
+
s::REF.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
174
|
+
s::G53.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
175
|
+
|
|
176
|
+
d::LoopDef.build("LX/NM1/AIN", d::RepeatCount.unbounded,
|
|
177
|
+
s::AIN.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
178
|
+
s::QTY.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
179
|
+
s::DTP.use( 100, r::Optional, d::RepeatCount.unbounded)),
|
|
180
|
+
|
|
181
|
+
d::LoopDef.build("LX/NM1/PEN", d::RepeatCount.unbounded,
|
|
182
|
+
s::PEN.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
183
|
+
s::AMT.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
184
|
+
s::DTP.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
185
|
+
|
|
186
|
+
d::LoopDef.build("LX/NM1/PEN/INV", d::RepeatCount.unbounded,
|
|
187
|
+
s::INV.use( 100, r::Optional, d::RepeatCount.bounded(1))),
|
|
188
|
+
s::DTP.use( 100, r::Optional, d::RepeatCount.unbounded)))),
|
|
189
|
+
|
|
190
|
+
d::LoopDef.build("N9", d::RepeatCount.unbounded,
|
|
191
|
+
s:: N9.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
192
|
+
s::REF.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
193
|
+
|
|
194
|
+
d::LoopDef.build("N9/AMT", d::RepeatCount.unbounded,
|
|
195
|
+
s::AMT.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
196
|
+
s::REF.use( 100, r::Optional, d::RepeatCount.unbounded)),
|
|
197
|
+
|
|
198
|
+
d::LoopDef.build("N9/N1", d::RepeatCount.unbounded,
|
|
199
|
+
s:: N1.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
200
|
+
s::REF.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
201
|
+
|
|
202
|
+
d::LoopDef.build("N9/N1/EMS", d::RepeatCount.unbounded,
|
|
203
|
+
s::EMS.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
204
|
+
s::ATN.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
205
|
+
s::AIN.use( 100, r::Optional, d::RepeatCount.unbounded),
|
|
206
|
+
s::PYD.use( 100, r::Optional, d::RepeatCount.unbounded)))),
|
|
207
|
+
|
|
208
|
+
d::LoopDef.build("RYL", d::RepeatCount.unbounded,
|
|
209
|
+
s::RYL.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
210
|
+
|
|
211
|
+
d::LoopDef.build("RYL/NM1", d::RepeatCount.unbounded,
|
|
212
|
+
s::NM1.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
213
|
+
|
|
214
|
+
d::LoopDef.build("RYL/NM1/LOC", d::RepeatCount.unbounded,
|
|
215
|
+
s::LOC.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
216
|
+
|
|
217
|
+
d::LoopDef.build("RYL/NM1/LOC/PID", d::RepeatCount.unbounded,
|
|
218
|
+
s::PID.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
219
|
+
s::DTM.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
220
|
+
|
|
221
|
+
d::LoopDef.build("RYL/NM1/LOC/PID/PCT", d::RepeatCount.unbounded,
|
|
222
|
+
s::PCT.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
223
|
+
s::QTY.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
224
|
+
|
|
225
|
+
d::LoopDef.build("RYL/NM1/LOC/PID/PCT/AMT", d::RepeatCount.unbounded,
|
|
226
|
+
s::AMT.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
227
|
+
s::ADX.use( 100, r::Optional, d::RepeatCount.unbounded))))),
|
|
228
|
+
|
|
229
|
+
d::LoopDef.build("RYL/NM1/ASM", d::RepeatCount.unbounded,
|
|
230
|
+
s::ASM.use( 100, r::Optional, d::RepeatCount.bounded(1)),
|
|
231
|
+
s::ADX.use( 100, r::Optional, d::RepeatCount.bounded(1))))))),
|
|
232
|
+
|
|
233
|
+
d::TableDef.summary("Table 3 - Summary",
|
|
234
|
+
s:: SE.use( 100, r::Mandatory, d::RepeatCount.bounded(1))))
|
|
235
|
+
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module FunctionalGroups
|
|
4
|
+
module FiftyTen
|
|
5
|
+
module TransactionSetDefs
|
|
6
|
+
|
|
7
|
+
# 005010X187 xx269
|
|
8
|
+
|
|
9
|
+
# 005010X279 Eligibility, Coverage or Benefit Inquiry
|
|
10
|
+
autoload :HS270, # Eligibility, Coverage or Benefit Inquiry
|
|
11
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270"
|
|
12
|
+
|
|
13
|
+
# 005010X279 Eligibility, Coverage or Benefit Response
|
|
14
|
+
autoload :HB271, # Eligibility, Coverage or Benefit Response
|
|
15
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271"
|
|
16
|
+
|
|
17
|
+
# 005010X209 xx274
|
|
18
|
+
# 005010X254 xx275
|
|
19
|
+
|
|
20
|
+
# 005010X212 Health Care Claim Status Request
|
|
21
|
+
autoload :HR276, # Health Care Claim Status Request
|
|
22
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276"
|
|
23
|
+
|
|
24
|
+
# 005010X212 Health Care Information Status Notification
|
|
25
|
+
# 005010X213
|
|
26
|
+
# 005010X214 Health Care Claim Acknowledgment
|
|
27
|
+
# 005010X228
|
|
28
|
+
autoload :HN277, # Health Care Information Status Notification
|
|
29
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277"
|
|
30
|
+
|
|
31
|
+
# 005010X215
|
|
32
|
+
# 005010X216
|
|
33
|
+
# 005010X217 Health Care Services Review Information - Review
|
|
34
|
+
# 005010X217 Health Care Services Review Information - Response
|
|
35
|
+
autoload :HI278, # Health Care Services Review Information
|
|
36
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278"
|
|
37
|
+
|
|
38
|
+
# 005010X218 Payment Order/Remittance Advice
|
|
39
|
+
autoload :RA820, # Payment Order/Remittance Advice
|
|
40
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820"
|
|
41
|
+
|
|
42
|
+
# # 005010X220 Benefit Enrollment and Maintenance
|
|
43
|
+
# autoload :BE834, # Benefit Enrollment and Maintenance
|
|
44
|
+
# "stupidedi/versions/functional_groups/005010/transaction_set_defs/BE834"
|
|
45
|
+
|
|
46
|
+
# 005010X221 Health Care Claim Payment/Advice
|
|
47
|
+
autoload :HP835, # Health Care Claim Payment/Advice
|
|
48
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835"
|
|
49
|
+
|
|
50
|
+
# 005010X222 Health Care Claim: Professional
|
|
51
|
+
# 005010X223 Health Care Claim: Institutional
|
|
52
|
+
# 005010X224 Health Care Claim: Dental
|
|
53
|
+
autoload :HC837, # Health Care Claim
|
|
54
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837"
|
|
55
|
+
|
|
56
|
+
# # 005010X230 Functional Acknowledgement
|
|
57
|
+
# autoload :FA997, # Functional Acknowledgment
|
|
58
|
+
# "stupidedi/versions/functional_groups/005010/transaction_set_defs/FA997"
|
|
59
|
+
|
|
60
|
+
# 005010X231 Functional Acknowledgement
|
|
61
|
+
autoload :FA999, # Implementation Acknowledgment
|
|
62
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999"
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module FunctionalGroups
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# @see Guides::FiftyTen
|
|
7
|
+
# @see Interchanges::FiveOhOne
|
|
8
|
+
#
|
|
9
|
+
module FiftyTen
|
|
10
|
+
|
|
11
|
+
autoload :ElementTypes,
|
|
12
|
+
"stupidedi/versions/functional_groups/005010/element_types"
|
|
13
|
+
|
|
14
|
+
autoload :ElementDefs,
|
|
15
|
+
"stupidedi/versions/functional_groups/005010/element_defs"
|
|
16
|
+
|
|
17
|
+
autoload :ElementReqs,
|
|
18
|
+
"stupidedi/versions/functional_groups/005010/element_reqs"
|
|
19
|
+
|
|
20
|
+
autoload :FunctionalGroupDef,
|
|
21
|
+
"stupidedi/versions/functional_groups/005010/functional_group_def"
|
|
22
|
+
|
|
23
|
+
autoload :SegmentDefs,
|
|
24
|
+
"stupidedi/versions/functional_groups/005010/segment_defs"
|
|
25
|
+
|
|
26
|
+
autoload :SegmentReqs,
|
|
27
|
+
"stupidedi/versions/functional_groups/005010/segment_reqs"
|
|
28
|
+
|
|
29
|
+
autoload :SyntaxNotes,
|
|
30
|
+
"stupidedi/versions/functional_groups/005010/syntax_notes"
|
|
31
|
+
|
|
32
|
+
autoload :TransactionSetDefs,
|
|
33
|
+
"stupidedi/versions/functional_groups/005010/transaction_set_defs"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FourOhOne
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# @see FunctionalGroups::FortyTen::ElementTypes
|
|
8
|
+
# @see Schema::CodeList
|
|
9
|
+
#
|
|
10
|
+
module ElementDefs
|
|
11
|
+
|
|
12
|
+
# Import definitions of DT, R, ID, Nn, AN, TM, and SimpleElementDef
|
|
13
|
+
t = FunctionalGroups::FortyTen::ElementTypes
|
|
14
|
+
s = Schema
|
|
15
|
+
|
|
16
|
+
class SeparatorElementVal < Values::SimpleElementVal
|
|
17
|
+
|
|
18
|
+
delegate :to_s, :length, :to => :@value
|
|
19
|
+
|
|
20
|
+
def initialize(value, usage, position)
|
|
21
|
+
@value = value
|
|
22
|
+
super(usage, position)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @return [SeparatorElementVal]
|
|
26
|
+
def copy(changes = {})
|
|
27
|
+
SeparatorElementVal.new \
|
|
28
|
+
changes.fetch(:value, @value),
|
|
29
|
+
changes.fetch(:usage, usage),
|
|
30
|
+
changes.fetch(:position, position)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def valid?
|
|
34
|
+
true
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def empty?
|
|
38
|
+
@value.blank?
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def too_short?
|
|
42
|
+
@value.length < 1
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def too_long?
|
|
46
|
+
@value.length > 1
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def separator?
|
|
50
|
+
true
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def inspect
|
|
54
|
+
id = definition.try{|d| ansi.bold("[#{d.id}]") }
|
|
55
|
+
ansi.element("SeparatorElementVal.value#{id}") << "(#{@value || "nil"})"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class << SeparatorElementVal
|
|
60
|
+
# @group Constructors
|
|
61
|
+
###################################################################
|
|
62
|
+
|
|
63
|
+
# @raise NoMethodError
|
|
64
|
+
def empty(usage, position)
|
|
65
|
+
SeparatorElementVal.new(nil, usage, position)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @return [SeparatorElementVal]
|
|
69
|
+
def value(character, usage, position)
|
|
70
|
+
SeparatorElementVal.new(character, usage, position)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @return [SeparatorElementVal]
|
|
74
|
+
def parse(character, usage, position)
|
|
75
|
+
SeparatorElementVal.new(character, usage, position)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @endgroup
|
|
79
|
+
###################################################################
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
I01 = t::ID.new(:I01, "Authorization Information Qualifier", 2, 2,
|
|
83
|
+
s::CodeList.build(
|
|
84
|
+
"00" => "No Authorization Information Present (No Meaningful Information in I02)",
|
|
85
|
+
# "01" => "UCS Communications ID",
|
|
86
|
+
# "02" => "EDX Communications ID",
|
|
87
|
+
"03" => "Additional Data Identification"))
|
|
88
|
+
# "04" => "Rail Communication ID",
|
|
89
|
+
# "05" => "Deparment of Defense (DoD) Communication Identifier",
|
|
90
|
+
# "06" => "United States Federal Government Communication Identifier"))
|
|
91
|
+
|
|
92
|
+
I02 = t::AN.new(:I02, "Authorization Information", 10, 10)
|
|
93
|
+
|
|
94
|
+
I03 = t::ID.new(:I03, "Security Information Qualifier", 2, 2,
|
|
95
|
+
s::CodeList.build(
|
|
96
|
+
"00" => "No Security Information (No Meaningful Information in I04)",
|
|
97
|
+
"01" => "Password"))
|
|
98
|
+
|
|
99
|
+
I04 = t::AN.new(:I04, "Security Information", 10, 10)
|
|
100
|
+
|
|
101
|
+
I05 = t::ID.new(:I05, "Interchange ID Qualifier", 2, 2,
|
|
102
|
+
s::CodeList.build(
|
|
103
|
+
"01" => "Duns (Dun & Bradstreet)",
|
|
104
|
+
# "02" => "SCAC (Standard Carrier Alpha Code)",
|
|
105
|
+
# "03" => "FMC (Federal Maritime Commission)",
|
|
106
|
+
# "04" => "IATA (International Air Transport Association)",
|
|
107
|
+
# "07" => s::CodeList.external("583"),
|
|
108
|
+
# "08" => "UCC EDI Communications ID (Comm ID)",
|
|
109
|
+
# "09" => "X.121 (CCITT)",
|
|
110
|
+
# "10" => s::CodeList.external("350"),
|
|
111
|
+
# "11" => "DEA (Drug Enforcement Administration)",
|
|
112
|
+
# "12" => "Phone (Telephone Companies)",
|
|
113
|
+
# "13" => "UCS Code (The UCS Code is a Code Used for UCS Transmissions; it includes the Area Code and Telephone Number of a Modem; it Does Not Include Punctation, Blanks, or Access Code)",
|
|
114
|
+
"14" => "Duns Plus Suffix",
|
|
115
|
+
# "15" => "Petroleum Accountants Society of Canada Company Code",
|
|
116
|
+
# "16" => "Duns Number With 4-Character Suffix",
|
|
117
|
+
# "17" => "American Bankers Association (ABA) Transit Routing Number (Including Check Digit, 9 Digit)",
|
|
118
|
+
# "18" => s::CodeList.external("420"),
|
|
119
|
+
# "19" => s::CodeList.external("421"),
|
|
120
|
+
"20" => s::CodeList.external("121"),
|
|
121
|
+
# "21" => s::CodeList.external("422"),
|
|
122
|
+
# "22" => s::CodeList.external("423"),
|
|
123
|
+
# "23" => s::CodeList.external("424"),
|
|
124
|
+
# "24" => s::CodeList.external("425"),
|
|
125
|
+
# "25" => s::CodeList.external("426"),
|
|
126
|
+
# "26" => s::CodeList.external("296", "300"),
|
|
127
|
+
"27" => "Carrier Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
128
|
+
"28" => "Fiscal Intermediary Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
129
|
+
"29" => "Medicare Provider and Supplier Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
130
|
+
"30" => "US Federal Tax Identification Number",
|
|
131
|
+
# "31" => "Jurisdiction Identification Number Plus 4 as assigned by the Interational Association of Industrial Accident Boards and Commissions (IAIABC)",
|
|
132
|
+
# "32" => "US Federal Employer Identification Number (FEIN)",
|
|
133
|
+
"33" => "National Association of Insurance Commissioners Company Code (NAIC)",
|
|
134
|
+
# "34" => "Medicaid Provider and Supplier Identification Number as assigned by individual State Medicaid Agencies in conjunction with Health Care Financing Administration (HCFA)",
|
|
135
|
+
# "35" => "Statistics Canada Canadian College Student Information System Institution Codes",
|
|
136
|
+
# "36" => s::CodeList.external("300"),
|
|
137
|
+
# "37" => s::CodeList.external("573"),
|
|
138
|
+
# "38" => s::CodeList.external("862"),
|
|
139
|
+
# "AM" => s::CodeList.external("497"),
|
|
140
|
+
# "NR" => "National Retail Merchants Association (NRMA) Assigned",
|
|
141
|
+
# "SA" => s::CodeList.external("851"),
|
|
142
|
+
# "SN" => s::CodeList.external("42"),
|
|
143
|
+
"ZZ" => "Mutually Defined"))
|
|
144
|
+
|
|
145
|
+
I06 = t::AN.new(:I06, "Interchange Sender ID", 15, 15)
|
|
146
|
+
I07 = t::AN.new(:I07, "Interchange Receiver ID", 15, 15)
|
|
147
|
+
I08 = t::DT.new(:I08, "Interchange Date", 6, 6)
|
|
148
|
+
I09 = t::TM.new(:I09, "Interchange Time", 4, 4)
|
|
149
|
+
|
|
150
|
+
I10 = t::ID.new(:I10, "Interchange Control Standards Identifier", 1, 1,
|
|
151
|
+
s::CodeList.build(
|
|
152
|
+
"U" => "U.S. EDI Community of ASC X12, TDCC, and UCS"))
|
|
153
|
+
|
|
154
|
+
I11 = t::ID.new(:I11, "Interchange Control Version Number", 5, 5,
|
|
155
|
+
s::CodeList.build(
|
|
156
|
+
"00401" => "Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1997"))
|
|
157
|
+
|
|
158
|
+
I12 = t::Nn.new(:I12, "Interchange Control Number", 9, 9, 0)
|
|
159
|
+
|
|
160
|
+
I13 = t::ID.new(:I13, "Acknowledgment Requested", 1, 1,
|
|
161
|
+
s::CodeList.build(
|
|
162
|
+
"0" => "No Interchange Acknowledgment Requested",
|
|
163
|
+
"1" => "Interchange Acknowledgment Requested (TA1)"))
|
|
164
|
+
|
|
165
|
+
I14 = t::ID.new(:I14, "Interchange Usage Indicator", 1, 1,
|
|
166
|
+
s::CodeList.build(
|
|
167
|
+
# "I" => "Information",
|
|
168
|
+
"P" => "Production Data",
|
|
169
|
+
"T" => "Test Data"))
|
|
170
|
+
|
|
171
|
+
I15 = Class.new(t::SimpleElementDef) do
|
|
172
|
+
def companion
|
|
173
|
+
SeparatorElementVal
|
|
174
|
+
end
|
|
175
|
+
end.new(:I15, "Component Element Separator", 1, 1)
|
|
176
|
+
|
|
177
|
+
I16 = t::Nn.new(:I16, "Number of Included Functional Groups", 1, 5, 0)
|
|
178
|
+
|
|
179
|
+
I17 = t::ID.new(:I17, "Interchange Acknowledgement Code", 1, 1,
|
|
180
|
+
s::CodeList.build(
|
|
181
|
+
"A" => "The Transmitted Interchange Control Structure Header and Trailer Have Been Received and Have No Errors",
|
|
182
|
+
"E" => "The Transmitted Interchange Control Structure Header and Trailer Have Been Received and Are Accepted But Errors Are Noted. This Means the Sender Must Not Resend the Data.",
|
|
183
|
+
"R" => "The Transmitted Interchange Control Structure Header and Trailer are Rejected Because of Errors"))
|
|
184
|
+
|
|
185
|
+
I18 = t::ID.new(:I18, "Interchange Note Code", 3, 3,
|
|
186
|
+
s::CodeList.build(
|
|
187
|
+
"000" => "No error",
|
|
188
|
+
"001" => "The Interchange Control Number in the Header and Trailer Do Not Match. The Value From the Header is Used in the Acknowledgement",
|
|
189
|
+
"002" => "This Standard as Noted in the Control Standards Identifier is Not Supported",
|
|
190
|
+
"003" => "This Version of the Controls is Not Supported",
|
|
191
|
+
"004" => "The Segment Terminator is Invalid",
|
|
192
|
+
"005" => "Invalid Interchange ID Qualifier for Sender",
|
|
193
|
+
"006" => "Invalid Interchange Sender ID",
|
|
194
|
+
"007" => "Invalid Interchange ID Qualifier for Receiver",
|
|
195
|
+
"008" => "Invalid Interchange Receiver ID",
|
|
196
|
+
"009" => "Unknown Interchange Receiver ID",
|
|
197
|
+
"010" => "Invalid Authorization Information Qualifier Value",
|
|
198
|
+
"011" => "Invalid Authorization Information Value",
|
|
199
|
+
"012" => "Invalid Security Information Qualifier Value",
|
|
200
|
+
"013" => "Invalid Security Information Value",
|
|
201
|
+
"014" => "Invalid Interchange Date Value",
|
|
202
|
+
"015" => "Invalid Interchange Time Value",
|
|
203
|
+
"016" => "Invalid Interchange Standards Identifier Value",
|
|
204
|
+
"017" => "Invalid Interchange Version ID Value",
|
|
205
|
+
"018" => "Invalid Interchange Control Number Value",
|
|
206
|
+
"019" => "Invalid Acknowledgement Requested Value",
|
|
207
|
+
"020" => "Invalid Test Indicator Value",
|
|
208
|
+
"021" => "Invalid Number of Included Groups Value",
|
|
209
|
+
"022" => "Invalid Control Characters",
|
|
210
|
+
"023" => "Improper (Premature) End-of-File (Transmission)",
|
|
211
|
+
"024" => "Invalid Interchange Content (ex Invalid GS Segment)",
|
|
212
|
+
"025" => "Duplicate Interchange Control Numbers",
|
|
213
|
+
"026" => "Invalid Data Structure Separator",
|
|
214
|
+
"027" => "Invalid Component Element Separator",
|
|
215
|
+
"028" => "Invalid Date in Deferred Delivery Request",
|
|
216
|
+
"029" => "Invalid Time in Deferred Delivery Request",
|
|
217
|
+
"030" => "Invalid Delivery Time Code in Deferred Delivery Request",
|
|
218
|
+
"031" => "Invalid Grade of Service"))
|
|
219
|
+
|
|
220
|
+
end
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# @see Values::InterchangeDef
|
|
7
|
+
#
|
|
8
|
+
module FourOhOne
|
|
9
|
+
|
|
10
|
+
s = Schema
|
|
11
|
+
r = FunctionalGroups::FortyTen::ElementReqs
|
|
12
|
+
|
|
13
|
+
InterchangeDef = Class.new(Schema::InterchangeDef) do
|
|
14
|
+
# @group Constructors
|
|
15
|
+
#####################################################################
|
|
16
|
+
|
|
17
|
+
# @return [Values::InterchangeVal]
|
|
18
|
+
def empty(separators)
|
|
19
|
+
Values::InterchangeVal.new(self, [], separators)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @endgroup
|
|
23
|
+
#####################################################################
|
|
24
|
+
|
|
25
|
+
# @return [Module]
|
|
26
|
+
def segment_dict
|
|
27
|
+
SegmentDefs
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @return [Reader::Separators]
|
|
31
|
+
def separators(isa)
|
|
32
|
+
Reader::Separators.new(isa.element(16).to_s, nil, nil, nil)
|
|
33
|
+
end
|
|
34
|
+
end.new "00401",
|
|
35
|
+
# Interchange header
|
|
36
|
+
[ SegmentDefs::ISA.use(1, r::Mandatory, s::RepeatCount.bounded(1)),
|
|
37
|
+
SegmentDefs::TA1.use(4, r::Optional, s::RepeatCount.unbounded) ],
|
|
38
|
+
|
|
39
|
+
# Interchange trailer
|
|
40
|
+
[ SegmentDefs::IEA.use(5, r::Mandatory, s::RepeatCount.bounded(1)) ]
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FourOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FortyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
IEA = s::SegmentDef.build(:IEA, "Interchange Control Trailer",
|
|
12
|
+
"To define the end of an interchange of zero or more functional groups and interchange-related control segments",
|
|
13
|
+
e::I16.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
14
|
+
e::I12.simple_use(r::Mandatory, s::RepeatCount.bounded(1)))
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|