stupidedi 1.2.5 → 1.2.6

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 (286) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -10
  3. data/lib/ruby/array.rb +223 -185
  4. data/lib/ruby/blank.rb +50 -66
  5. data/lib/ruby/hash.rb +14 -3
  6. data/lib/ruby/instance_exec.rb +20 -17
  7. data/lib/ruby/module.rb +53 -43
  8. data/lib/ruby/object.rb +61 -56
  9. data/lib/ruby/string.rb +70 -65
  10. data/lib/ruby/symbol.rb +22 -19
  11. data/lib/ruby/to_d.rb +71 -70
  12. data/lib/ruby/to_date.rb +18 -24
  13. data/lib/ruby/to_time.rb +16 -18
  14. data/lib/ruby/try.rb +40 -38
  15. data/lib/stupidedi.rb +3 -6
  16. data/lib/stupidedi/builder/builder_dsl.rb +2 -1
  17. data/lib/stupidedi/builder/constraint_table.rb +2 -0
  18. data/lib/stupidedi/builder/generation.rb +2 -0
  19. data/lib/stupidedi/builder/identifier_stack.rb +2 -0
  20. data/lib/stupidedi/builder/instruction.rb +2 -0
  21. data/lib/stupidedi/builder/instruction_table.rb +2 -0
  22. data/lib/stupidedi/builder/navigation.rb +2 -0
  23. data/lib/stupidedi/builder/state_machine.rb +2 -0
  24. data/lib/stupidedi/builder/states/abstract_state.rb +2 -0
  25. data/lib/stupidedi/builder/states/failure_state.rb +2 -0
  26. data/lib/stupidedi/builder/states/functional_group_state.rb +2 -0
  27. data/lib/stupidedi/builder/states/initial_state.rb +2 -0
  28. data/lib/stupidedi/builder/states/interchange_state.rb +2 -0
  29. data/lib/stupidedi/builder/states/loop_state.rb +2 -0
  30. data/lib/stupidedi/builder/states/table_state.rb +2 -0
  31. data/lib/stupidedi/builder/states/transaction_set_state.rb +2 -0
  32. data/lib/stupidedi/builder/states/transmission_state.rb +2 -0
  33. data/lib/stupidedi/builder/tokenization.rb +2 -0
  34. data/lib/stupidedi/color.rb +2 -0
  35. data/lib/stupidedi/config.rb +4 -1
  36. data/lib/stupidedi/config/code_list_config.rb +5 -1
  37. data/lib/stupidedi/config/editor_config.rb +5 -1
  38. data/lib/stupidedi/config/functional_group_config.rb +5 -2
  39. data/lib/stupidedi/config/interchange_config.rb +9 -5
  40. data/lib/stupidedi/config/transaction_set_config.rb +5 -1
  41. data/lib/stupidedi/contrib/003010/guides/PS830.rb +4 -4
  42. data/lib/stupidedi/contrib/004010/guides/SH856.rb +2 -2
  43. data/lib/stupidedi/editor.rb +0 -1
  44. data/lib/stupidedi/editor/00401.rb +2 -0
  45. data/lib/stupidedi/editor/004010.rb +2 -0
  46. data/lib/stupidedi/editor/004010/N4.rb +2 -0
  47. data/lib/stupidedi/editor/00501.rb +2 -0
  48. data/lib/stupidedi/editor/005010.rb +2 -0
  49. data/lib/stupidedi/editor/005010/N4.rb +2 -0
  50. data/lib/stupidedi/editor/X12.rb +2 -0
  51. data/lib/stupidedi/editor/X222-HC837.rb +2 -0
  52. data/lib/stupidedi/editor/abstract_ed.rb +2 -0
  53. data/lib/stupidedi/editor/claim_ack.rb +2 -0
  54. data/lib/stupidedi/editor/implementation_ack.rb +2 -0
  55. data/lib/stupidedi/editor/interchange_ack.rb +2 -0
  56. data/lib/stupidedi/editor/result.rb +2 -0
  57. data/lib/stupidedi/editor/result_set.rb +2 -0
  58. data/lib/stupidedi/editor/transaction_set_ed.rb +2 -0
  59. data/lib/stupidedi/editor/transmission_ed.rb +2 -0
  60. data/lib/stupidedi/either.rb +2 -0
  61. data/lib/stupidedi/guides/004010.rb +2 -0
  62. data/lib/stupidedi/guides/004010/X091A1-HP835.rb +2 -0
  63. data/lib/stupidedi/guides/004010/element_reqs.rb +2 -0
  64. data/lib/stupidedi/guides/004010/guide_builder.rb +2 -0
  65. data/lib/stupidedi/guides/004010/segment_reqs.rb +2 -0
  66. data/lib/stupidedi/guides/005010.rb +2 -0
  67. data/lib/stupidedi/guides/005010/X214-HN277.rb +2 -0
  68. data/lib/stupidedi/guides/005010/X221-HP835.rb +2 -0
  69. data/lib/stupidedi/guides/005010/X221A1-HP835.rb +2 -0
  70. data/lib/stupidedi/guides/005010/X222-HC837P.rb +2 -0
  71. data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +2 -0
  72. data/lib/stupidedi/guides/005010/X231-FA999.rb +2 -0
  73. data/lib/stupidedi/guides/005010/X231A1-FA999.rb +2 -0
  74. data/lib/stupidedi/guides/005010/element_reqs.rb +2 -0
  75. data/lib/stupidedi/guides/005010/guide_builder.rb +2 -0
  76. data/lib/stupidedi/guides/005010/segment_reqs.rb +2 -0
  77. data/lib/stupidedi/inspect.rb +1 -0
  78. data/lib/stupidedi/reader.rb +2 -1
  79. data/lib/stupidedi/reader/input.rb +2 -0
  80. data/lib/stupidedi/reader/input/abstract_input.rb +2 -1
  81. data/lib/stupidedi/reader/input/delegated_input.rb +2 -1
  82. data/lib/stupidedi/reader/input/file_input.rb +2 -0
  83. data/lib/stupidedi/reader/position.rb +2 -0
  84. data/lib/stupidedi/reader/result.rb +2 -0
  85. data/lib/stupidedi/reader/segment_dict.rb +2 -0
  86. data/lib/stupidedi/reader/separators.rb +2 -0
  87. data/lib/stupidedi/reader/stream_reader.rb +2 -0
  88. data/lib/stupidedi/reader/token_reader.rb +2 -0
  89. data/lib/stupidedi/reader/tokens/component_element_tok.rb +2 -0
  90. data/lib/stupidedi/reader/tokens/composite_element_tok.rb +2 -0
  91. data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +2 -1
  92. data/lib/stupidedi/reader/tokens/segment_tok.rb +2 -0
  93. data/lib/stupidedi/reader/tokens/simple_element_tok.rb +2 -0
  94. data/lib/stupidedi/schema/abstract_def.rb +2 -0
  95. data/lib/stupidedi/schema/abstract_use.rb +2 -0
  96. data/lib/stupidedi/schema/code_list.rb +3 -2
  97. data/lib/stupidedi/schema/element_def.rb +2 -0
  98. data/lib/stupidedi/schema/element_req.rb +2 -0
  99. data/lib/stupidedi/schema/element_use.rb +3 -2
  100. data/lib/stupidedi/schema/functional_group_def.rb +2 -0
  101. data/lib/stupidedi/schema/interchange_def.rb +2 -0
  102. data/lib/stupidedi/schema/loop_def.rb +3 -2
  103. data/lib/stupidedi/schema/repeat_count.rb +3 -2
  104. data/lib/stupidedi/schema/segment_def.rb +2 -0
  105. data/lib/stupidedi/schema/segment_req.rb +2 -0
  106. data/lib/stupidedi/schema/segment_use.rb +4 -3
  107. data/lib/stupidedi/schema/syntax_note.rb +2 -0
  108. data/lib/stupidedi/schema/table_def.rb +2 -0
  109. data/lib/stupidedi/schema/transaction_set_def.rb +2 -0
  110. data/lib/stupidedi/sets.rb +1 -0
  111. data/lib/stupidedi/tail_call.rb +1 -0
  112. data/lib/stupidedi/thread_local.rb +1 -0
  113. data/lib/stupidedi/values/abstract_element_val.rb +2 -0
  114. data/lib/stupidedi/values/abstract_val.rb +2 -0
  115. data/lib/stupidedi/values/composite_element_val.rb +4 -3
  116. data/lib/stupidedi/values/functional_group_val.rb +3 -2
  117. data/lib/stupidedi/values/interchange_val.rb +2 -1
  118. data/lib/stupidedi/values/invalid_envelope_val.rb +3 -2
  119. data/lib/stupidedi/values/invalid_segment_val.rb +2 -1
  120. data/lib/stupidedi/values/loop_val.rb +3 -2
  121. data/lib/stupidedi/values/repeated_element_val.rb +3 -2
  122. data/lib/stupidedi/values/segment_val.rb +3 -2
  123. data/lib/stupidedi/values/segment_val_group.rb +2 -0
  124. data/lib/stupidedi/values/simple_element_val.rb +3 -2
  125. data/lib/stupidedi/values/table_val.rb +3 -2
  126. data/lib/stupidedi/values/transaction_set_val.rb +3 -2
  127. data/lib/stupidedi/values/transmission_val.rb +2 -0
  128. data/lib/stupidedi/version.rb +1 -1
  129. data/lib/stupidedi/versions/functional_groups.rb +2 -0
  130. data/lib/stupidedi/versions/functional_groups/002001.rb +2 -0
  131. data/lib/stupidedi/versions/functional_groups/002001/element_defs.rb +2 -1
  132. data/lib/stupidedi/versions/functional_groups/002001/element_reqs.rb +2 -0
  133. data/lib/stupidedi/versions/functional_groups/002001/element_types.rb +2 -0
  134. data/lib/stupidedi/versions/functional_groups/002001/element_types/date_val.rb +3 -7
  135. data/lib/stupidedi/versions/functional_groups/002001/element_types/fixnum_val.rb +5 -12
  136. data/lib/stupidedi/versions/functional_groups/002001/element_types/float_val.rb +6 -15
  137. data/lib/stupidedi/versions/functional_groups/002001/element_types/identifier_val.rb +5 -17
  138. data/lib/stupidedi/versions/functional_groups/002001/element_types/operators.rb +34 -18
  139. data/lib/stupidedi/versions/functional_groups/002001/element_types/string_val.rb +7 -17
  140. data/lib/stupidedi/versions/functional_groups/002001/element_types/time_val.rb +2 -0
  141. data/lib/stupidedi/versions/functional_groups/002001/functional_group_def.rb +2 -0
  142. data/lib/stupidedi/versions/functional_groups/002001/segment_defs.rb +2 -0
  143. data/lib/stupidedi/versions/functional_groups/002001/segment_reqs.rb +2 -0
  144. data/lib/stupidedi/versions/functional_groups/002001/syntax_notes.rb +2 -0
  145. data/lib/stupidedi/versions/functional_groups/002001/transaction_set_defs.rb +2 -0
  146. data/lib/stupidedi/versions/functional_groups/003010.rb +2 -0
  147. data/lib/stupidedi/versions/functional_groups/003010/element_defs.rb +2 -1
  148. data/lib/stupidedi/versions/functional_groups/003010/element_reqs.rb +2 -0
  149. data/lib/stupidedi/versions/functional_groups/003010/element_types.rb +2 -0
  150. data/lib/stupidedi/versions/functional_groups/003010/element_types/date_val.rb +3 -7
  151. data/lib/stupidedi/versions/functional_groups/003010/element_types/fixnum_val.rb +4 -10
  152. data/lib/stupidedi/versions/functional_groups/003010/element_types/float_val.rb +6 -14
  153. data/lib/stupidedi/versions/functional_groups/003010/element_types/identifier_val.rb +5 -17
  154. data/lib/stupidedi/versions/functional_groups/003010/element_types/operators.rb +34 -18
  155. data/lib/stupidedi/versions/functional_groups/003010/element_types/string_val.rb +7 -17
  156. data/lib/stupidedi/versions/functional_groups/003010/element_types/time_val.rb +2 -0
  157. data/lib/stupidedi/versions/functional_groups/003010/functional_group_def.rb +2 -0
  158. data/lib/stupidedi/versions/functional_groups/003010/segment_defs.rb +2 -0
  159. data/lib/stupidedi/versions/functional_groups/003010/segment_reqs.rb +2 -0
  160. data/lib/stupidedi/versions/functional_groups/003010/syntax_notes.rb +2 -0
  161. data/lib/stupidedi/versions/functional_groups/003010/transaction_set_defs.rb +2 -0
  162. data/lib/stupidedi/versions/functional_groups/003040.rb +2 -0
  163. data/lib/stupidedi/versions/functional_groups/003040/element_defs.rb +2 -1
  164. data/lib/stupidedi/versions/functional_groups/003040/element_reqs.rb +2 -0
  165. data/lib/stupidedi/versions/functional_groups/003040/element_types.rb +2 -0
  166. data/lib/stupidedi/versions/functional_groups/003040/element_types/date_val.rb +3 -7
  167. data/lib/stupidedi/versions/functional_groups/003040/element_types/fixnum_val.rb +5 -11
  168. data/lib/stupidedi/versions/functional_groups/003040/element_types/float_val.rb +6 -14
  169. data/lib/stupidedi/versions/functional_groups/003040/element_types/identifier_val.rb +5 -17
  170. data/lib/stupidedi/versions/functional_groups/003040/element_types/operators.rb +34 -18
  171. data/lib/stupidedi/versions/functional_groups/003040/element_types/string_val.rb +7 -17
  172. data/lib/stupidedi/versions/functional_groups/003040/element_types/time_val.rb +2 -0
  173. data/lib/stupidedi/versions/functional_groups/003040/functional_group_def.rb +2 -0
  174. data/lib/stupidedi/versions/functional_groups/003040/segment_defs.rb +2 -0
  175. data/lib/stupidedi/versions/functional_groups/003040/segment_reqs.rb +2 -0
  176. data/lib/stupidedi/versions/functional_groups/003040/syntax_notes.rb +2 -0
  177. data/lib/stupidedi/versions/functional_groups/003040/transaction_set_defs.rb +2 -0
  178. data/lib/stupidedi/versions/functional_groups/003050.rb +2 -0
  179. data/lib/stupidedi/versions/functional_groups/003050/element_defs.rb +2 -1
  180. data/lib/stupidedi/versions/functional_groups/003050/element_reqs.rb +2 -0
  181. data/lib/stupidedi/versions/functional_groups/003050/element_types.rb +2 -0
  182. data/lib/stupidedi/versions/functional_groups/003050/element_types/date_val.rb +3 -7
  183. data/lib/stupidedi/versions/functional_groups/003050/element_types/fixnum_val.rb +5 -11
  184. data/lib/stupidedi/versions/functional_groups/003050/element_types/float_val.rb +6 -14
  185. data/lib/stupidedi/versions/functional_groups/003050/element_types/identifier_val.rb +5 -17
  186. data/lib/stupidedi/versions/functional_groups/003050/element_types/operators.rb +34 -18
  187. data/lib/stupidedi/versions/functional_groups/003050/element_types/string_val.rb +7 -17
  188. data/lib/stupidedi/versions/functional_groups/003050/element_types/time_val.rb +2 -0
  189. data/lib/stupidedi/versions/functional_groups/003050/functional_group_def.rb +2 -0
  190. data/lib/stupidedi/versions/functional_groups/003050/segment_defs.rb +2 -0
  191. data/lib/stupidedi/versions/functional_groups/003050/segment_reqs.rb +2 -0
  192. data/lib/stupidedi/versions/functional_groups/003050/syntax_notes.rb +2 -0
  193. data/lib/stupidedi/versions/functional_groups/003050/transaction_set_defs.rb +2 -0
  194. data/lib/stupidedi/versions/functional_groups/004010.rb +2 -0
  195. data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +2 -1
  196. data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +2 -0
  197. data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +2 -0
  198. data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +3 -7
  199. data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +5 -11
  200. data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +6 -14
  201. data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +5 -17
  202. data/lib/stupidedi/versions/functional_groups/004010/element_types/operators.rb +34 -18
  203. data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +7 -17
  204. data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +2 -0
  205. data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +2 -0
  206. data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +2 -0
  207. data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +2 -0
  208. data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +2 -0
  209. data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs.rb +2 -0
  210. data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs/HP835.rb +2 -0
  211. data/lib/stupidedi/versions/functional_groups/005010.rb +2 -0
  212. data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +2 -0
  213. data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +2 -0
  214. data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +2 -0
  215. data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +3 -7
  216. data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +4 -12
  217. data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +6 -14
  218. data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +5 -17
  219. data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +34 -18
  220. data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +7 -17
  221. data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +2 -0
  222. data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +2 -0
  223. data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +2 -0
  224. data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +2 -0
  225. data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +2 -0
  226. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +2 -0
  227. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +2 -0
  228. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +2 -0
  229. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +2 -0
  230. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +2 -0
  231. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +2 -0
  232. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +2 -0
  233. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +2 -0
  234. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +2 -0
  235. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +2 -0
  236. data/lib/stupidedi/versions/interchanges.rb +2 -0
  237. data/lib/stupidedi/versions/interchanges/00200.rb +2 -0
  238. data/lib/stupidedi/versions/interchanges/00200/element_defs.rb +2 -1
  239. data/lib/stupidedi/versions/interchanges/00200/interchange_def.rb +2 -0
  240. data/lib/stupidedi/versions/interchanges/00200/segment_defs.rb +2 -0
  241. data/lib/stupidedi/versions/interchanges/00300.rb +2 -0
  242. data/lib/stupidedi/versions/interchanges/00300/element_defs.rb +2 -1
  243. data/lib/stupidedi/versions/interchanges/00300/interchange_def.rb +2 -0
  244. data/lib/stupidedi/versions/interchanges/00300/segment_defs.rb +2 -0
  245. data/lib/stupidedi/versions/interchanges/00400.rb +2 -0
  246. data/lib/stupidedi/versions/interchanges/00400/element_defs.rb +2 -1
  247. data/lib/stupidedi/versions/interchanges/00400/interchange_def.rb +2 -0
  248. data/lib/stupidedi/versions/interchanges/00400/segment_defs.rb +2 -0
  249. data/lib/stupidedi/versions/interchanges/00401.rb +2 -0
  250. data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +2 -1
  251. data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +2 -0
  252. data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +2 -0
  253. data/lib/stupidedi/versions/interchanges/00501.rb +2 -0
  254. data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +2 -1
  255. data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +2 -0
  256. data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +2 -0
  257. data/lib/stupidedi/writer/claredi.rb +2 -0
  258. data/lib/stupidedi/writer/default.rb +2 -0
  259. data/lib/stupidedi/zipper.rb +2 -0
  260. data/lib/stupidedi/zipper/abstract_cursor.rb +2 -0
  261. data/lib/stupidedi/zipper/dangling_cursor.rb +2 -0
  262. data/lib/stupidedi/zipper/edited_cursor.rb +2 -0
  263. data/lib/stupidedi/zipper/memoized_cursor.rb +2 -0
  264. data/lib/stupidedi/zipper/path.rb +2 -0
  265. data/lib/stupidedi/zipper/root_cursor.rb +2 -0
  266. data/spec/examples/integration/parsing.example +1 -0
  267. data/spec/examples/ruby/array.example +3 -2
  268. data/spec/examples/ruby/blank.example +15 -14
  269. data/spec/examples/ruby/count.example +1 -0
  270. data/spec/examples/ruby/object.example +2 -2
  271. data/spec/examples/ruby/string.example +1 -0
  272. data/spec/examples/ruby/symbol.example +2 -21
  273. data/spec/examples/ruby/to_d.example +1 -0
  274. data/spec/examples/ruby/try.example +1 -0
  275. data/spec/examples/stupidedi/reader/input/delegated_input.example +1 -0
  276. data/spec/examples/stupidedi/reader/token_reader.example +2 -1
  277. data/spec/examples/stupidedi/versions/005010/element_types/an.example +1 -0
  278. data/spec/examples/stupidedi/versions/005010/element_types/nn.example +1 -0
  279. data/spec/examples/stupidedi/versions/005010/element_types/r.example +1 -0
  280. data/spec/spec_helper.rb +3 -4
  281. data/spec/support/matchers/navigation_matchers.rb +1 -0
  282. data/spec/support/quickcheck.rb +2 -1
  283. data/spec/support/quickcheck/serialized_edi.rb +1 -0
  284. data/spec/support/rcov.rb +3 -3
  285. metadata +3 -4
  286. data/lib/ruby/enumerable.rb +0 -35
