stupidedi 1.2.15 → 1.2.16
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 +5 -5
- data/README.md +12 -0
- data/bin/edi-pp +11 -1
- data/lib/stupidedi/builder/generation.rb +6 -2
- data/lib/stupidedi/builder/states/failure_state.rb +13 -5
- data/lib/stupidedi/version.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +2 -2
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +1 -1
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 040c365b1e70df2668c3c5ed37a799ae7c8962ec0d3d665f362937680f9b3d25
|
4
|
+
data.tar.gz: 8f35cd7f6e0a1cbf2c37017e073e212153efc21d668188e89c1113c4b0c46c89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c75ef9c84ea65e420ef42405ea4c743b33520fce54320a5700fa7e1d47b8ac4fea9ca2ceef9857ec35d7e07ffe12b353f76b5bd8e3127fc15302b948feb2ddb
|
7
|
+
data.tar.gz: 66a6626c91edfa67d0089e9eaadf62e6801b741ad5733b007be40be7668557b3d281b6fc5759a60606799c7ebf39fc5c164026333a5286c604ee5c74cb7d4bd3
|
data/README.md
CHANGED
@@ -86,6 +86,7 @@ very large files aren't read into memory all at once.
|
|
86
86
|
<table>
|
87
87
|
<tr>
|
88
88
|
<th>segments</th>
|
89
|
+
<th>2.5.0</th>
|
89
90
|
<th>1.9.3</th>
|
90
91
|
<th>1.9.2</th>
|
91
92
|
<th>rbx-head</th>
|
@@ -93,6 +94,7 @@ very large files aren't read into memory all at once.
|
|
93
94
|
</tr>
|
94
95
|
<tr>
|
95
96
|
<td>1680</td>
|
97
|
+
<td></td>
|
96
98
|
<td>2107.90</td>
|
97
99
|
<td>2007.17</td>
|
98
100
|
<td>503.14</td>
|
@@ -100,6 +102,7 @@ very large files aren't read into memory all at once.
|
|
100
102
|
</tr>
|
101
103
|
<tr>
|
102
104
|
<td>3360</td>
|
105
|
+
<td></td>
|
103
106
|
<td>2461.54</td>
|
104
107
|
<td>2420.75</td>
|
105
108
|
<td>731.71</td>
|
@@ -107,6 +110,7 @@ very large files aren't read into memory all at once.
|
|
107
110
|
</tr>
|
108
111
|
<tr>
|
109
112
|
<td>6720</td>
|
113
|
+
<td></td>
|
110
114
|
<td>2677.29</td>
|
111
115
|
<td>2620.90</td>
|
112
116
|
<td>950.63</td>
|
@@ -114,6 +118,7 @@ very large files aren't read into memory all at once.
|
|
114
118
|
</tr>
|
115
119
|
<tr>
|
116
120
|
<td>13440</td>
|
121
|
+
<td></td>
|
117
122
|
<td>2699.88</td>
|
118
123
|
<td>2663.50</td>
|
119
124
|
<td>1071.00</td>
|
@@ -121,6 +126,7 @@ very large files aren't read into memory all at once.
|
|
121
126
|
</tr>
|
122
127
|
<tr>
|
123
128
|
<td>26880</td>
|
129
|
+
<td></td>
|
124
130
|
<td>2558.54</td>
|
125
131
|
<td>2510.51</td>
|
126
132
|
<td>1124.50</td>
|
@@ -128,6 +134,7 @@ very large files aren't read into memory all at once.
|
|
128
134
|
</tr>
|
129
135
|
<tr>
|
130
136
|
<td>53760</td>
|
137
|
+
<td></td>
|
131
138
|
<td>2254.94</td>
|
132
139
|
<td>2164.16</td>
|
133
140
|
<td>1039.81</td>
|
@@ -351,3 +358,8 @@ parser.first
|
|
351
358
|
```ruby
|
352
359
|
rake spec
|
353
360
|
```
|
361
|
+
|
362
|
+
### Run benchmarks
|
363
|
+
```bash
|
364
|
+
notes/benchmark/bench.sh | ./notes/benchmark/fmt.rb
|
365
|
+
```
|
data/bin/edi-pp
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require File.expand_path("../../lib/stupidedi", __FILE__)
|
3
3
|
require "pp"
|
4
|
+
require 'oj'
|
4
5
|
|
5
6
|
# Short-lived processes should win some peformance gains here
|
6
7
|
GC.disable
|
@@ -26,6 +27,8 @@ end
|
|
26
27
|
|
27
28
|
stop = Time.now
|
28
29
|
|
30
|
+
|
31
|
+
test = []
|
29
32
|
parser.zipper.map{|z| pp z.root.node }.explain do
|
30
33
|
# Multiple parse trees (non-deterministic state)
|
31
34
|
unless nondet
|
@@ -37,11 +40,18 @@ parser.zipper.map{|z| pp z.root.node }.explain do
|
|
37
40
|
parser.active.each do |state|
|
38
41
|
zipper = state.node.zipper
|
39
42
|
pp zipper.root.node
|
40
|
-
|
43
|
+
|
44
|
+
pp 'here'
|
45
|
+
puts "\n#{"-" * 70}\n\n"
|
41
46
|
end
|
47
|
+
|
48
|
+
|
42
49
|
end
|
43
50
|
end
|
44
51
|
|
52
|
+
|
53
|
+
|
54
|
+
|
45
55
|
begin
|
46
56
|
a = parser.first
|
47
57
|
b = parser.last
|
@@ -32,8 +32,12 @@ module Stupidedi
|
|
32
32
|
state = zipper.node
|
33
33
|
instructions = state.instructions.matches(segment_tok)
|
34
34
|
|
35
|
-
if instructions.empty?
|
36
|
-
|
35
|
+
if instructions.empty?
|
36
|
+
if zipper.class == Stupidedi::Zipper::RootCursor
|
37
|
+
active << zipper.replace(FailureState.mksegment(segment_tok, state))
|
38
|
+
else
|
39
|
+
active << zipper.append(FailureState.mksegment(segment_tok, state))
|
40
|
+
end
|
37
41
|
next
|
38
42
|
end
|
39
43
|
|
@@ -58,11 +58,19 @@ module Stupidedi
|
|
58
58
|
segment_val = Values::InvalidSegmentVal.new \
|
59
59
|
"unexpected segment", segment_tok
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
if parent.zipper.class == Stupidedi::Zipper::RootCursor
|
62
|
+
new(parent.separators,
|
63
|
+
parent.segment_dict,
|
64
|
+
parent.instructions,
|
65
|
+
parent.zipper.replace(segment_val),
|
66
|
+
[])
|
67
|
+
else
|
68
|
+
new(parent.separators,
|
69
|
+
parent.segment_dict,
|
70
|
+
parent.instructions,
|
71
|
+
parent.zipper.append(segment_val),
|
72
|
+
[])
|
73
|
+
end
|
66
74
|
end
|
67
75
|
|
68
76
|
# @endgroup
|
data/lib/stupidedi/version.rb
CHANGED
@@ -281,7 +281,7 @@ module Stupidedi
|
|
281
281
|
end
|
282
282
|
end
|
283
283
|
|
284
|
-
ansi.element("DT.value#{id}")
|
284
|
+
ansi.element("DT.value#{id}") + "(#{"%04d-%02d-%02d" % [year, month, day]})"
|
285
285
|
end
|
286
286
|
|
287
287
|
# @return [String]
|
@@ -462,7 +462,7 @@ module Stupidedi
|
|
462
462
|
end
|
463
463
|
end
|
464
464
|
|
465
|
-
ansi.element("DT.value#{id}")
|
465
|
+
ansi.element("DT.value#{id}") + "(XX#{"%02d-%02d-%02d" % [@year, @month, @day]})"
|
466
466
|
end
|
467
467
|
|
468
468
|
# @return [String]
|
@@ -226,7 +226,7 @@ module Stupidedi
|
|
226
226
|
mm = @minute.try{|m| "%02d" % m } || "mm"
|
227
227
|
ss = @second.try{|s| s.to_s("F") } || "ss"
|
228
228
|
|
229
|
-
ansi.element("TM.value#{id}")
|
229
|
+
ansi.element("TM.value#{id}") + "(#{hh}:#{mm}:#{ss})"
|
230
230
|
end
|
231
231
|
|
232
232
|
# @return [String]
|
@@ -98,7 +98,7 @@ module Stupidedi
|
|
98
98
|
|
99
99
|
def inspect
|
100
100
|
id = definition.try{|d| ansi.bold("[#{d.id}]") }
|
101
|
-
ansi.element("SeparatorElementVal.value#{id}")
|
101
|
+
ansi.element("SeparatorElementVal.value#{id}") + "(#{@value || "nil"})"
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stupidedi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Kyle Putnam
|
7
|
+
- Kyle Putnam/Isi Robayna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: term-ansicolor
|
@@ -28,18 +28,18 @@ dependencies:
|
|
28
28
|
name: cantor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.2.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.2.1
|
41
41
|
description: Ruby API for parsing and generating ASC X12 EDI transactions
|
42
|
-
email:
|
42
|
+
email: irobayna@gmail.com
|
43
43
|
executables:
|
44
44
|
- edi-pp
|
45
45
|
- edi-ed
|
@@ -1189,7 +1189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1189
1189
|
version: '0'
|
1190
1190
|
requirements: []
|
1191
1191
|
rubyforge_project:
|
1192
|
-
rubygems_version: 2.6
|
1192
|
+
rubygems_version: 2.7.6
|
1193
1193
|
signing_key:
|
1194
1194
|
specification_version: 4
|
1195
1195
|
summary: Parse, generate, validate ASC X12 EDI
|