eddy 0.5.1 → 0.6.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.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +23 -4
  4. data/Gemfile.lock +1 -1
  5. data/README.md +1 -1
  6. data/lib/definitions/elements/generated/1005.hierarchical_structure_code.rb +1 -1
  7. data/lib/definitions/elements/generated/1019.invoice_type_code.rb +1 -1
  8. data/lib/definitions/elements/generated/103.packaging_code.rb +1 -1
  9. data/lib/definitions/elements/generated/1166.contract_type_code.rb +1 -1
  10. data/lib/definitions/elements/generated/1232.purchase_category.rb +1 -1
  11. data/lib/definitions/elements/generated/127.reference_identification.rb +1 -1
  12. data/lib/definitions/elements/generated/128.reference_identification_qualifier.rb +1 -1
  13. data/lib/definitions/elements/generated/1300.service_promotion_allowance_or_charge_code.rb +1 -1
  14. data/lib/definitions/elements/generated/1301.agency_service_promotion_allowance_or_charge_code.rb +1 -1
  15. data/lib/definitions/elements/generated/133.routing_sequence_code.rb +1 -1
  16. data/lib/definitions/elements/generated/166.address_information.rb +1 -1
  17. data/lib/definitions/elements/generated/183.volume.rb +1 -1
  18. data/lib/definitions/elements/generated/187.weight_qualifier.rb +1 -1
  19. data/lib/definitions/elements/generated/19.city_name.rb +1 -1
  20. data/lib/definitions/elements/generated/206.equipment_initial.rb +1 -1
  21. data/lib/definitions/elements/generated/207.equipment_number.rb +1 -1
  22. data/lib/definitions/elements/generated/212.unit_price.rb +1 -1
  23. data/lib/definitions/elements/generated/22.commodity_code.rb +1 -1
  24. data/lib/definitions/elements/generated/23.commodity_code_qualifier.rb +1 -1
  25. data/lib/definitions/elements/generated/234.product_service_id.rb +1 -1
  26. data/lib/definitions/elements/generated/235.product_service_id_qualifier.rb +1 -1
  27. data/lib/definitions/elements/generated/236.price_identifier_code.rb +1 -1
  28. data/lib/definitions/elements/generated/248.allowance_or_charge_indicator.rb +1 -1
  29. data/lib/definitions/elements/generated/26.country_code.rb +1 -1
  30. data/lib/definitions/elements/generated/284.service_level_code.rb +1 -1
  31. data/lib/definitions/elements/generated/324.purchase_order_number.rb +1 -1
  32. data/lib/definitions/elements/generated/326.request_reference_number.rb +1 -1
  33. data/lib/definitions/elements/generated/327.change_order_sequence_number.rb +1 -1
  34. data/lib/definitions/elements/generated/328.release_number.rb +1 -1
  35. data/lib/definitions/elements/generated/330.quantity_ordered.rb +1 -1
  36. data/lib/definitions/elements/generated/347.hash_total.rb +1 -1
  37. data/lib/definitions/elements/generated/349.item_description_type.rb +1 -1
  38. data/lib/definitions/elements/generated/352.description.rb +1 -1
  39. data/lib/definitions/elements/generated/353.transaction_set_purpose_code.rb +1 -1
  40. data/lib/definitions/elements/generated/354.number_of_line_items.rb +1 -1
  41. data/lib/definitions/elements/generated/355.unit_or_basis_for_measurement_code.rb +1 -1
  42. data/lib/definitions/elements/generated/358.quantity_invoiced.rb +1 -1
  43. data/lib/definitions/elements/generated/367.contract_number.rb +1 -1
  44. data/lib/definitions/elements/generated/368.shipment_order_status_code.rb +1 -1
  45. data/lib/definitions/elements/generated/374.date_time_qualifier.rb +1 -1
  46. data/lib/definitions/elements/generated/380.quantity.rb +1 -1
  47. data/lib/definitions/elements/generated/382.number_of_units_shipped.rb +1 -1
  48. data/lib/definitions/elements/generated/387.routing.rb +1 -1
  49. data/lib/definitions/elements/generated/396.shipment_identification.rb +1 -1
  50. data/lib/definitions/elements/generated/559.agency_qualifier_code.rb +1 -1
  51. data/lib/definitions/elements/generated/587.acknowledgment_type.rb +1 -1
  52. data/lib/definitions/elements/generated/610.amount.rb +1 -1
  53. data/lib/definitions/elements/generated/639.basis_of_unit_price_code.rb +1 -1
  54. data/lib/definitions/elements/generated/640.transaction_type_code.rb +1 -1
  55. data/lib/definitions/elements/generated/646.quantity_shipped_to_date.rb +1 -1
  56. data/lib/definitions/elements/generated/648.price_multiplier_qualifier.rb +1 -1
  57. data/lib/definitions/elements/generated/649.multiplier.rb +1 -1
  58. data/lib/definitions/elements/generated/66.identification_code_qualifier.rb +1 -1
  59. data/lib/definitions/elements/generated/662.relationship_code.rb +1 -1
  60. data/lib/definitions/elements/generated/668.line_item_status_code.rb +1 -1
  61. data/lib/definitions/elements/generated/67.identification_code.rb +1 -1
  62. data/lib/definitions/elements/generated/687.class_of_trade_code.rb +1 -1
  63. data/lib/definitions/elements/generated/750.product_process_characteristic_code.rb +1 -1
  64. data/lib/definitions/elements/generated/751.product_description_code.rb +1 -1
  65. data/lib/definitions/elements/generated/76.invoice_number.rb +1 -1
  66. data/lib/definitions/elements/generated/782.monetary_amount.rb +1 -1
  67. data/lib/definitions/elements/generated/786.security_level_code.rb +1 -1
  68. data/lib/definitions/elements/generated/79.lading_description.rb +1 -1
  69. data/lib/definitions/elements/generated/80.lading_quantity.rb +1 -1
  70. data/lib/definitions/elements/generated/87.marks_and_numbers.rb +1 -1
  71. data/lib/definitions/elements/generated/88.marks_and_numbers_qualifier.rb +1 -1
  72. data/lib/definitions/elements/generated/91.transportation_method_type_code.rb +1 -1
  73. data/lib/definitions/elements/generated/92.purchase_order_type_code.rb +1 -1
  74. data/lib/definitions/elements/generated/98.entity_identifier_code.rb +1 -1
  75. data/lib/definitions/elements/manual/116.postal_code.rb +1 -1
  76. data/lib/definitions/elements/manual/124.application_receivers_code.rb +1 -1
  77. data/lib/definitions/elements/manual/140.standard_carrier_alpha_code.rb +1 -1
  78. data/lib/definitions/elements/manual/142.application_senders_code.rb +1 -1
  79. data/lib/definitions/elements/manual/143.transaction_set_identifier_code.rb +1 -1
  80. data/lib/definitions/elements/manual/156.state_or_province_code.rb +1 -1
  81. data/lib/definitions/elements/manual/28.group_control_number.rb +1 -1
  82. data/lib/definitions/elements/manual/329.transactional_set_control_number.rb +2 -2
  83. data/lib/definitions/elements/manual/337.time.rb +1 -1
  84. data/lib/definitions/elements/manual/350.assigned_identification.rb +1 -1
  85. data/lib/definitions/elements/manual/373.date.rb +1 -1
  86. data/lib/definitions/elements/manual/455.responsible_agency_code.rb +1 -1
  87. data/lib/definitions/elements/manual/479.functional_identifier_code.rb +1 -1
  88. data/lib/definitions/elements/manual/480.version_release_industry_identifier_code.rb +1 -1
  89. data/lib/definitions/elements/manual/784.length_of_binary_data.rb +1 -1
  90. data/lib/definitions/elements/manual/785.binary_data.rb +1 -1
  91. data/lib/definitions/elements/manual/96.number_of_included_segments.rb +1 -1
  92. data/lib/definitions/elements/manual/97.number_of_transaction_sets_included.rb +1 -1
  93. data/lib/definitions/elements/manual/hl/628.hierarchical_id_number.rb +1 -1
  94. data/lib/definitions/elements/manual/hl/734.hierarchical_parent_id_number.rb +1 -1
  95. data/lib/definitions/elements/manual/hl/735.hierarchical_level_code.rb +1 -1
  96. data/lib/definitions/elements/manual/hl/736.hierarchical_child_code.rb +1 -1
  97. data/lib/definitions/elements/manual/i/I01.authorization_information_qualifier.rb +1 -1
  98. data/lib/definitions/elements/manual/i/I02.authorization_information.rb +1 -1
  99. data/lib/definitions/elements/manual/i/I03.security_information_qualifier.rb +1 -1
  100. data/lib/definitions/elements/manual/i/I04.security_information.rb +1 -1
  101. data/lib/definitions/elements/manual/i/I05.interchange_id_qualifier.rb +1 -1
  102. data/lib/definitions/elements/manual/i/I06.interchange_sender_id.rb +1 -1
  103. data/lib/definitions/elements/manual/i/I07.interchange_receiver_id.rb +1 -1
  104. data/lib/definitions/elements/manual/i/I08.interchange_date.rb +1 -1
  105. data/lib/definitions/elements/manual/i/I09.interchange_time.rb +1 -1
  106. data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +1 -1
  107. data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +1 -1
  108. data/lib/definitions/elements/manual/i/I12.interchange_control_number.rb +1 -1
  109. data/lib/definitions/elements/manual/i/I13.acknowledgment_requested.rb +1 -1
  110. data/lib/definitions/elements/manual/i/I14.usage_indicator.rb +1 -1
  111. data/lib/definitions/elements/manual/i/I15.component_element_separator.rb +1 -1
  112. data/lib/definitions/elements/manual/i/I16.number_of_included_functional_groups.rb +1 -1
  113. data/lib/definitions/elements/manual/misc/81.weight.rb +1 -1
  114. data/lib/definitions/elements/manual/misc/93.name.rb +1 -1
  115. data/lib/definitions/segments/generated/ack.rb +1 -1
  116. data/lib/definitions/segments/generated/bak.rb +1 -1
  117. data/lib/definitions/segments/generated/beg.rb +1 -1
  118. data/lib/definitions/segments/generated/big.rb +1 -1
  119. data/lib/definitions/segments/generated/bsn.rb +1 -1
  120. data/lib/definitions/segments/generated/cad.rb +1 -1
  121. data/lib/definitions/segments/generated/ctp.rb +1 -1
  122. data/lib/definitions/segments/generated/ctt.rb +1 -1
  123. data/lib/definitions/segments/generated/dtm.rb +1 -1
  124. data/lib/definitions/segments/generated/it1.rb +1 -1
  125. data/lib/definitions/segments/generated/lin.rb +1 -1
  126. data/lib/definitions/segments/generated/man.rb +1 -1
  127. data/lib/definitions/segments/generated/n1.rb +1 -1
  128. data/lib/definitions/segments/generated/n3.rb +1 -1
  129. data/lib/definitions/segments/generated/n4.rb +1 -1
  130. data/lib/definitions/segments/generated/pid.rb +1 -1
  131. data/lib/definitions/segments/generated/po1.rb +1 -1
  132. data/lib/definitions/segments/generated/prf.rb +1 -1
  133. data/lib/definitions/segments/generated/ref.rb +1 -1
  134. data/lib/definitions/segments/generated/sac.rb +1 -1
  135. data/lib/definitions/segments/generated/sln.rb +1 -1
  136. data/lib/definitions/segments/generated/sn1.rb +1 -1
  137. data/lib/definitions/segments/generated/td1.rb +1 -1
  138. data/lib/definitions/segments/generated/td5.rb +1 -1
  139. data/lib/definitions/segments/generated/tds.rb +1 -1
  140. data/lib/definitions/segments/manual/envelopes/ge.rb +1 -1
  141. data/lib/definitions/segments/manual/envelopes/gs.rb +1 -1
  142. data/lib/definitions/segments/manual/envelopes/iea.rb +1 -1
  143. data/lib/definitions/segments/manual/envelopes/isa.rb +1 -1
  144. data/lib/definitions/segments/manual/envelopes/se.rb +1 -1
  145. data/lib/definitions/segments/manual/envelopes/st.rb +1 -1
  146. data/lib/definitions/segments/manual/hl.rb +1 -1
  147. data/lib/definitions/segments/manual/n2.rb +1 -1
  148. data/lib/definitions/transaction_sets/manual/810/810.rb +19 -24
  149. data/lib/definitions/transaction_sets/manual/810/loops/it1.rb +92 -0
  150. data/lib/definitions/transaction_sets/manual/810/loops/n1.rb +72 -0
  151. data/lib/definitions/transaction_sets/manual/810/loops/pid.rb +45 -0
  152. data/lib/definitions/transaction_sets/manual/810/loops/sac.rb +45 -0
  153. data/lib/definitions/transaction_sets/manual/850/850.rb +12 -14
  154. data/lib/definitions/transaction_sets/manual/850/loops/n1.rb +74 -0
  155. data/lib/definitions/transaction_sets/manual/850/loops/po1.rb +51 -0
  156. data/lib/definitions/transaction_sets/manual/855/855.rb +11 -15
  157. data/lib/definitions/transaction_sets/manual/855/loops/ack.rb +45 -0
  158. data/lib/definitions/transaction_sets/manual/855/loops/n1.rb +72 -0
  159. data/lib/definitions/transaction_sets/manual/855/loops/pid.rb +45 -0
  160. data/lib/definitions/transaction_sets/manual/855/loops/po1.rb +80 -0
  161. data/lib/definitions/transaction_sets/manual/856/856.rb +8 -16
  162. data/lib/definitions/transaction_sets/manual/856/loops/hl_item.rb +87 -0
  163. data/lib/definitions/transaction_sets/manual/856/loops/hl_order.rb +59 -0
  164. data/lib/definitions/transaction_sets/manual/856/loops/hl_shipment.rb +159 -0
  165. data/lib/definitions/transaction_sets/manual/856/loops/hl_tare.rb +59 -0
  166. data/lib/definitions/transaction_sets/manual/856/loops/n1.rb +71 -0
  167. data/lib/definitions/transaction_sets/manual/856/loops/sln.rb +44 -0
  168. data/lib/eddy/build/elements/element.rb +5 -5
  169. data/lib/eddy/build/elements/elements.rb +3 -3
  170. data/lib/eddy/build/elements/id.rb +1 -1
  171. data/lib/eddy/build/elements/n.rb +1 -1
  172. data/lib/eddy/build/loop/base.rb +49 -0
  173. data/lib/eddy/build/loop/render.rb +18 -0
  174. data/lib/eddy/build/loop/repeat.rb +86 -0
  175. data/lib/eddy/build/segment_builder.rb +14 -9
  176. data/lib/eddy/build/transaction_set_builder.rb +60 -93
  177. data/lib/eddy/build.rb +3 -1
  178. data/lib/eddy/errors.rb +16 -15
  179. data/lib/eddy/models/element/an.rb +45 -43
  180. data/lib/eddy/models/element/b.rb +45 -43
  181. data/lib/eddy/models/element/base.rb +102 -100
  182. data/lib/eddy/models/element/composite.rb +5 -3
  183. data/lib/eddy/models/element/dt.rb +82 -80
  184. data/lib/eddy/models/element/id.rb +47 -45
  185. data/lib/eddy/models/element/n.rb +79 -77
  186. data/lib/eddy/models/element/r.rb +70 -68
  187. data/lib/eddy/models/element/tm.rb +95 -93
  188. data/lib/eddy/models/element.rb +4 -2
  189. data/lib/eddy/models/functional_group.rb +29 -27
  190. data/lib/eddy/models/interchange.rb +49 -47
  191. data/lib/eddy/models/loop/base.rb +62 -63
  192. data/lib/eddy/models/loop/repeat.rb +43 -31
  193. data/lib/eddy/models/segment.rb +30 -28
  194. data/lib/eddy/models/transaction_set.rb +82 -80
  195. data/lib/eddy/models.rb +1 -1
  196. data/lib/eddy/{schema/element_summary.rb → summary/element.rb} +3 -3
  197. data/lib/eddy/{schema/loop_summary.rb → summary/loop.rb} +53 -16
  198. data/lib/eddy/{schema/segment_summary.rb → summary/segment.rb} +14 -6
  199. data/lib/eddy/{schema/transaction_set_summary.rb → summary/transaction_set.rb} +14 -13
  200. data/lib/eddy/{schema → summary}/validate.rb +1 -1
  201. data/lib/eddy/summary.rb +10 -0
  202. data/lib/eddy/util.rb +5 -5
  203. data/lib/eddy/version.rb +1 -1
  204. data/lib/eddy.rb +1 -7
  205. data/todo.txt +3 -5
  206. metadata +28 -13
  207. data/lib/definitions/transaction_sets/manual/810/loops.rb +0 -109
  208. data/lib/definitions/transaction_sets/manual/850/loops.rb +0 -58
  209. data/lib/definitions/transaction_sets/manual/855/loops.rb +0 -104
  210. data/lib/definitions/transaction_sets/manual/856/loops.rb +0 -155
  211. data/lib/eddy/build/loop_builder.rb +0 -93