@@ -1,6 +1,7 @@
1
1
  require "cantor"
2
2
 
3
3
  module Stupidedi
4
+ using Refinements
4
5
 
5
6
  module Sets
6
7
  end
@@ -1,4 +1,5 @@
1
1
  module Stupidedi
2
+ using Refinements
2
3
 
3
4
  #
4
5
  # This performs tail call optimization on methods declared by the programmer
@@ -1,4 +1,5 @@
1
1
  module Stupidedi
2
+ using Refinements
2
3
 
3
4
  #
4
5
  # @example
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class AbstractElementVal < AbstractVal
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class AbstractVal
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -8,9 +10,8 @@ module Stupidedi
8
10
 
9
11
  # @return [CompositeElementDef]
10
12
 
11
- extend Forwardable
12
13
  def_delegators :@usage, :definition
13
-
14
+
14
15
  # @return [Array<SimpleElementVal>]
15
16
  attr_reader :children
16
17
  alias component_vals children
@@ -19,7 +20,7 @@ module Stupidedi
19
20
  attr_reader :usage
20
21
 
21
22
  def_delegators "@children.head", :position
22
-
23
+
23
24
  def initialize(children, usage)
24
25
  @children, @usage =
25
26
  children, usage
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -14,9 +16,8 @@ module Stupidedi
14
16
  # @return [Array<SegmentVal, TransactionSetVal>]
