csvops 0.5.0.alpha → 0.6.0.alpha

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -3
  3. data/docs/architecture.md +61 -4
  4. data/docs/release-v0.6.0-alpha.md +84 -0
  5. data/lib/csvtool/application/use_cases/run_csv_parity.rb +70 -0
  6. data/lib/csvtool/cli.rb +5 -1
  7. data/lib/csvtool/domain/csv_parity_session/parity_options.rb +22 -0
  8. data/lib/csvtool/domain/csv_parity_session/parity_session.rb +20 -0
  9. data/lib/csvtool/domain/csv_parity_session/source_pair.rb +19 -0
  10. data/lib/csvtool/infrastructure/csv/csv_parity_comparator.rb +71 -0
  11. data/lib/csvtool/interface/cli/errors/presenter.rb +4 -0
  12. data/lib/csvtool/interface/cli/menu_loop.rb +5 -2
  13. data/lib/csvtool/interface/cli/workflows/builders/csv_parity_session_builder.rb +33 -0
  14. data/lib/csvtool/interface/cli/workflows/presenters/csv_parity_presenter.rb +38 -0
  15. data/lib/csvtool/interface/cli/workflows/run_csv_parity_workflow.rb +66 -0
  16. data/lib/csvtool/interface/cli/workflows/steps/parity/build_session_step.rb +25 -0
  17. data/lib/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step.rb +32 -0
  18. data/lib/csvtool/interface/cli/workflows/steps/parity/execute_step.rb +26 -0
  19. data/lib/csvtool/version.rb +1 -1
  20. data/test/csvtool/application/use_cases/run_csv_parity_test.rb +160 -0
  21. data/test/csvtool/cli_test.rb +175 -21
  22. data/test/csvtool/cli_unit_test.rb +4 -4
  23. data/test/csvtool/domain/csv_parity_session/parity_options_test.rb +17 -0
  24. data/test/csvtool/domain/csv_parity_session/parity_session_test.rb +18 -0
  25. data/test/csvtool/domain/csv_parity_session/source_pair_test.rb +11 -0
  26. data/test/csvtool/infrastructure/csv/csv_parity_comparator_test.rb +78 -0
  27. data/test/csvtool/interface/cli/errors/presenter_test.rb +2 -0
  28. data/test/csvtool/interface/cli/menu_loop_test.rb +59 -16
  29. data/test/csvtool/interface/cli/workflows/builders/csv_parity_session_builder_test.rb +20 -0
  30. data/test/csvtool/interface/cli/workflows/presenters/csv_parity_presenter_test.rb +43 -0
  31. data/test/csvtool/interface/cli/workflows/run_csv_parity_workflow_test.rb +94 -0
  32. data/test/csvtool/interface/cli/workflows/steps/parity/build_session_step_test.rb +41 -0
  33. data/test/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step_test.rb +30 -0
  34. data/test/csvtool/interface/cli/workflows/steps/parity/execute_step_test.rb +40 -0
  35. data/test/fixtures/parity_duplicates_left.csv +4 -0
  36. data/test/fixtures/parity_duplicates_right.csv +3 -0
  37. data/test/fixtures/parity_people_header_mismatch.csv +4 -0
  38. data/test/fixtures/parity_people_many_reordered.csv +13 -0
  39. data/test/fixtures/parity_people_mismatch.csv +4 -0
  40. data/test/fixtures/parity_people_reordered.csv +4 -0
  41. data/test/fixtures/parity_people_reordered.tsv +4 -0
  42. metadata +31 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csvops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0.alpha
4
+ version: 0.6.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Hall
@@ -73,8 +73,10 @@ files:
73
73
  - docs/release-v0.3.0-alpha.md
74
74
  - docs/release-v0.4.0-alpha.md
75
75
  - docs/release-v0.5.0-alpha.md
76
+ - docs/release-v0.6.0-alpha.md
76
77
  - exe/csvtool
77
78
  - lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb
79
+ - lib/csvtool/application/use_cases/run_csv_parity.rb
78
80
  - lib/csvtool/application/use_cases/run_extraction.rb
79
81
  - lib/csvtool/application/use_cases/run_row_extraction.rb
80
82
  - lib/csvtool/application/use_cases/run_row_randomization.rb