@@ -0,0 +1,59 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ module TS856
4
+ module Loops
5
+ module HL_Order
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 1
10
+ # - Components:
11
+ # - HL
12
+ # - PRF
13
+ class Base < Eddy::Models::Loop::Base
14
+ # @param store [Eddy::Data::Store]
15
+ # @return [void]
16
+ def initialize(store)
17
+ @repeat_limit = 1
18
+ super(store, Repeat)
19
+ end
20
+ end
21
+
22
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Order::Base)
23
+ class Repeat < Eddy::Models::Loop::Repeat
24
+ # @param store [Eddy::Data::Store]
25
+ # @return [void]
26
+ def initialize(store)
27
+ @hl = Eddy::Segments::HL.new(store)
28
+ @prf = Eddy::Segments::PRF.new(store)
29
+ super(
30
+ store,
31
+ @hl,
32
+ @prf,
33
+ )
34
+ end
35
+
36
+ # (see Eddy::Segments::HL)
37
+ #
38
+ # @yieldparam [Eddy::Segments::HL]
39
+ # @return [Eddy::Segments::HL]
40
+ def HL()
41
+ yield(@hl) if block_given?
42
+ return @hl
43
+ end
44
+
45
+ # (see Eddy::Segments::PRF)
46
+ #
47
+ # @yieldparam [Eddy::Segments::PRF]
48
+ # @return [Eddy::Segments::PRF]
49
+ def PRF()
50
+ yield(@prf) if block_given?
51
+ return @prf
52
+ end
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,159 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ module TS856
4
+ module Loops
5
+ module HL_Shipment
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 200000
10
+ # - Components:
11
+ # - HL
12
+ # - TD1
13
+ # - TD5
14
+ # - REF
15
+ # - DTM
16
+ # - N1 (loop)
17
+ # - HL_ORDER (loop)
18
+ # - HL_TARE (loop)
19
+ # - HL_ITEM (loop)
20
+ class Base < Eddy::Models::Loop::Base
21
+ # @param store [Eddy::Data::Store]
22
+ # @return [void]
23
+ def initialize(store)
24
+ @repeat_limit = 200000
25
+ super(store, Repeat)
26
+ end
27
+ end
28
+
29
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Shipment::Base)
30
+ class Repeat < Eddy::Models::Loop::Repeat
31
+ # @param store [Eddy::Data::Store]
32
+ # @return [void]
33
+ def initialize(store)
34
+ @hl = Eddy::Segments::HL.new(store)
35
+ @td1 = Eddy::Segments::TD1.new(store)
36
+ @td5 = Eddy::Segments::TD5.new(store)
37
+ @ref = Eddy::Segments::REF.new(store)
38
+ @dtm = Eddy::Segments::DTM.new(store)
39
+ @l_n1 = Eddy::TransactionSets::TS856::Loops::N1::Base.new(store)
40
+ @hl_order = Eddy::TransactionSets::TS856::Loops::HL_Order::Base.new(store)
41
+ @hl_tare = Eddy::TransactionSets::TS856::Loops::HL_Tare::Base.new(store)
42
+ @hl_item = Eddy::TransactionSets::TS856::Loops::HL_Item::Base.new(store)
43
+ super(
44
+ store,
45
+ @hl,
46
+ @td1,
47
+ @td5,
48
+ @ref,
49
+ @dtm,
50
+ @l_n1,
51
+ @hl_order,
52
+ @hl_tare,
53
+ @hl_item,
54
+ )
55
+ end
56
+
57
+ # (see Eddy::Segments::HL)
58
+ #
59
+ # @yieldparam [Eddy::Segments::HL]
60
+ # @return [Eddy::Segments::HL]
61
+ def HL()
62
+ yield(@hl) if block_given?
63
+ return @hl
64
+ end
65
+
66
+ # (see Eddy::Segments::TD1)
67
+ #
68
+ # @yieldparam [Eddy::Segments::TD1]
69
+ # @return [Eddy::Segments::TD1]
70
+ def TD1()
71
+ yield(@td1) if block_given?
72
+ return @td1
73
+ end
74
+
75
+ # (see Eddy::Segments::TD5)
76
+ #
77
+ # @yieldparam [Eddy::Segments::TD5]
78
+ # @return [Eddy::Segments::TD5]
79
+ def TD5()
80
+ yield(@td5) if block_given?
81
+ return @td5
82
+ end
83
+
84
+ # (see Eddy::Segments::REF)
85
+ #
86
+ # @yieldparam [Eddy::Segments::REF]
87
+ # @return [Eddy::Segments::REF]
88
+ def REF()
89
+ yield(@ref) if block_given?
90
+ return @ref
91
+ end
92
+
93
+ # (see Eddy::Segments::DTM)
94
+ #
95
+ # @yieldparam [Eddy::Segments::DTM]
96
+ # @return [Eddy::Segments::DTM]
97
+ def DTM()
98
+ yield(@dtm) if block_given?
99
+ return @dtm
100
+ end
101
+
102
+ # (see Eddy::TransactionSets::TS856::Loops::N1::Base)
103
+ #
104
+ # @yieldparam [Eddy::TransactionSets::TS856::Loops::N1::Repeat]
105
+ # @return [void]
106
+ def L_N1(&block)
107
+ if block_given?
108
+ @l_n1.repeat(&block)
109
+ else
110
+ raise Eddy::Errors::Error, "No block given in loop iteration"
111
+ end
112
+ return nil
113
+ end
114
+
115
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Order::Base)
116
+ #
117
+ # @yieldparam [Eddy::TransactionSets::TS856::Loops::HL_Order::Repeat]
118
+ # @return [void]
119
+ def HL_ORDER(&block)
120
+ if block_given?
121
+ @hl_order.repeat(&block)
122
+ else
123
+ raise Eddy::Errors::Error, "No block given in loop iteration"
124
+ end
125
+ return nil
126
+ end
127
+
128
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Tare::Base)
129
+ #
130
+ # @yieldparam [Eddy::TransactionSets::TS856::Loops::HL_Tare::Repeat]
131
+ # @return [void]
132
+ def HL_TARE(&block)
133
+ if block_given?
134
+ @hl_tare.repeat(&block)
135
+ else
136
+ raise Eddy::Errors::Error, "No block given in loop iteration"
137
+ end
138
+ return nil
139
+ end
140
+
141
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Item::Base)
142
+ #
143
+ # @yieldparam [Eddy::TransactionSets::TS856::Loops::HL_Item::Repeat]
144
+ # @return [Eddy::TransactionSets::TS856::Loops::HL_Item::Repeat]
145
+ def HL_ITEM(&block)
146
+ if block_given?
147
+ @hl_item.repeat(&block)
148
+ else
149
+ raise Eddy::Errors::Error, "No block given in loop iteration"
150
+ end
151
+ return nil
152
+ end
153
+ end
154
+
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,59 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ module TS856
4
+ module Loops
5
+ module HL_Tare
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 1
10
+ # - Components:
11
+ # - HL
12
+ # - MAN
13
+ class Base < Eddy::Models::Loop::Base
14
+ # @param store [Eddy::Data::Store]
15
+ # @return [void]
16
+ def initialize(store)
17
+ @repeat_limit = 1
18
+ super(store, Repeat)
19
+ end
20
+ end
21
+
22
+ # (see Eddy::TransactionSets::TS856::Loops::HL_Tare::Base)
23
+ class Repeat < Eddy::Models::Loop::Repeat
24
+ # @param store [Eddy::Data::Store]
25
+ # @return [void]
26
+ def initialize(store)
27
+ @hl = Eddy::Segments::HL.new(store)
28
+ @man = Eddy::Segments::MAN.new(store)
29
+ super(
30
+ store,
31
+ @hl,
32
+ @man,
33
+ )
34
+ end
35
+
36
+ # (see Eddy::Segments::HL)
37
+ #
38
+ # @yieldparam [Eddy::Segments::HL]
39
+ # @return [Eddy::Segments::HL]
40
+ def HL()
41
+ yield(@hl) if block_given?
42
+ return @hl
43
+ end
44
+
45
+ # (see Eddy::Segments::MAN)
46
+ #
47
+ # @yieldparam [Eddy::Segments::MAN]
48
+ # @return [Eddy::Segments::MAN]
49
+ def MAN()
50
+ yield(@man) if block_given?
51
+ return @man
52
+ end
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,71 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ module TS856
4
+ module Loops
5
+ module N1
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 200
10
+ # - Components:
11
+ # - N1
12
+ # - N3
13
+ # - N4
14
+ class Base < Eddy::Models::Loop::Base
15
+ # @param store [Eddy::Data::Store]
16
+ # @return [void]
17
+ def initialize(store)
18
+ @repeat_limit = 200
19
+ super(store, Repeat)
20
+ end
21
+ end
22
+
23
+ # (see Eddy::TransactionSets::TS856::Loops::N1::Base)
24
+ class Repeat < Eddy::Models::Loop::Repeat
25
+ # @param store [Eddy::Data::Store]
26
+ # @return [void]
27
+ def initialize(store)
28
+ @n1 = Eddy::Segments::N1.new(store)
29
+ @n3 = Eddy::Segments::N3.new(store)
30
+ @n4 = Eddy::Segments::N4.new(store)
31
+ super(
32
+ store,
33
+ @n1,
34
+ @n3,
35
+ @n4,
36
+ )
37
+ end
38
+
39
+ # (see Eddy::Segments::N1)
40
+ #
41
+ # @yieldparam [Eddy::Segments::N1]
42
+ # @return [Eddy::Segments::N1]
43
+ def N1()
44
+ yield(@n1) if block_given?
45
+ return @n1
46
+ end
47
+
48
+ # (see Eddy::Segments::N3)
49
+ #
50
+ # @yieldparam [Eddy::Segments::N3]
51
+ # @return [Eddy::Segments::N3]
52
+ def N3()
53
+ yield(@n3) if block_given?
54
+ return @n3
55
+ end
56
+
57
+ # (see Eddy::Segments::N4)
58
+ #
59
+ # @yieldparam [Eddy::Segments::N4]
60
+ # @return [Eddy::Segments::N4]
61
+ def N4()
62
+ yield(@n4) if block_given?
63
+ return @n4
64
+ end
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,44 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ module TS856
4
+ module Loops
5
+ module SLN
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 1000
10
+ # - Components:
11
+ # - SLN
12
+ class Base < Eddy::Models::Loop::Base
13
+ # @param store [Eddy::Data::Store]
14
+ # @return [void]
15
+ def initialize(store)
16
+ @repeat_limit = 1000
17
+ super(store, Repeat)
18
+ end
19
+ end
20
+
21
+ # (see Eddy::TransactionSets::TS856::Loops::SLN::Base)
22
+ class Repeat < Eddy::Models::Loop::Repeat
23
+ # @param store [Eddy::Data::Store]
24
+ # @return [void]
25
+ def initialize(store)
26
+ @sln = Eddy::Segments::SLN.new(store)
27
+ super(store, @sln)
28
+ end
29
+
30
+ # (see Eddy::Segments::SLN)
31
+ #
32
+ # @yieldparam [Eddy::Segments::SLN]
33
+ # @return [Eddy::Segments::SLN]
34
+ def SLN()
35
+ yield(@sln) if block_given?
36
+ return @sln
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -4,7 +4,7 @@ module Eddy
4
4
  module Build