15
17
  attr_reader :children
16
18
 
17
- extend Forwardable
18
19
  def_delegators "@children.head", :position
19
-
20
+
20
21
  def initialize(definition, children)
21
22
  @definition, @children =
22
23
  definition, children
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -14,7 +16,6 @@ module Stupidedi
14
16
  # @return [Array<SegmentVal, FunctionalGroupVal>]
15
17
  attr_reader :children
16
18
 
17
- extend Forwardable
18
19
  def_delegators "@children.head", :position
19
20
 
20
21
  def initialize(definition, children, separators)
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class InvalidEnvelopeVal < AbstractVal
@@ -6,9 +8,8 @@ module Stupidedi
6
8
  # @return [Array<SegmentVal>]
7
9
  attr_reader :children
8
10
 
9
- extend Forwardable
10
11
  def_delegators "@children.head", :position
11
-
12
+
12
13
  def initialize(children)
13
14
  @children = children
14
15
  end
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class InvalidSegmentVal < AbstractVal
@@ -9,7 +11,6 @@ module Stupidedi
9
11
  # @return [Reader::SegmentTok]
10
12
  attr_reader :segment_tok
11
13
 
12
- extend Forwardable
13
14
  def_delegators :@segment_tok, :position
14
15
 
15
16
  def initialize(reason, segment_tok)
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -14,9 +16,8 @@ module Stupidedi
14
16
  # @return [Array<SegmentVal, LoopVal>]
