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.
- checksums.yaml +4 -4
- data/README.md +3 -10
- data/lib/ruby/array.rb +223 -185
- data/lib/ruby/blank.rb +50 -66
- data/lib/ruby/hash.rb +14 -3
- data/lib/ruby/instance_exec.rb +20 -17
- data/lib/ruby/module.rb +53 -43
- data/lib/ruby/object.rb +61 -56
- data/lib/ruby/string.rb +70 -65
- data/lib/ruby/symbol.rb +22 -19
- data/lib/ruby/to_d.rb +71 -70
- data/lib/ruby/to_date.rb +18 -24
- data/lib/ruby/to_time.rb +16 -18
- data/lib/ruby/try.rb +40 -38
- data/lib/stupidedi.rb +3 -6
- data/lib/stupidedi/builder/builder_dsl.rb +2 -1
- data/lib/stupidedi/builder/constraint_table.rb +2 -0
- data/lib/stupidedi/builder/generation.rb +2 -0
- data/lib/stupidedi/builder/identifier_stack.rb +2 -0
- data/lib/stupidedi/builder/instruction.rb +2 -0
- data/lib/stupidedi/builder/instruction_table.rb +2 -0
- data/lib/stupidedi/builder/navigation.rb +2 -0
- data/lib/stupidedi/builder/state_machine.rb +2 -0
- data/lib/stupidedi/builder/states/abstract_state.rb +2 -0
- data/lib/stupidedi/builder/states/failure_state.rb +2 -0
- data/lib/stupidedi/builder/states/functional_group_state.rb +2 -0
- data/lib/stupidedi/builder/states/initial_state.rb +2 -0
- data/lib/stupidedi/builder/states/interchange_state.rb +2 -0
- data/lib/stupidedi/builder/states/loop_state.rb +2 -0
- data/lib/stupidedi/builder/states/table_state.rb +2 -0
- data/lib/stupidedi/builder/states/transaction_set_state.rb +2 -0
- data/lib/stupidedi/builder/states/transmission_state.rb +2 -0
- data/lib/stupidedi/builder/tokenization.rb +2 -0
- data/lib/stupidedi/color.rb +2 -0
- data/lib/stupidedi/config.rb +4 -1
- data/lib/stupidedi/config/code_list_config.rb +5 -1
- data/lib/stupidedi/config/editor_config.rb +5 -1
- data/lib/stupidedi/config/functional_group_config.rb +5 -2
- data/lib/stupidedi/config/interchange_config.rb +9 -5
- data/lib/stupidedi/config/transaction_set_config.rb +5 -1
- data/lib/stupidedi/contrib/003010/guides/PS830.rb +4 -4
- data/lib/stupidedi/contrib/004010/guides/SH856.rb +2 -2
- data/lib/stupidedi/editor.rb +0 -1
- data/lib/stupidedi/editor/00401.rb +2 -0
- data/lib/stupidedi/editor/004010.rb +2 -0
- data/lib/stupidedi/editor/004010/N4.rb +2 -0
- data/lib/stupidedi/editor/00501.rb +2 -0
- data/lib/stupidedi/editor/005010.rb +2 -0
- data/lib/stupidedi/editor/005010/N4.rb +2 -0
- data/lib/stupidedi/editor/X12.rb +2 -0
- data/lib/stupidedi/editor/X222-HC837.rb +2 -0
- data/lib/stupidedi/editor/abstract_ed.rb +2 -0
- data/lib/stupidedi/editor/claim_ack.rb +2 -0
- data/lib/stupidedi/editor/implementation_ack.rb +2 -0
- data/lib/stupidedi/editor/interchange_ack.rb +2 -0
- data/lib/stupidedi/editor/result.rb +2 -0
- data/lib/stupidedi/editor/result_set.rb +2 -0
- data/lib/stupidedi/editor/transaction_set_ed.rb +2 -0
- data/lib/stupidedi/editor/transmission_ed.rb +2 -0
- data/lib/stupidedi/either.rb +2 -0
- data/lib/stupidedi/guides/004010.rb +2 -0
- data/lib/stupidedi/guides/004010/X091A1-HP835.rb +2 -0
- data/lib/stupidedi/guides/004010/element_reqs.rb +2 -0
- data/lib/stupidedi/guides/004010/guide_builder.rb +2 -0
- data/lib/stupidedi/guides/004010/segment_reqs.rb +2 -0
- data/lib/stupidedi/guides/005010.rb +2 -0
- data/lib/stupidedi/guides/005010/X214-HN277.rb +2 -0
- data/lib/stupidedi/guides/005010/X221-HP835.rb +2 -0
- data/lib/stupidedi/guides/005010/X221A1-HP835.rb +2 -0
- data/lib/stupidedi/guides/005010/X222-HC837P.rb +2 -0
- data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +2 -0
- data/lib/stupidedi/guides/005010/X231-FA999.rb +2 -0
- data/lib/stupidedi/guides/005010/X231A1-FA999.rb +2 -0
- data/lib/stupidedi/guides/005010/element_reqs.rb +2 -0
- data/lib/stupidedi/guides/005010/guide_builder.rb +2 -0
- data/lib/stupidedi/guides/005010/segment_reqs.rb +2 -0
- data/lib/stupidedi/inspect.rb +1 -0
- data/lib/stupidedi/reader.rb +2 -1
- data/lib/stupidedi/reader/input.rb +2 -0
- data/lib/stupidedi/reader/input/abstract_input.rb +2 -1
- data/lib/stupidedi/reader/input/delegated_input.rb +2 -1
- data/lib/stupidedi/reader/input/file_input.rb +2 -0
- data/lib/stupidedi/reader/position.rb +2 -0
- data/lib/stupidedi/reader/result.rb +2 -0
- data/lib/stupidedi/reader/segment_dict.rb +2 -0
- data/lib/stupidedi/reader/separators.rb +2 -0
- data/lib/stupidedi/reader/stream_reader.rb +2 -0
- data/lib/stupidedi/reader/token_reader.rb +2 -0
- data/lib/stupidedi/reader/tokens/component_element_tok.rb +2 -0
- data/lib/stupidedi/reader/tokens/composite_element_tok.rb +2 -0
- data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +2 -1
- data/lib/stupidedi/reader/tokens/segment_tok.rb +2 -0
- data/lib/stupidedi/reader/tokens/simple_element_tok.rb +2 -0
- data/lib/stupidedi/schema/abstract_def.rb +2 -0
- data/lib/stupidedi/schema/abstract_use.rb +2 -0
- data/lib/stupidedi/schema/code_list.rb +3 -2
- data/lib/stupidedi/schema/element_def.rb +2 -0
- data/lib/stupidedi/schema/element_req.rb +2 -0
- data/lib/stupidedi/schema/element_use.rb +3 -2
- data/lib/stupidedi/schema/functional_group_def.rb +2 -0
- data/lib/stupidedi/schema/interchange_def.rb +2 -0
- data/lib/stupidedi/schema/loop_def.rb +3 -2
- data/lib/stupidedi/schema/repeat_count.rb +3 -2
- data/lib/stupidedi/schema/segment_def.rb +2 -0
- data/lib/stupidedi/schema/segment_req.rb +2 -0
- data/lib/stupidedi/schema/segment_use.rb +4 -3
- data/lib/stupidedi/schema/syntax_note.rb +2 -0
- data/lib/stupidedi/schema/table_def.rb +2 -0
- data/lib/stupidedi/schema/transaction_set_def.rb +2 -0
- data/lib/stupidedi/sets.rb +1 -0
- data/lib/stupidedi/tail_call.rb +1 -0
- data/lib/stupidedi/thread_local.rb +1 -0
- data/lib/stupidedi/values/abstract_element_val.rb +2 -0
- data/lib/stupidedi/values/abstract_val.rb +2 -0
- data/lib/stupidedi/values/composite_element_val.rb +4 -3
- data/lib/stupidedi/values/functional_group_val.rb +3 -2
- data/lib/stupidedi/values/interchange_val.rb +2 -1
- data/lib/stupidedi/values/invalid_envelope_val.rb +3 -2
- data/lib/stupidedi/values/invalid_segment_val.rb +2 -1
- data/lib/stupidedi/values/loop_val.rb +3 -2
- data/lib/stupidedi/values/repeated_element_val.rb +3 -2
- data/lib/stupidedi/values/segment_val.rb +3 -2
- data/lib/stupidedi/values/segment_val_group.rb +2 -0
- data/lib/stupidedi/values/simple_element_val.rb +3 -2
- data/lib/stupidedi/values/table_val.rb +3 -2
- data/lib/stupidedi/values/transaction_set_val.rb +3 -2
- data/lib/stupidedi/values/transmission_val.rb +2 -0
- data/lib/stupidedi/version.rb +1 -1
- data/lib/stupidedi/versions/functional_groups.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_defs.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/002001/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/002001/element_types/fixnum_val.rb +5 -12
- data/lib/stupidedi/versions/functional_groups/002001/element_types/float_val.rb +6 -15
- data/lib/stupidedi/versions/functional_groups/002001/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/002001/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/002001/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/002001/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/002001/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_defs.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/003010/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/003010/element_types/fixnum_val.rb +4 -10
- data/lib/stupidedi/versions/functional_groups/003010/element_types/float_val.rb +6 -14
- data/lib/stupidedi/versions/functional_groups/003010/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/003010/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/003010/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/003010/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003010/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_defs.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/003040/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/003040/element_types/fixnum_val.rb +5 -11
- data/lib/stupidedi/versions/functional_groups/003040/element_types/float_val.rb +6 -14
- data/lib/stupidedi/versions/functional_groups/003040/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/003040/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/003040/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/003040/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003040/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_defs.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/003050/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/003050/element_types/fixnum_val.rb +5 -11
- data/lib/stupidedi/versions/functional_groups/003050/element_types/float_val.rb +6 -14
- data/lib/stupidedi/versions/functional_groups/003050/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/003050/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/003050/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/003050/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/003050/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +5 -11
- data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +6 -14
- data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/004010/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs/HP835.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +3 -7
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +4 -12
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +6 -14
- data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +5 -17
- data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +34 -18
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +7 -17
- data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +2 -0
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +2 -0
- data/lib/stupidedi/versions/interchanges.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00200.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00200/element_defs.rb +2 -1
- data/lib/stupidedi/versions/interchanges/00200/interchange_def.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00300.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00300/element_defs.rb +2 -1
- data/lib/stupidedi/versions/interchanges/00300/interchange_def.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00400.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00400/element_defs.rb +2 -1
- data/lib/stupidedi/versions/interchanges/00400/interchange_def.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00401.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +2 -1
- data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00501.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +2 -1
- data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +2 -0
- data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +2 -0
- data/lib/stupidedi/writer/claredi.rb +2 -0
- data/lib/stupidedi/writer/default.rb +2 -0
- data/lib/stupidedi/zipper.rb +2 -0
- data/lib/stupidedi/zipper/abstract_cursor.rb +2 -0
- data/lib/stupidedi/zipper/dangling_cursor.rb +2 -0
- data/lib/stupidedi/zipper/edited_cursor.rb +2 -0
- data/lib/stupidedi/zipper/memoized_cursor.rb +2 -0
- data/lib/stupidedi/zipper/path.rb +2 -0
- data/lib/stupidedi/zipper/root_cursor.rb +2 -0
- data/spec/examples/integration/parsing.example +1 -0
- data/spec/examples/ruby/array.example +3 -2
- data/spec/examples/ruby/blank.example +15 -14
- data/spec/examples/ruby/count.example +1 -0
- data/spec/examples/ruby/object.example +2 -2
- data/spec/examples/ruby/string.example +1 -0
- data/spec/examples/ruby/symbol.example +2 -21
- data/spec/examples/ruby/to_d.example +1 -0
- data/spec/examples/ruby/try.example +1 -0
- data/spec/examples/stupidedi/reader/input/delegated_input.example +1 -0
- data/spec/examples/stupidedi/reader/token_reader.example +2 -1
- data/spec/examples/stupidedi/versions/005010/element_types/an.example +1 -0
- data/spec/examples/stupidedi/versions/005010/element_types/nn.example +1 -0
- data/spec/examples/stupidedi/versions/005010/element_types/r.example +1 -0
- data/spec/spec_helper.rb +3 -4
- data/spec/support/matchers/navigation_matchers.rb +1 -0
- data/spec/support/quickcheck.rb +2 -1
- data/spec/support/quickcheck/serialized_edi.rb +1 -0
- data/spec/support/rcov.rb +3 -3
- metadata +3 -4
- data/lib/ruby/enumerable.rb +0 -35
data/lib/stupidedi/sets.rb
CHANGED
data/lib/stupidedi/tail_call.rb
CHANGED
@@ -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
|
#
|
@@ -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
|
data/lib/stupidedi/version.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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::
|
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
|
-
|
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
|
-
|
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::
|
341
|
+
self::NonEmpty.new(object.to_s.rstrip, usage, position)
|
354
342
|
end
|
355
343
|
rescue
|
356
344
|
self::Invalid.new(object, usage, position)
|