5
5
  module Elements
6
6
 
7
- # @param el [Eddy::Schema::ElementSummary]
7
+ # @param el [Eddy::Summary::Element]
8
8
  # @return [Array<Hash>]
9
9
  def self.element_params(el)
10
10
  return [
@@ -14,7 +14,7 @@ module Eddy
14
14
  ]
15
15
  end
16
16
 
17
- # @param el [Eddy::Schema::ElementSummary]
17
+ # @param el [Eddy::Summary::Element]
18
18
  # @return [String]
19
19
  def self.default_constructor(el)
20
20
  return Ginny::Func.create({
@@ -35,7 +35,7 @@ module Eddy
35
35
  }).render()
36
36
  end
37
37
 
38
- # @param el [Eddy::Schema::ElementSummary]
38
+ # @param el [Eddy::Summary::Element]
39
39
  # @param body [String]
40
40
  # @return [Ginny::Class]
41
41
  def self.ginny_class(el, body)
@@ -43,13 +43,13 @@ module Eddy
43
43
  classify_name: false,
44
44
  name: Eddy::Util.normalize_id(el.id),
45
45
  description: el.doc_comment,
46
- parent: "Eddy::Element::#{el.edi_type}",
46
+ parent: "Eddy::Models::Element::#{el.edi_type}",
47
47
  modules: ["Eddy", "Elements"],