15
17
  attr_reader :children
16
18
 
17
- extend Forwardable
18
19
  def_delegators "@children.head", :position
19
-
20
+
20
21
  def initialize(definition, children)
21
22
  @definition, @children =
22
23
  definition, children
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -8,7 +10,6 @@ module Stupidedi
8
10
 
9
11
  # @return [CompositeElementDef, SimpleElementDef]
10
12
 
11
- extend Forwardable
12
13
  def_delegators :@usage, :definition
13
14
 
14
15
  # @return [Array<AbstractElementVal>]
@@ -19,7 +20,7 @@ module Stupidedi
19
20
  attr_reader :usage
20
21
 
21
22
  def_delegators :@children, :defined_at?, :length
22
-
23
+
23
24
  def initialize(children, usage)
24
25
  @children, @usage =
25
26
  children, usage
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  # @see X222 B.1.1.3.4 Data Segment
@@ -6,9 +8,8 @@ module Stupidedi
6
8
 
7
9
  # @return [SegmentDef]
8
10
 
9
- extend Forwardable
10
11
  def_delegators :@usage, :definition
11
-
12
+
12
13
  # @return [Array<AbstractElementVal>]
13
14
  attr_reader :children
14
15
 
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  #
@@ -11,9 +13,8 @@ module Stupidedi
11
13
 
