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,34 @@
|
|
|
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
|
+
ISA = s::SegmentDef.build(:ISA, "Interchange Control Header",
|
|
12
|
+
"To start and identify an interchange of zero or more functional groups and interchange-related control segments",
|
|
13
|
+
e::I01.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
14
|
+
e::I02.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
15
|
+
e::I03.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
16
|
+
e::I04.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
17
|
+
e::I05.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
18
|
+
e::I06.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
19
|
+
e::I05.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
20
|
+
e::I07.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
21
|
+
e::I08.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
22
|
+
e::I09.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
23
|
+
e::I10.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
24
|
+
e::I11.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
25
|
+
e::I12.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
26
|
+
e::I13.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
27
|
+
e::I14.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
28
|
+
e::I15.simple_use(r::Mandatory, s::RepeatCount.bounded(1)))
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
TA1 = s::SegmentDef.build(:TA1, "Interchange Acknowledgement",
|
|
12
|
+
"To report the status of processing a received interchange header and trailer or the non-delivery by a network provider",
|
|
13
|
+
e::I12.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
14
|
+
e::I08.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
15
|
+
e::I09.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
16
|
+
e::I17.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
17
|
+
e::I18.simple_use(r::Mandatory, s::RepeatCount.bounded(1)))
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FourOhOne
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# @see Schema::SegmentDef.build
|
|
8
|
+
#
|
|
9
|
+
module SegmentDefs
|
|
10
|
+
|
|
11
|
+
s = Schema
|
|
12
|
+
e = ElementDefs
|
|
13
|
+
m = FunctionalGroups::FortyTen::ElementReqs
|
|
14
|
+
|
|
15
|
+
autoload :ISA,
|
|
16
|
+
"stupidedi/versions/interchanges/00401/segment_defs/ISA"
|
|
17
|
+
|
|
18
|
+
autoload :IEA,
|
|
19
|
+
"stupidedi/versions/interchanges/00401/segment_defs/IEA"
|
|
20
|
+
|
|
21
|
+
autoload :TA1,
|
|
22
|
+
"stupidedi/versions/interchanges/00401/segment_defs/TA1"
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# @see FunctionalGroups::FortyTen
|
|
7
|
+
#
|
|
8
|
+
module FourOhOne
|
|
9
|
+
|
|
10
|
+
autoload :ElementDefs,
|
|
11
|
+
"stupidedi/versions/interchanges/00401/element_defs"
|
|
12
|
+
|
|
13
|
+
autoload :SegmentDefs,
|
|
14
|
+
"stupidedi/versions/interchanges/00401/segment_defs"
|
|
15
|
+
|
|
16
|
+
autoload :InterchangeDef,
|
|
17
|
+
"stupidedi/versions/interchanges/00401/interchange_def"
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# @see FunctionalGroups::FiftyTen::ElementTypes
|
|
8
|
+
# @see Schema::CodeList
|
|
9
|
+
#
|
|
10
|
+
module ElementDefs
|
|
11
|
+
|
|
12
|
+
# Import definitions of B, DT, R, ID, Nn, AN, TM, and SimpleElementDef
|
|
13
|
+
t = FunctionalGroups::FiftyTen::ElementTypes
|
|
14
|
+
s = Schema
|
|
15
|
+
|
|
16
|
+
# Namespace workaround for SpecialAN inner classes
|
|
17
|
+
T = t
|
|
18
|
+
|
|
19
|
+
# Fun (stupid) problem. The specifications declare ISA02 and ISA04 are
|
|
20
|
+
# required elements, but they only have "meaningful information" when
|
|
21
|
+
# ISA01 and ISA03 qualifiers aren't "00".
|
|
22
|
+
#
|
|
23
|
+
# Without specifications regarding what should be entered in these
|
|
24
|
+
# required elements, our best option is to defer to convention, which
|
|
25
|
+
# seems to be that these elements should have 10 spaces -- which means
|
|
26
|
+
# they're blank. So we can't really make these elements required! Even
|
|
27
|
+
# stupider, these are the only blank elements that should be written
|
|
28
|
+
# out space-padded to the min_length -- every other element should be
|
|
29
|
+
# collapsed to an empty string.
|
|
30
|
+
#
|
|
31
|
+
# So this "Special" class overrides to_x12 for empty values, but it
|
|
32
|
+
# otherwise looks and acts like a normal AN and StringVal
|
|
33
|
+
class SpecialAN < t::AN
|
|
34
|
+
def companion
|
|
35
|
+
SpecialVal
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class SpecialVal < T::StringVal
|
|
39
|
+
class Empty < T::StringVal::Empty
|
|
40
|
+
# @return [String]
|
|
41
|
+
def to_x12
|
|
42
|
+
" " * definition.min_length
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class NonEmpty < T::StringVal::NonEmpty
|
|
47
|
+
def too_short?
|
|
48
|
+
false
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class SeparatorElementVal < Values::SimpleElementVal
|
|
55
|
+
|
|
56
|
+
delegate :to_s, :length, :to => :@value
|
|
57
|
+
|
|
58
|
+
def initialize(value, usage, position)
|
|
59
|
+
@value = value
|
|
60
|
+
super(usage, position)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @return [SeparatorElementVal]
|
|
64
|
+
def copy(changes = {})
|
|
65
|
+
SeparatorElementVal.new \
|
|
66
|
+
changes.fetch(:value, @value),
|
|
67
|
+
changes.fetch(:usage, usage),
|
|
68
|
+
changes.fetch(:position, position)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def valid?
|
|
72
|
+
true
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def empty?
|
|
76
|
+
@value.blank?
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def too_short?
|
|
80
|
+
@value.length < 1
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def too_long?
|
|
84
|
+
@value.length > 1
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def separator?
|
|
88
|
+
true
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# @return [String]
|
|
92
|
+
def to_x12
|
|
93
|
+
@value.to_s
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def inspect
|
|
97
|
+
id = definition.try{|d| ansi.bold("[#{d.id}]") }
|
|
98
|
+
ansi.element("SeparatorElementVal.value#{id}") << "(#{@value || "nil"})"
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class << SeparatorElementVal
|
|
103
|
+
# @group Constructors
|
|
104
|
+
###################################################################
|
|
105
|
+
|
|
106
|
+
# @raise NoMethodError
|
|
107
|
+
def empty(usage, position)
|
|
108
|
+
SeparatorElementVal.new(nil, usage, position)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @return [SeparatorElementVal]
|
|
112
|
+
def value(character, usage, position)
|
|
113
|
+
SeparatorElementVal.new(character, usage, position)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# @return [SeparatorElementVal]
|
|
117
|
+
def parse(character, usage, position)
|
|
118
|
+
SeparatorElementVal.new(character, usage, position)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# @endgroup
|
|
122
|
+
###################################################################
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
I01 = t::ID.new(:I01, "Authorization Information Qualifier", 2, 2,
|
|
126
|
+
s::CodeList.build(
|
|
127
|
+
"00" => "No Authorization Information Present (No Meaningful Information in I02)",
|
|
128
|
+
"01" => "UCS Communications ID",
|
|
129
|
+
"02" => "EDX Communications ID",
|
|
130
|
+
"03" => "Additional Data Identification",
|
|
131
|
+
"04" => "Rail Communication ID",
|
|
132
|
+
"05" => "Deparment of Defense (DoD) Communication Identifier",
|
|
133
|
+
"06" => "United States Federal Government Communication Identifier"))
|
|
134
|
+
|
|
135
|
+
I02 = SpecialAN.new(:I02, "Authorization Information", 10, 10)
|
|
136
|
+
|
|
137
|
+
I03 = t::ID.new(:I03, "Security Information Qualifier", 2, 2,
|
|
138
|
+
s::CodeList.build(
|
|
139
|
+
"00" => "No Security Information (No Meaningful Information in I04)",
|
|
140
|
+
"01" => "Password"))
|
|
141
|
+
|
|
142
|
+
I04 = SpecialAN.new(:I04, "Security Information", 10, 10)
|
|
143
|
+
|
|
144
|
+
I05 = t::ID.new(:I05, "Interchange ID Qualifier", 2, 2,
|
|
145
|
+
s::CodeList.build(
|
|
146
|
+
"01" => "Duns (Dun & Bradstreet)",
|
|
147
|
+
"02" => "SCAC (Standard Carrier Alpha Code)",
|
|
148
|
+
"03" => "FMC (Federal Maritime Commission)",
|
|
149
|
+
"04" => "IATA (International Air Transport Association)",
|
|
150
|
+
"07" => s::CodeList.external("583"),
|
|
151
|
+
"08" => "UCC EDI Communications ID (Comm ID)",
|
|
152
|
+
"09" => "X.121 (CCITT)",
|
|
153
|
+
"10" => s::CodeList.external("350"),
|
|
154
|
+
"11" => "DEA (Drug Enforcement Administration)",
|
|
155
|
+
"12" => "Phone (Telephone Companies)",
|
|
156
|
+
"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)",
|
|
157
|
+
"14" => "Duns Plus Suffix",
|
|
158
|
+
"15" => "Petroleum Accountants Society of Canada Company Code",
|
|
159
|
+
"16" => "Duns Number With 4-Character Suffix",
|
|
160
|
+
"17" => "American Bankers Association (ABA) Transit Routing Number (Including Check Digit, 9 Digit)",
|
|
161
|
+
"18" => s::CodeList.external("420"),
|
|
162
|
+
"19" => s::CodeList.external("421"),
|
|
163
|
+
"20" => s::CodeList.external("121"),
|
|
164
|
+
"21" => s::CodeList.external("422"),
|
|
165
|
+
"22" => s::CodeList.external("423"),
|
|
166
|
+
"23" => s::CodeList.external("424"),
|
|
167
|
+
"24" => s::CodeList.external("425"),
|
|
168
|
+
"25" => s::CodeList.external("426"),
|
|
169
|
+
"26" => s::CodeList.external("296", "300"),
|
|
170
|
+
"27" => "Carrier Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
171
|
+
"28" => "Fiscal Intermediary Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
172
|
+
"29" => "Medicare Provider and Supplier Identification Number as assigned by Health Care Financing Administration (HCFA)",
|
|
173
|
+
"30" => "US Federal Tax Identification Number",
|
|
174
|
+
"31" => "Jurisdiction Identification Number Plus 4 as assigned by the Interational Association of Industrial Accident Boards and Commissions (IAIABC)",
|
|
175
|
+
"32" => "US Federal Employer Identification Number (FEIN)",
|
|
176
|
+
"33" => "National Association of Insurance Commissioners Company Code (NAIC)",
|
|
177
|
+
"34" => "Medicaid Provider and Supplier Identification Number as assigned by individual State Medicaid Agencies in conjunction with Health Care Financing Administration (HCFA)",
|
|
178
|
+
"35" => "Statistics Canada Canadian College Student Information System Institution Codes",
|
|
179
|
+
"36" => s::CodeList.external("300"),
|
|
180
|
+
"37" => s::CodeList.external("573"),
|
|
181
|
+
"38" => s::CodeList.external("862"),
|
|
182
|
+
"AM" => s::CodeList.external("497"),
|
|
183
|
+
"NR" => "National Retail Merchants Association (NRMA) Assigned",
|
|
184
|
+
"SA" => s::CodeList.external("851"),
|
|
185
|
+
"SN" => s::CodeList.external("42"),
|
|
186
|
+
"ZZ" => "Mutually Defined"))
|
|
187
|
+
|
|
188
|
+
I06 = SpecialAN.new(:I06, "Interchange Sender ID", 15, 15)
|
|
189
|
+
I07 = SpecialAN.new(:I07, "Interchange Receiver ID", 15, 15)
|
|
190
|
+
I08 = t::DT.new(:I08, "Interchange Date", 6, 6)
|
|
191
|
+
I09 = t::TM.new(:I09, "Interchange Time", 4, 4)
|
|
192
|
+
|
|
193
|
+
I11 = t::ID.new(:I11, "Interchange Control Version Number", 5, 5,
|
|
194
|
+
s::CodeList.build(
|
|
195
|
+
"00501" => "Standards Approved for Publication by ASC X12 Procedures Review Board through October 2003"))
|
|
196
|
+
|
|
197
|
+
I12 = t::Nn.new(:I12, "Interchange Control Number", 9, 9, 0)
|
|
198
|
+
|
|
199
|
+
I13 = t::ID.new(:I13, "Acknowledgment Requested", 1, 1,
|
|
200
|
+
s::CodeList.build(
|
|
201
|
+
"0" => "No Interchange Acknowledgment Requested",
|
|
202
|
+
"1" => "Interchange Acknowledgment Requested (TA1)"))
|
|
203
|
+
|
|
204
|
+
I14 = t::ID.new(:I14, "Interchange Usage Indicator", 1, 1,
|
|
205
|
+
s::CodeList.build(
|
|
206
|
+
"I" => "Information",
|
|
207
|
+
"P" => "Production Data",
|
|
208
|
+
"T" => "Test Data"))
|
|
209
|
+
|
|
210
|
+
I15 = Class.new(t::SimpleElementDef) do
|
|
211
|
+
def companion
|
|
212
|
+
SeparatorElementVal
|
|
213
|
+
end
|
|
214
|
+
end.new(:I15, "Component Element Separator", 1, 1)
|
|
215
|
+
|
|
216
|
+
I16 = t::Nn.new(:I16, "Number of Included Functional Groups", 1, 5, 0)
|
|
217
|
+
|
|
218
|
+
I17 = t::ID.new(:I17, "Interchange Acknowledgement Code", 1, 1,
|
|
219
|
+
s::CodeList.build(
|
|
220
|
+
"A" => "The Transmitted Interchange Control Structure Header and Trailer Have Been Received and Have No Errors",
|
|
221
|
+
"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.",
|
|
222
|
+
"R" => "The Transmitted Interchange Control Structure Header and Trailer are Rejected Because of Errors"))
|
|
223
|
+
|
|
224
|
+
I18 = t::ID.new(:I18, "Interchange Note Code", 3, 3,
|
|
225
|
+
s::CodeList.build(
|
|
226
|
+
"000" => "No error",
|
|
227
|
+
"001" => "The Interchange Control Number in the Header and Trailer Do Not Match. The Value From the Header is Used in the Acknowledgement",
|
|
228
|
+
"002" => "This Standard as Noted in the Control Standards Identifier is Not Supported",
|
|
229
|
+
"003" => "This Version of the Controls is Not Supported",
|
|
230
|
+
"004" => "The Segment Terminator is Invalid",
|
|
231
|
+
"005" => "Invalid Interchange ID Qualifier for Sender",
|
|
232
|
+
"006" => "Invalid Interchange Sender ID",
|
|
233
|
+
"007" => "Invalid Interchange ID Qualifier for Receiver",
|
|
234
|
+
"008" => "Invalid Interchange Receiver ID",
|
|
235
|
+
"009" => "Unknown Interchange Receiver ID",
|
|
236
|
+
"010" => "Invalid Authorization Information Qualifier Value",
|
|
237
|
+
"011" => "Invalid Authorization Information Value",
|
|
238
|
+
"012" => "Invalid Security Information Qualifier Value",
|
|
239
|
+
"013" => "Invalid Security Information Value",
|
|
240
|
+
"014" => "Invalid Interchange Date Value",
|
|
241
|
+
"015" => "Invalid Interchange Time Value",
|
|
242
|
+
"016" => "Invalid Interchange Standards Identifier Value",
|
|
243
|
+
"017" => "Invalid Interchange Version ID Value",
|
|
244
|
+
"018" => "Invalid Interchange Control Number Value",
|
|
245
|
+
"019" => "Invalid Acknowledgement Requested Value",
|
|
246
|
+
"020" => "Invalid Test Indicator Value",
|
|
247
|
+
"021" => "Invalid Number of Included Groups Value",
|
|
248
|
+
"022" => "Invalid Control Characters",
|
|
249
|
+
"023" => "Improper (Premature) End-of-File (Transmission)",
|
|
250
|
+
"024" => "Invalid Interchange Content (ex Invalid GS Segment)",
|
|
251
|
+
"025" => "Duplicate Interchange Control Numbers",
|
|
252
|
+
"026" => "Invalid Data Structure Separator",
|
|
253
|
+
"027" => "Invalid Component Element Separator",
|
|
254
|
+
"028" => "Invalid Date in Deferred Delivery Request",
|
|
255
|
+
"029" => "Invalid Time in Deferred Delivery Request",
|
|
256
|
+
"030" => "Invalid Delivery Time Code in Deferred Delivery Request",
|
|
257
|
+
"031" => "Invalid Grade of Service"))
|
|
258
|
+
|
|
259
|
+
I65 = Class.new(t::SimpleElementDef) do
|
|
260
|
+
def companion
|
|
261
|
+
SeparatorElementVal
|
|
262
|
+
end
|
|
263
|
+
end.new(:I65, "Repetition Separator", 1, 1)
|
|
264
|
+
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# @see Values::InterchangeDef
|
|
7
|
+
#
|
|
8
|
+
module FiveOhOne
|
|
9
|
+
|
|
10
|
+
s = Schema
|
|
11
|
+
r = FunctionalGroups::FiftyTen::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, isa.element(11).to_s, nil, nil)
|
|
33
|
+
end
|
|
34
|
+
end.new "00501",
|
|
35
|
+
# Interchange header
|
|
36
|
+
[ SegmentDefs::ISA.use(1, r::Mandatory, s::RepeatCount.bounded(1)),
|
|
37
|
+
# SegmentDefs::ISB.use(2, r::Optional, s::RepeatCount.bounded(1)),
|
|
38
|
+
# SegmentDefs::ISE.use(3, r::Optional, s::RepeatCount.bounded(1)),
|
|
39
|
+
SegmentDefs::TA1.use(4, r::Optional, s::RepeatCount.unbounded) ],
|
|
40
|
+
|
|
41
|
+
# Interchange trailer
|
|
42
|
+
[ SegmentDefs::IEA.use(5, r::Mandatory, s::RepeatCount.bounded(1)) ]
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
ISA = s::SegmentDef.build(:ISA, "Interchange Control Header",
|
|
12
|
+
"To start and identify an interchange of zero or more functional groups and interchange-related control segments",
|
|
13
|
+
e::I01.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
14
|
+
e::I02.simple_use(r::Optional, s::RepeatCount.bounded(1)),
|
|
15
|
+
e::I03.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
16
|
+
e::I04.simple_use(r::Optional, s::RepeatCount.bounded(1)),
|
|
17
|
+
e::I05.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
18
|
+
e::I06.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
19
|
+
e::I05.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
20
|
+
e::I07.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
21
|
+
e::I08.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
22
|
+
e::I09.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
23
|
+
e::I65.simple_use(r::Optional, s::RepeatCount.bounded(1)),
|
|
24
|
+
e::I11.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
25
|
+
e::I12.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
26
|
+
e::I13.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
27
|
+
e::I14.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
28
|
+
e::I15.simple_use(r::Optional, s::RepeatCount.bounded(1)))
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
# @todo: Where's the documentation for this?
|
|
12
|
+
ISB = s::SegmentDef.build(:ISB, "Grade of Service Request", "")
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
# @todo: Where's the documentation for this?
|
|
12
|
+
ISE = s::SegmentDef.build(:ISE, "Deferred Delivery Request", "")
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
TA1 = s::SegmentDef.build(:TA1, "Interchange Acknowledgement",
|
|
12
|
+
"",
|
|
13
|
+
e::I12.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
14
|
+
e::I08.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
15
|
+
e::I09.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
16
|
+
e::I17.simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
|
|
17
|
+
e::I18.simple_use(r::Mandatory, s::RepeatCount.bounded(1)))
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
module SegmentDefs
|
|
6
|
+
|
|
7
|
+
s = Schema
|
|
8
|
+
e = ElementDefs
|
|
9
|
+
r = FunctionalGroups::FiftyTen::ElementReqs
|
|
10
|
+
|
|
11
|
+
# @todo: Where's the documentation for this?
|
|
12
|
+
TA3 = s::SegmentDef.build(:TA3, "Interchange Delivery Notice", "")
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
module FiveOhOne
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# @see Schema::SegmentDef.build
|
|
8
|
+
#
|
|
9
|
+
module SegmentDefs
|
|
10
|
+
|
|
11
|
+
s = Schema
|
|
12
|
+
e = ElementDefs
|
|
13
|
+
m = FunctionalGroups::FiftyTen::ElementReqs
|
|
14
|
+
|
|
15
|
+
autoload :ISA,
|
|
16
|
+
"stupidedi/versions/interchanges/00501/segment_defs/ISA"
|
|
17
|
+
|
|
18
|
+
autoload :IEA,
|
|
19
|
+
"stupidedi/versions/interchanges/00501/segment_defs/IEA"
|
|
20
|
+
|
|
21
|
+
# autoload :ISB,
|
|
22
|
+
# "stupidedi/versions/interchanges/00501/segment_defs/ISB"
|
|
23
|
+
|
|
24
|
+
# autoload :ISE,
|
|
25
|
+
# "stupidedi/versions/interchanges/00501/segment_defs/ISE"
|
|
26
|
+
|
|
27
|
+
autoload :TA1,
|
|
28
|
+
"stupidedi/versions/interchanges/00501/segment_defs/TA1"
|
|
29
|
+
|
|
30
|
+
# autoload :TA3,
|
|
31
|
+
# "stupidedi/versions/interchanges/00501/segment_defs/TA3"
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Stupidedi
|
|
2
|
+
module Versions
|
|
3
|
+
module Interchanges
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# @see FunctionalGroups::FiftyTen
|
|
7
|
+
#
|
|
8
|
+
module FiveOhOne
|
|
9
|
+
|
|
10
|
+
autoload :ElementDefs,
|
|
11
|
+
"stupidedi/versions/interchanges/00501/element_defs"
|
|
12
|
+
|
|
13
|
+
autoload :SegmentDefs,
|
|
14
|
+
"stupidedi/versions/interchanges/00501/segment_defs"
|
|
15
|
+
|
|
16
|
+
autoload :InterchangeDef,
|
|
17
|
+
"stupidedi/versions/interchanges/00501/interchange_def"
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|