48
48
  body: body,
49
49
  })
50
50
  end
51
51
 
52
- # @param el [Eddy::Schema::ElementSummary]
52
+ # @param el [Eddy::Summary::Element]
53
53
  # @param test [Boolean] (false) When true, returns output as a string instead of writing to a file.
54
54
  # @return [void]
55
55
  def self.element(el, test: false)
@@ -9,7 +9,7 @@ module Eddy
9
9
 
10
10
  # Generate `Eddy::Element` classes for all data elements defined in `data/004010/elements.tsv`
11
11
  #
12
- # @param elements [Array<Eddy::Schema::ElementSummary>]
12
+ # @param elements [Array<Eddy::Summary::Element>]
13
13
  # @return [void]
14
14
  def self.generate_elements(elements = self.generate_element_data())
15
15
  existing = (Eddy::Util.list_element_classes() + Eddy::Util.list_built_elements()).uniq()
@@ -31,12 +31,12 @@ module Eddy
31
31
 
32
32
  # Generate usable data from `data/004010/elements.tsv`.
33
33
  #
34
- # @return [Array<Eddy::Schema::ElementSummary>]
34
+ # @return [Array<Eddy::Summary::Element>]
35
35
  def self.generate_element_data()
36
36
  data = Eddy::Util.raw_element_data()