12
14
  # @return [SimpleElementDef]
13
15
 
14
- extend Forwardable
15
16
  def_delegators :@usage, :definition
16
-
17
+
17
18
  abstract :valid?
18
19
 
19
20
  # @return [String]
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class TableVal < AbstractVal
@@ -10,9 +12,8 @@ module Stupidedi
10
12
  # @return [Array<SegmentVal, LoopVal>]
11
13
  attr_reader :children
12
14
 
13
- extend Forwardable
14
15
  def_delegators "@children.head", :position
15
-
16
+
16
17
  def initialize(definition, children)
17
18
  @definition, @children =
18
19
  definition, children
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class TransactionSetVal < AbstractVal
@@ -10,9 +12,8 @@ module Stupidedi
10
12
  # @return [Array<TableVal>]
11
13
  attr_reader :children
12
14
 
13
- extend Forwardable
14
15
  def_delegators "@children.head", :position
15
-
16
+
16
17
  def initialize(definition, children)
17
18
  @definition, @children =
18
19
  definition, children
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Values
3
5
 
4
6
  class TransmissionVal < AbstractVal
@@ -1,3 +1,3 @@
1
1
  module Stupidedi
2
- VERSION = "1.2.5"
2
+ VERSION = "1.2.6"
3
3
  end
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  autoload :TwoThousandOne, "stupidedi/versions/functional_groups/002001"
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
 
