stupidedi 1.2.18 → 1.2.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -0
  3. data/Rakefile +2 -12
  4. data/lib/stupidedi/version.rb +1 -1
  5. data/lib/stupidedi/writer/claredi.rb +30 -31
  6. data/spec/examples/integration/{generating.example → generating_spec.rb} +0 -0
  7. data/spec/examples/integration/{navigating.example → navigating_spec.rb} +0 -0
  8. data/spec/examples/integration/parsing/005010/{X091A1-HP835.example → X091A1-HP835_spec.rb} +0 -0
  9. data/spec/examples/integration/parsing/005010/{X212-HR276.example → X212-HR276_spec.rb} +0 -0
  10. data/spec/examples/integration/parsing/005010/{X221-HP835.example → X221-HP835_spec.rb} +0 -0
  11. data/spec/examples/integration/parsing/005010/{X222-HC837.example → X222-HC837_spec.rb} +0 -0
  12. data/spec/examples/ruby/{array.example → array_spec.rb} +0 -0
  13. data/spec/examples/ruby/{blank.example → blank_spec.rb} +0 -0
  14. data/spec/examples/ruby/{count.example → count_spec.rb} +0 -0
  15. data/spec/examples/ruby/{object.example → object_spec.rb} +0 -0
  16. data/spec/examples/ruby/{string.example → string_spec.rb} +0 -0
  17. data/spec/examples/ruby/{symbol.example → symbol_spec.rb} +0 -0
  18. data/spec/examples/ruby/{to_d.example → to_d_spec.rb} +0 -0
  19. data/spec/examples/ruby/{try.example → try_spec.rb} +0 -0
  20. data/spec/examples/stupidedi/{either.example → either_spec.rb} +0 -0
  21. data/spec/examples/stupidedi/reader/{failure.example → failure_spec.rb} +0 -0
  22. data/spec/examples/stupidedi/reader/input/{delegated_input.example → delegated_input_spec.rb} +0 -0
  23. data/spec/examples/stupidedi/reader/{separators.example → separators_spec.rb} +0 -0
  24. data/spec/examples/stupidedi/reader/{stream_reader.example → stream_reader_spec.rb} +0 -0
  25. data/spec/examples/stupidedi/reader/{success.example → success_spec.rb} +0 -0
  26. data/spec/examples/stupidedi/reader/{token_reader.example → token_reader_spec.rb} +0 -0
  27. data/spec/examples/stupidedi/{reader.example → reader_spec.rb} +0 -0
  28. data/spec/examples/stupidedi/versions/005010/element_types/{an.example → an_spec.rb} +0 -0
  29. data/spec/examples/stupidedi/versions/005010/element_types/{dt.example → dt_spec.rb} +0 -0
  30. data/spec/examples/stupidedi/versions/005010/element_types/{id.example → id_spec.rb} +0 -0
  31. data/spec/examples/stupidedi/versions/005010/element_types/{nn.example → nn_spec.rb} +0 -0
  32. data/spec/examples/stupidedi/versions/005010/element_types/{r.example → r_spec.rb} +0 -0
  33. data/spec/examples/stupidedi/versions/005010/element_types/{tm.example → tm_spec.rb} +0 -0
  34. data/spec/examples/stupidedi/zipper/{abstract_cursor.example → abstract_cursor_spec.rb} +0 -0
  35. data/spec/examples/stupidedi/{zipper.example → zipper_spec.rb} +0 -0
  36. metadata +32 -62
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e34a8e41d60b6bb5fe3eb04f3ca7f0488ca045ff8395db0634b52770f234251c
4
- data.tar.gz: 065f865f6a7c4d128500bd089d66e4c8c439e041e1a185957c5fe0249f8cdfa8
3
+ metadata.gz: fc8ac588bac665066d84b4df50b9641d94835f44671ad43a189bad11c6ad8101
4
+ data.tar.gz: e556a6c96516ee2bd4aae9b2fa5c969331e0ea1d1473e2f32e8f130bfda94989
5
5
  SHA512:
6
- metadata.gz: 56fed9ac0fdbb889e228be5a33c84d84f38bae2f7bba4c54ef4e547b4096a2a52720adae3d2db77e7c9310417ff23771a24b81711268a132d8d433545c202439
7
- data.tar.gz: e835b0a90b46bf60d964b391cb6d51ec18d158a04a4a4b0114626469db40f5fff382cd80cb240d012a57f1aa21684a6a0b034c67bb90ed701d68cbde354740ff
6
+ metadata.gz: 9ba36f9939ce14183eb3211ca666115ee420f74f63549bbf751714e55a06f07c0eadfe580383209c5a451cb9d9e02d485efb3536a8a352d7a1214322738585fe
7
+ data.tar.gz: e68250deed4fc2f0e100cfbf696d3d7d7e419730561fed7cd05e886eccdd44dc450cc133ce9f3015d86a05537d62a99573825137fd05bd4eedddd924b5a1a6d4
data/README.md CHANGED
@@ -301,6 +301,18 @@ b.machine.zipper.tap do |z|
301
301
  end
302
302
  ```
303
303
 
304
+ Please note that two writers are available. As shown above `Stupidedi::Writer::Default` will output data encoded in plain x12 format. While `Stupidedi::Writer::Claredi` will output a formatted HTML string.
305
+
306
+ `Stupidedi::Writer::Claredi#write` operates on `StringIO`.
307
+
308
+ ```ruby
309
+ b.machine.zipper.tap do |z|
310
+ w = Stupidedi::Writer::Claredi.new(z.root)
311
+
312
+ File.open('output.html', 'w') { |f| f.write w.write }
313
+ end
314
+ ```
315
+
304
316
  ### Reading, Traversing
305
317
 