@@ -91,6 +93,9 @@ files:
91
93
  - lib/csvtool/domain/cross_csv_dedupe_session/csv_profile.rb
92
94
  - lib/csvtool/domain/cross_csv_dedupe_session/key_mapping.rb
93
95
  - lib/csvtool/domain/cross_csv_dedupe_session/match_options.rb
96
+ - lib/csvtool/domain/csv_parity_session/parity_options.rb
97
+ - lib/csvtool/domain/csv_parity_session/parity_session.rb
98
+ - lib/csvtool/domain/csv_parity_session/source_pair.rb
94
99
  - lib/csvtool/domain/row_randomization_session/randomization_options.rb
95
100
  - lib/csvtool/domain/row_randomization_session/randomization_session.rb
96
101
  - lib/csvtool/domain/row_randomization_session/randomization_source.rb
@@ -99,6 +104,7 @@ files:
99
104
  - lib/csvtool/domain/row_session/row_source.rb
100
105
  - lib/csvtool/domain/shared/output_destination.rb
101
106
  - lib/csvtool/infrastructure/csv/cross_csv_deduper.rb
107
+ - lib/csvtool/infrastructure/csv/csv_parity_comparator.rb
102
108
  - lib/csvtool/infrastructure/csv/header_reader.rb
103
109
  - lib/csvtool/infrastructure/csv/row_randomizer.rb
104
110
  - lib/csvtool/infrastructure/csv/row_streamer.rb
@@ -124,13 +130,16 @@ files:
124
130
  - lib/csvtool/interface/cli/prompts/yes_no_prompt.rb
125
131
  - lib/csvtool/interface/cli/workflows/builders/column_session_builder.rb
126
132
  - lib/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder.rb
133
+ - lib/csvtool/interface/cli/workflows/builders/csv_parity_session_builder.rb
127
134
  - lib/csvtool/interface/cli/workflows/builders/row_extraction_session_builder.rb
128
135
  - lib/csvtool/interface/cli/workflows/builders/row_randomization_session_builder.rb
129
136
  - lib/csvtool/interface/cli/workflows/presenters/column_extraction_presenter.rb
130
137
  - lib/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter.rb
138
+ - lib/csvtool/interface/cli/workflows/presenters/csv_parity_presenter.rb
131
139
  - lib/csvtool/interface/cli/workflows/presenters/row_extraction_presenter.rb
132
140
  - lib/csvtool/interface/cli/workflows/presenters/row_randomization_presenter.rb
133
141
  - lib/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow.rb
142
+ - lib/csvtool/interface/cli/workflows/run_csv_parity_workflow.rb
134
143
  - lib/csvtool/interface/cli/workflows/run_extraction_workflow.rb
135
144
  - lib/csvtool/interface/cli/workflows/run_row_extraction_workflow.rb
136
145
  - lib/csvtool/interface/cli/workflows/run_row_randomization_workflow.rb
@@ -141,6 +150,9 @@ files:
141
150
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_destination_step.rb
142
151
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step.rb
143
152
  - lib/csvtool/interface/cli/workflows/steps/extraction/execute_step.rb
153
+ - lib/csvtool/interface/cli/workflows/steps/parity/build_session_step.rb
154
+ - lib/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step.rb
155
+ - lib/csvtool/interface/cli/workflows/steps/parity/execute_step.rb
144
156
  - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_destination_step.rb
145
157
  - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_range_step.rb
146
158
  - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step.rb
@@ -156,6 +168,7 @@ files:
156
168
  - lib/csvtool/version.rb
157
169
  - test/csvtool/application/use_cases/io_boundary_test.rb
158
170
  - test/csvtool/application/use_cases/run_cross_csv_dedupe_test.rb
171
+ - test/csvtool/application/use_cases/run_csv_parity_test.rb
159
172
  - test/csvtool/application/use_cases/run_extraction_test.rb
160
173
  - test/csvtool/application/use_cases/run_row_extraction_test.rb
161
174
  - test/csvtool/application/use_cases/run_row_randomization_test.rb
@@ -173,6 +186,9 @@ files:
173
186
  - test/csvtool/domain/cross_csv_dedupe_session/csv_profile_test.rb