@@ -1,6 +1,7 @@
1
1
  # encoding: ISO-8859-1
2
-
3
2
  module Stupidedi
3
+ using Refinements
4
+
4
5
  module Versions
5
6
  module FunctionalGroups
6
7
  module TwoThousandOne
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -165,7 +167,6 @@ module Stupidedi
165
167
  include Comparable
166
168
 
167
169
  # (date any* -> any)
168
- extend Forwardable
169
170
  def_delegators :@value, :year, :month, :day, :cwday, :cweek, :downto, :upto,
170
171
  :step, :httpdate, :to_s, :to_i, :strftime, :iso8601, :rfc2822,
171
172
  :rfc3339, :rfc822, :leap?, :julian?, :gregorian?, :mday, :mon,
@@ -204,12 +205,7 @@ module Stupidedi
204
205
  def coerce(other)
205
206
  # me, he = other.coerce(self)
206
207
  # me <OP> he
207
- if other.respond_to?(:to_date)
208
- return DateVal.value(other, usage, position), self
209
- else
210
- raise TypeError,
211
- "cannot coerce DateVal to #{other.class}"
212
- end
208
+ return DateVal.value(other, usage, position), self
213
209
  end
214
210
 
215
211
  def valid?
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -193,10 +195,8 @@ module Stupidedi
193
195
  # @return [BigDecimal]