306
318
  ```ruby
data/Rakefile CHANGED
@@ -2,14 +2,6 @@ require "pathname"
2
2
  abspath = Pathname.new(File.dirname(__FILE__)).expand_path
3
3
  relpath = abspath.relative_path_from(Pathname.pwd)
4
4
 
5
- begin
6
- # require "rubygems"
7
- # require "bundler/setup"
8
- rescue LoadError
9
- warn "couldn't load bundler:"
10
- warn " #{$!}"
11
- end
12
-
13
5
  task :default => :spec
14
6
 
15
7
  task :console do
@@ -18,9 +10,9 @@ end
18
10
 
19
11
  begin
20
12
  require "rspec/core/rake_task"
13
+
21
14
  RSpec::Core::RakeTask.new do |t|
22
15
  t.verbose = false
23
- t.pattern = "#{relpath}/spec/examples/**/*.example"
24
16
 
25
17
  t.rspec_opts = %w(--color --format p)
26
18
  t.rspec_opts << "-I#{abspath}/spec"
@@ -28,8 +20,8 @@ begin
28
20
  rescue LoadError => first
29
21
  begin
30
22
  require "spec/rake/spectask"
23
+
31
24
  Spec::Rake::SpecTask.new do |t|
32
- t.pattern = "#{relpath}/spec/examples/**/*.example"
33
25
  t.spec_opts << "--color"
34
26
  t.spec_opts << "--format p"
35
27
  t.libs << "#{abspath}/spec"
@@ -54,7 +46,6 @@ begin
54
46
  t.rcov_opts = "--exclude spec/,gems/,00401"
55
47
 
56
48
  t.verbose = false
57
- t.pattern = "#{relpath}/spec/examples/**/*.example"
58
49
 
59
50
  t.rspec_opts = %w(--color --format p)
60
51
  t.rspec_opts << "-I#{abspath}/spec"
@@ -66,7 +57,6 @@ begin
66
57
  t.rcov = true
67
58
  t.rcov_opts = %w(--exclude spec/,gems/)
68
59
 
69
- t.pattern = "#{relpath}/spec/examples/**/*.example"
70
60
  t.spec_opts << "--color"
71
61
  t.spec_opts << "--format=p"
72
62
  t.libs << "#{abspath}/spec"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stupidedi
4
- VERSION = "1.2.18"
4
+ VERSION = "1.2.20"
5
5
  end
@@ -11,10 +11,12 @@ module Stupidedi
11
11
  end
12
12
 
13
13
  # @return [String]
14
- def write(out = "")
15
- out = out + "<html><head>\n#{style}</head>\n<body>\n"
14
+ def write(out = StringIO.new)
15
+ out << "<html><head>\n#{style}</head>\n<body>\n"
16
16
  build(@node, out)
17
- out + "</body></html>"
17
+ out << "</body></html>"
18
+
19
+ out.string
18
20
  end
19
21
 
20
22
  private
@@ -77,69 +79,66 @@ module Stupidedi
77
79
  end
78
80
 
79
81
  # @return [void]
80
- def build(node, out = "")
82
+ def build(node, out = StringIO.new)
81
83
  if node.element?
82
-
83
84
  if node.composite?
84
- out = out + "*"
85
- tmp = ""
85
+ out << "*"
86
+ tmp = StringIO.new
86
87
  node.children.each{|e| build(e, tmp) }
87
- tmp = tmp.gsub(/:*$/, "")
88
- out + tmp
88
+ out << tmp.string.gsub(/:*$/, "")
89
89
  elsif node.component?
90
- out + "#{node}:"
90
+ out << "#{node}:"
91
91
  elsif node.repeated?
92
- out + "^"
92
+ out << "^"
93
93
  node.children.each{|e| build(e, out) }
94
94
  else
95
- out + "*#{node}"
95
+ out << "*#{node}"
96
96
  end
97
97
 
98
98
  elsif node.segment?
99
- out = out + "<div class=segment><div class=label title='#{node.definition.name}'>"
100
- out = out + '% 3s' % node.definition.id
101
- # out = out + ": #{node.definition.name}</div></div>\n"
102
- tmp = ""
99
+ out << "<div class=segment><div class=label title='#{node.definition.name}'>"
100
+ out << '% 3s' % node.definition.id
101
+ # out << ": #{node.definition.name}</div></div>\n"
102
+ tmp = StringIO.new
103
103
  node.children.each{|e| build(e, tmp) }
104
- tmp = tmp.gsub(/\**$/, "")
105
- out + "#{tmp}~</div></div>\n"
104
+ tmp = tmp.string.gsub(/\**$/, "")
105
+ out << "#{tmp}~</div></div>\n"
106
106
 
107
107
  elsif node.loop?
108
108
  m = /^(\w+) (.+)$/.match(node.definition.id)
109
109
  id, name = m.captures
110
110
  name = name.split(/\s+/).map(&:capitalize).join(" ")
111
111
 
112
- out = out + "<div class=loop><div class=label>#{name} (#{id})</div>\n"
112
+ out << "<div class=loop><div class=label>#{name} (#{id})</div>\n"
113
113
  node.children.each{|c| build(c, out) }
114
- out + "</div>\n"
114
+ out << "</div>\n"
115
115
 
116
116
  elsif node.table?
117
- out = out + "<div class=table><div class=label>#{node.definition.id}</div>\n"
117
+ out << "<div class=table><div class=label>#{node.definition.id}</div>\n"
118
118
  node.children.each{|c| build(c, out) }
119
- out + "</div>\n"
119
+ out << "</div>\n"
120
120
 
121
121
  elsif node.transaction_set?
122
- out = out + "<div class=transaction><div class=label>Transaction Set #{node.definition.id}</div>\n"
122
+ out << "<div class=transaction><div class=label>Transaction Set #{node.definition.id}</div>\n"
123
123
  node.children.each{|c| build(c, out) }
124
- out + "</div>\n"
124
+ out << "</div>\n"
125
125
 
126
126
  elsif node.functional_group?
127
- out = out + "<div class=functionalgr><div class=label>Functional Group #{node.definition.id}</div>\n"
127
+ out << "<div class=functionalgr><div class=label>Functional Group #{node.definition.id}</div>\n"
128
128
  node.children.each{|c| build(c, out) }
129
- out + "</div>\n"
129
+ out << "</div>\n"
130
130
 
131
131
  elsif node.interchange?
132
- out = out + "<div class=interchange><div class=label>Interchange #{node.definition.id}</div>\n"
132
+ out << "<div class=interchange><div class=label>Interchange #{node.definition.id}</div>\n"
133
133
  node.children.each{|c| build(c, out) }
134
- out + "</div>\n"
134
+ out << "</div>\n"
135
135
 
136
136
  elsif node.transmission?
137
- out = out + "<div class=transmission>\n"
137
+ out << "<div class=transmission>\n"
138
138
  node.children.each{|c| build(c, out) }
139
- out + "</div>\n"
139
+ out << "</div>\n"
140
140
  end
141
141
  end
142
142
  end
143
-
144
143
  end
145
144
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stupidedi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.18
4
+ version: 1.2.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Putnam/Isi Robayna
@@ -971,36 +971,36 @@ files:
971
971
  - lib/stupidedi/zipper/memoized_cursor.rb
972
972
  - lib/stupidedi/zipper/path.rb
973
973
  - lib/stupidedi/zipper/root_cursor.rb
974
- - spec/examples/integration/generating.example
975
- - spec/examples/integration/navigating.example
976
- - spec/examples/integration/parsing/005010/X091A1-HP835.example
977
- - spec/examples/integration/parsing/005010/X212-HR276.example
978
- - spec/examples/integration/parsing/005010/X221-HP835.example
979
- - spec/examples/integration/parsing/005010/X222-HC837.example
980
- - spec/examples/ruby/array.example
981
- - spec/examples/ruby/blank.example
982
- - spec/examples/ruby/count.example
983
- - spec/examples/ruby/object.example
984
- - spec/examples/ruby/string.example
985
- - spec/examples/ruby/symbol.example
986
- - spec/examples/ruby/to_d.example
987
- - spec/examples/ruby/try.example
988
- - spec/examples/stupidedi/either.example
989
- - spec/examples/stupidedi/reader.example
990
- - spec/examples/stupidedi/reader/failure.example
991
- - spec/examples/stupidedi/reader/input/delegated_input.example
992
- - spec/examples/stupidedi/reader/separators.example
993
- - spec/examples/stupidedi/reader/stream_reader.example
994
- - spec/examples/stupidedi/reader/success.example
995
- - spec/examples/stupidedi/reader/token_reader.example
996
- - spec/examples/stupidedi/versions/005010/element_types/an.example
997
- - spec/examples/stupidedi/versions/005010/element_types/dt.example
998
- - spec/examples/stupidedi/versions/005010/element_types/id.example
999
- - spec/examples/stupidedi/versions/005010/element_types/nn.example
1000
- - spec/examples/stupidedi/versions/005010/element_types/r.example
1001
- - spec/examples/stupidedi/versions/005010/element_types/tm.example
1002
- - spec/examples/stupidedi/zipper.example
1003
- - spec/examples/stupidedi/zipper/abstract_cursor.example
974
+ - spec/examples/integration/generating_spec.rb
975
+ - spec/examples/integration/navigating_spec.rb
976
+ - spec/examples/integration/parsing/005010/X091A1-HP835_spec.rb
977
+ - spec/examples/integration/parsing/005010/X212-HR276_spec.rb
978
+ - spec/examples/integration/parsing/005010/X221-HP835_spec.rb
979
+ - spec/examples/integration/parsing/005010/X222-HC837_spec.rb
980
+ - spec/examples/ruby/array_spec.rb
981
+ - spec/examples/ruby/blank_spec.rb
982
+ - spec/examples/ruby/count_spec.rb
983
+ - spec/examples/ruby/object_spec.rb
984
+ - spec/examples/ruby/string_spec.rb
985
+ - spec/examples/ruby/symbol_spec.rb
986
+ - spec/examples/ruby/to_d_spec.rb
987
+ - spec/examples/ruby/try_spec.rb
988
+ - spec/examples/stupidedi/either_spec.rb
989
+ - spec/examples/stupidedi/reader/failure_spec.rb
990
+ - spec/examples/stupidedi/reader/input/delegated_input_spec.rb
991
+ - spec/examples/stupidedi/reader/separators_spec.rb
992
+ - spec/examples/stupidedi/reader/stream_reader_spec.rb
993
+ - spec/examples/stupidedi/reader/success_spec.rb
994
+ - spec/examples/stupidedi/reader/token_reader_spec.rb
995
+ - spec/examples/stupidedi/reader_spec.rb
996
+ - spec/examples/stupidedi/versions/005010/element_types/an_spec.rb
997
+ - spec/examples/stupidedi/versions/005010/element_types/dt_spec.rb
998
+ - spec/examples/stupidedi/versions/005010/element_types/id_spec.rb
999
+ - spec/examples/stupidedi/versions/005010/element_types/nn_spec.rb
1000
+ - spec/examples/stupidedi/versions/005010/element_types/r_spec.rb
1001
+ - spec/examples/stupidedi/versions/005010/element_types/tm_spec.rb
1002
+ - spec/examples/stupidedi/zipper/abstract_cursor_spec.rb
1003
+ - spec/examples/stupidedi/zipper_spec.rb
1004
1004
  - spec/fixtures/FA997/1-good.txt
1005
1005
  - spec/fixtures/PC860/1-good.txt
1006
1006
  - spec/fixtures/PO830/1-good.txt
@@ -1215,34 +1215,4 @@ rubygems_version: 2.7.6
1215
1215
  signing_key:
1216
1216
  specification_version: 4
1217
1217
  summary: Parse, generate, validate ASC X12 EDI
1218
- test_files:
1219
- - spec/examples/stupidedi/reader/failure.example
1220
- - spec/examples/stupidedi/reader/input/delegated_input.example
1221
- - spec/examples/stupidedi/reader/token_reader.example
1222
- - spec/examples/stupidedi/reader/separators.example
1223
- - spec/examples/stupidedi/reader/stream_reader.example
1224
- - spec/examples/stupidedi/reader/success.example
1225
- - spec/examples/stupidedi/either.example
1226
- - spec/examples/stupidedi/versions/005010/element_types/r.example
1227
- - spec/examples/stupidedi/versions/005010/element_types/id.example
1228
- - spec/examples/stupidedi/versions/005010/element_types/nn.example
1229
- - spec/examples/stupidedi/versions/005010/element_types/an.example
1230
- - spec/examples/stupidedi/versions/005010/element_types/tm.example
1231
- - spec/examples/stupidedi/versions/005010/element_types/dt.example
1232
- - spec/examples/stupidedi/zipper/abstract_cursor.example
1233
- - spec/examples/stupidedi/reader.example
1234
- - spec/examples/stupidedi/zipper.example
1235
- - spec/examples/integration/generating.example
1236
- - spec/examples/integration/navigating.example
1237
- - spec/examples/integration/parsing/005010/X212-HR276.example
1238
- - spec/examples/integration/parsing/005010/X091A1-HP835.example
1239
- - spec/examples/integration/parsing/005010/X221-HP835.example
1240
- - spec/examples/integration/parsing/005010/X222-HC837.example
1241
- - spec/examples/ruby/to_d.example
1242
- - spec/examples/ruby/object.example
1243
- - spec/examples/ruby/blank.example
1244
- - spec/examples/ruby/array.example
1245
- - spec/examples/ruby/count.example
1246
- - spec/examples/ruby/try.example
1247
- - spec/examples/ruby/string.example
1248
- - spec/examples/ruby/symbol.example
1218
+ test_files: []