174
187
  - test/csvtool/domain/cross_csv_dedupe_session/key_mapping_test.rb
175
188
  - test/csvtool/domain/cross_csv_dedupe_session/match_options_test.rb
189
+ - test/csvtool/domain/csv_parity_session/parity_options_test.rb
190
+ - test/csvtool/domain/csv_parity_session/parity_session_test.rb
191
+ - test/csvtool/domain/csv_parity_session/source_pair_test.rb
176
192
  - test/csvtool/domain/row_randomization_session/randomization_options_test.rb
177
193
  - test/csvtool/domain/row_randomization_session/randomization_session_test.rb
178
194
  - test/csvtool/domain/row_randomization_session/randomization_source_test.rb
@@ -181,6 +197,7 @@ files:
181
197
  - test/csvtool/domain/row_session/row_source_test.rb
182
198
  - test/csvtool/domain/shared/output_destination_test.rb
183
199
  - test/csvtool/infrastructure/csv/cross_csv_deduper_test.rb
200
+ - test/csvtool/infrastructure/csv/csv_parity_comparator_test.rb
184
201
  - test/csvtool/infrastructure/csv/header_reader_test.rb
185
202
  - test/csvtool/infrastructure/csv/row_randomizer_test.rb
186
203
  - test/csvtool/infrastructure/csv/row_streamer_test.rb
@@ -206,18 +223,24 @@ files:
206
223
  - test/csvtool/interface/cli/prompts/yes_no_prompt_test.rb
207
224
  - test/csvtool/interface/cli/workflows/builders/column_session_builder_test.rb
208
225
  - test/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder_test.rb
226
+ - test/csvtool/interface/cli/workflows/builders/csv_parity_session_builder_test.rb
209
227
  - test/csvtool/interface/cli/workflows/builders/row_extraction_session_builder_test.rb
210
228
  - test/csvtool/interface/cli/workflows/builders/row_randomization_session_builder_test.rb
211
229
  - test/csvtool/interface/cli/workflows/presenters/column_extraction_presenter_test.rb
212
230
  - test/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter_test.rb
231
+ - test/csvtool/interface/cli/workflows/presenters/csv_parity_presenter_test.rb
213
232
  - test/csvtool/interface/cli/workflows/presenters/row_extraction_presenter_test.rb
214
233
  - test/csvtool/interface/cli/workflows/presenters/row_randomization_presenter_test.rb
215
234
  - test/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow_test.rb
235
+ - test/csvtool/interface/cli/workflows/run_csv_parity_workflow_test.rb
216
236
  - test/csvtool/interface/cli/workflows/run_extraction_workflow_test.rb
217
237
  - test/csvtool/interface/cli/workflows/run_row_extraction_workflow_test.rb
218
238
  - test/csvtool/interface/cli/workflows/run_row_randomization_workflow_test.rb
219
239
  - test/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step_test.rb
220
240
  - test/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step_test.rb
241
+ - test/csvtool/interface/cli/workflows/steps/parity/build_session_step_test.rb
242
+ - test/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step_test.rb
243
+ - test/csvtool/interface/cli/workflows/steps/parity/execute_step_test.rb
221
244
  - test/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step_test.rb
222
245
  - test/csvtool/interface/cli/workflows/steps/row_extraction/execute_step_test.rb
223
246
  - test/csvtool/interface/cli/workflows/steps/row_extraction/read_headers_step_test.rb
@@ -237,6 +260,13 @@ files:
237
260
  - test/fixtures/dedupe_source_no_headers.csv
238
261
  - test/fixtures/dedupe_source_normalization.csv
239
262
  - test/fixtures/empty.csv
263
+ - test/fixtures/parity_duplicates_left.csv
264
+ - test/fixtures/parity_duplicates_right.csv
265
+ - test/fixtures/parity_people_header_mismatch.csv
266
+ - test/fixtures/parity_people_many_reordered.csv
267
+ - test/fixtures/parity_people_mismatch.csv
268
+ - test/fixtures/parity_people_reordered.csv
269
+ - test/fixtures/parity_people_reordered.tsv
240
270
  - test/fixtures/sample_people.csv
241
271
  - test/fixtures/sample_people.tsv
242
272
  - test/fixtures/sample_people_bad_tail.csv