194
196
  attr_reader :value
195
197
 
196
- extend Forwardable
197
198
  def_delegators :@value, :to_i, :to_d, :to_f, :to_r, :to_c
198
-
199
-
199
+
200
200
  def initialize(value, usage, position)
201
201
  @value = value
202
202
  super(usage, position)
@@ -213,12 +213,7 @@ module Stupidedi
213
213
  def coerce(other)
214
214
  # self', other' = other.coerce(self)
215
215
  # self' * other'
216
- if other.respond_to?(:to_d)
217
- return copy(:value => other.to_d), self
218
- else
219
- raise TypeError,
220
- "cannot coerce FixnumVal to #{other.class}"
221
- end
216
+ return copy(:value => other.to_d), self
222
217
  end
223
218
 
224
219
  def valid?
@@ -295,13 +290,11 @@ module Stupidedi
295
290
  def value(object, usage, position)
296
291
  if object.blank?
297
292
  self::Empty.new(usage, position)
298
- elsif object.respond_to?(:to_d)
293
+ else
299
294
  # The number of fractional digits is implied by usage.precision
300
295
  factor = 10 ** usage.definition.precision
301
296
 
302
297
  self::NonEmpty.new(object.to_d / factor, usage, position)
303
- else
304
- self::Invalid.new(object, usage, position)
305
298
  end
306
299
  rescue ArgumentError
307
300
  self::Invalid.new(object, usage, position)
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -182,9 +184,7 @@ module Stupidedi
182
184
  # @return [BigDecimal]