37
37
  elements = data.map do |el|
38
38
  next if el[:type].nil? || el[:description].nil?
39
- Eddy::Schema::ElementSummary.create(el)
39
+ Eddy::Summary::Element.create(el)
40
40
  end
41
41
  return elements.compact
42
42
  end
@@ -4,7 +4,7 @@ module Eddy
4
4
  module Build
5
5
  module Elements
6
6
 
7
- # @param el [Eddy::Schema::ElementSummary]
7
+ # @param el [Eddy::Summary::Element]
8
8
  # @param test [Boolean] (false) When true, returns output as a string instead of writing to a file.
9
9
  # @return [void]
10
10
  def self.id(el, test: false)
@@ -4,7 +4,7 @@ module Eddy
4
4
  module Build
5
5
  module Elements
6
6
 
7
- # @param el [Eddy::Schema::ElementSummary]
7
+ # @param el [Eddy::Summary::Element]
8
8
  # @param test [Boolean] (false) When true, returns output as a string instead of writing to a file.
9
9
  # @return [void]
10
10
  def self.n(el, test: false)
@@ -0,0 +1,49 @@
1
+ require "ginny"
2
+
3
+ module Eddy
4
+ module Build
5
+ module Loop
6
+ # Generate Ruby code from JSON/YAML EDI definitions.
7
+ class Base
8
+
9
+ # @return [Eddy::Summary::Loop]
10
+ attr_accessor :summary
11
+ # Namespace the Loop is within.
12
+ # @return [String]
13
+ attr_accessor :t_set_id
14
+
15
+ # @param summary [Eddy::Summary::Loop]
16
+ # @param t_set_id [String]
17
+ # @return [void]
18
+ def initialize(summary, t_set_id)
19
+ self.summary = summary
20
+ self.t_set_id = t_set_id
21
+ end
22
+
23
+ # @return [String]
24
+ def render()
25
+ return self.ginny_class.render()
26
+ end
27
+
28
+ # @return [Ginny::Class]
29
+ def ginny_class()
30
+ return Ginny::Class.create({
31
+ classify_name: false,
32
+ parent: "Eddy::Models::Loop::Base",
33
+ name: "Base",
34
+ description: summary.doc_comment(header: true),
35
+ body: <<~STR.strip,
36
+ # @param store [Eddy::Data::Store]
37
+ # @return [void]
38
+ def initialize(store)
39
+ @repeat_limit = #{self.summary.repeat_limit}
40
+ super(store, Repeat)
41
+ end
42
+ STR
43
+ })
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,18 @@
1
+ require "ginny"
2
+
3
+ module Eddy
4
+ module Build
5
+ module Loop
6
+ # Generate Ruby code for an EDI loop.
7
+ #
8
+ # @param summary [Eddy::Summary::Loop]
9
+ # @param t_set_id [String]
10
+ # @return [String]
11
+ def self.render(summary, t_set_id)
12
+ base = Eddy::Build::Loop::Base.new(summary, t_set_id).render()
13
+ repeat = Eddy::Build::Loop::Repeat.new(summary, t_set_id).render()
14
+ return Ginny.mod(("\n" + base + "\n\n" + repeat + "\n"), "Eddy", "TransactionSets", t_set_id, "Loops", summary.id)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,86 @@
1
+ require "ginny"
2
+
3
+ module Eddy
4
+ module Build
5
+ module Loop
6
+ # Generate Ruby code from JSON/YAML EDI definitions.
7
+ class Repeat
8
+
9
+ # @return [Eddy::Summary::Loop]
10
+ attr_accessor :summary
11
+ # Namespace the Loop is within.
12
+ # @return [String]
13
+ attr_accessor :t_set_id
14
+
15
+ # @param summary [Eddy::Summary::Loop]
16
+ # @param t_set_id [String]
17
+ # @return [void]
18
+ def initialize(summary, t_set_id)
19
+ self.summary = summary
20
+ self.t_set_id = t_set_id
21
+ end
22
+
23
+ # @return [String]
24
+ def render()
25
+ return self.ginny_class.render()
26
+ end
27
+
28
+ # @return [Ginny::Class]
29
+ def ginny_class()
30
+ return Ginny::Class.create({
31
+ classify_name: false,
32
+ parent: "Eddy::Models::Loop::Repeat",
33
+ name: "Repeat",
34
+ description: "(see Eddy::TransactionSets::#{t_set_id}::Loops::#{self.summary.id}::Base)",
35
+ body: <<~STR.strip,
36
+ # @param store [Eddy::Data::Store]
37
+ # @return [void]
38
+ def initialize(store)
39
+ #{self.declarations()}
40
+ super(
41
+ store,
42
+ #{self.super_call()}
43
+ )
44
+ end
45
+
46
+ #{self.accessors()}
47
+ STR
48
+ })
49
+ end
50
+
51
+ # @return [String]
52
+ def super_call()
53
+ return self.summary.components.map do |comp|
54
+ case comp
55
+ when Eddy::Summary::Segment then " @#{comp.id.downcase},"
56
+ when Eddy::Summary::Loop then " @#{comp.var_name},"
57
+ end
58
+ end.compact.join("\n ")
59
+ end
60
+
61
+ # @return [String]
62
+ def declarations()
63
+ self.summary.components.map do |comp|
64
+ case comp
65
+ when Eddy::Summary::Segment then " @#{comp.id.downcase} = Eddy::Segments::#{comp.id.upcase}.new(store)"
66
+ when Eddy::Summary::Loop then " @#{comp.var_name} = Eddy::TransactionSets::#{t_set_id}::Loops::#{comp.id.upcase}::Base.new(store)"
67
+ end
68
+ end.compact.join("\n")
69
+ end
70
+
71
+ # @return [String]
72
+ def accessors()
73
+ defs = self.summary.components.map do |comp|
74
+ if comp.is_a?(Eddy::Summary::Loop) && comp.repeat_limit > 1
75
+ Eddy::Build::TransactionSetBuilder.loop_accessor(comp, self.t_set_id)
76
+ else
77
+ Eddy::Build::TransactionSetBuilder.segment_accessor(comp.id)
78
+ end
79
+ end
80
+ return defs.join("\n\n")
81
+ end
82
+
83
+ end
84
+ end
85
+ end
86
+ end