183
185
  attr_reader :value
184
186
 
185
- extend Forwardable
186
187
  def_delegators :@value, :to_i, :to_d, :to_f, :to_r, :to_c
187
-
188
188
 
189
189
  def initialize(value, usage, position)
190
190
  @value = value
@@ -202,12 +202,7 @@ module Stupidedi
202
202
  def coerce(other)
203
203
  # self', other' = other.coerce(self)
204
204
  # self' * other'
205
- if other.respond_to?(:to_d)
206
- return copy(:value => other.to_d), self
207
- else
208
- raise TypeError,
209
- "cannot coerce FloatVal to #{other.class}"
210
- end
205
+ return copy(:value => other.to_d), self
211
206
  end
212
207
 
213
208
  def valid?
@@ -328,15 +323,11 @@ module Stupidedi
328
323
  def value(object, usage, position)
329
324
  if object.blank?
330
325
  self::Empty.new(usage, position)
331
- elsif object.respond_to?(:to_d)
332
- begin
333
- self::NonEmpty.new(object.to_d, usage, position)
334
- rescue ArgumentError
335
- self::Invalid.new(object, usage, position)
336
- end
337
326
  else
338
- self::Invalid.new(object, usage, position)
327
+ self::NonEmpty.new(object.to_d, usage, position)
339
328
  end
329
+ rescue ArgumentError
330
+ self::Invalid.new(object, usage, position)
340
331
  end
341
332
 
342
333
  # @endgroup
@@ -1,4 +1,6 @@
1
1
  module Stupidedi
2
+ using Refinements
3
+
2
4
  module Versions
3
5
  module FunctionalGroups
4
6
  module TwoThousandOne
@@ -144,7 +146,6 @@ module Stupidedi
144
146
  include Comparable
145
147
 
146
148
  # (string any* -> any)
147
- extend Forwardable
148
149
  def_delegators :value, :to_d, :to_s, :to_f, :to_c, :to_r, :to_sym, :to_str,
149
150
  :hex, :oct, :ord, :sum, :length, :count, :index, :rindex,
150
151
  :lines, :bytes, :chars, :each, :upto, :split, :scan, :unpack,
@@ -180,12 +181,7 @@ module Stupidedi
180
181
  def coerce(other)
181
182
  # me, he = other.coerce(self)
182
183
  # me <OP> he
183
- if other.respond_to?(:to_str)
184
- return copy(:value => other.to_str), self
185
- else
186
- raise TypeError,
187
- "cannot coerce IdentifierVal to #{other.class}"
188
- end
184
+ return copy(:value => other.to_str), self
189
185
  end
190
186
 
191
187
  def value
@@ -234,7 +230,6 @@ module Stupidedi
234
230
  # @return [String]
235
231
  attr_reader :value
236
232
  # (string any* -> any)
237
- extend Forwardable
238
233
  def_delegators :value, :to_d, :to_s, :to_f, :to_c, :to_r, :to_sym, :to_str,
239
234
  :hex, :oct, :ord, :sum, :length, :count, :index, :rindex,
240
235
  :lines, :bytes, :chars, :each, :upto, :split, :scan, :unpack,
@@ -276,12 +271,7 @@ module Stupidedi
276
271
  def coerce(other)
277
272
  # me, he = other.coerce(self)
278
273
  # me <OP> he
279
- if other.respond_to?(:to_str)
280
- return copy(:value => other.to_str), self
281
- else
282
- raise TypeError,
283
- "cannot coerce IdentifierVal to #{other.class}"
284
- end
274
+ return copy(:value => other.to_str), self
285
275
  end
286
276
 
287
277
  def valid?
@@ -347,10 +337,8 @@ module Stupidedi
347
337
  def value(object, usage, position)
348
338
  if object.blank?
349
339
  self::Empty.new(usage, position)
350
- elsif object.respond_to?(:to_s)
351
- self::NonEmpty.new(object.to_s.rstrip, usage, position)
352
340
  else
353
- self::Invalid.new(object, usage, position)
341
+ self::NonEmpty.new(object.to_s.rstrip, usage, position)
354
342
  end
355
343
  rescue
356
344
  self::Invalid.new(object, usage, position)