csvops 0.6.0.alpha → 0.7.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +51 -12
  3. data/docs/architecture.md +61 -4
  4. data/docs/release-v0.7.0-alpha.md +87 -0
  5. data/lib/csvtool/application/use_cases/run_csv_split.rb +97 -0
  6. data/lib/csvtool/cli.rb +5 -1
  7. data/lib/csvtool/domain/csv_split_session/split_options.rb +27 -0
  8. data/lib/csvtool/domain/csv_split_session/split_session.rb +20 -0
  9. data/lib/csvtool/domain/csv_split_session/split_source.rb +17 -0
  10. data/lib/csvtool/infrastructure/csv/csv_splitter.rb +64 -0
  11. data/lib/csvtool/infrastructure/output/csv_split_manifest_writer.rb +20 -0
  12. data/lib/csvtool/interface/cli/errors/presenter.rb +8 -0
  13. data/lib/csvtool/interface/cli/menu_loop.rb +5 -2
  14. data/lib/csvtool/interface/cli/prompts/chunk_size_prompt.rb +21 -0
  15. data/lib/csvtool/interface/cli/prompts/split_manifest_prompt.rb +30 -0
  16. data/lib/csvtool/interface/cli/prompts/split_output_prompt.rb +38 -0
  17. data/lib/csvtool/interface/cli/workflows/builders/csv_split_session_builder.rb +44 -0
  18. data/lib/csvtool/interface/cli/workflows/presenters/csv_split_presenter.rb +26 -0
  19. data/lib/csvtool/interface/cli/workflows/run_csv_split_workflow.rb +89 -0
  20. data/lib/csvtool/interface/cli/workflows/steps/csv_split/build_session_step.rb +30 -0
  21. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step.rb +43 -0
  22. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step.rb +30 -0
  23. data/lib/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step.rb +31 -0
  24. data/lib/csvtool/interface/cli/workflows/steps/csv_split/execute_step.rb +36 -0
  25. data/lib/csvtool/version.rb +1 -1
  26. data/test/csvtool/application/use_cases/run_csv_split_test.rb +124 -0
  27. data/test/csvtool/cli_test.rb +76 -29
  28. data/test/csvtool/infrastructure/csv/csv_splitter_test.rb +68 -0
  29. data/test/csvtool/infrastructure/output/csv_split_manifest_writer_test.rb +25 -0
  30. data/test/csvtool/interface/cli/menu_loop_test.rb +81 -130
  31. data/test/csvtool/interface/cli/prompts/chunk_size_prompt_test.rb +17 -0
  32. data/test/csvtool/interface/cli/prompts/split_manifest_prompt_test.rb +42 -0
  33. data/test/csvtool/interface/cli/prompts/split_output_prompt_test.rb +22 -0
  34. data/test/csvtool/interface/cli/workflows/builders/csv_split_session_builder_test.rb +30 -0
  35. data/test/csvtool/interface/cli/workflows/presenters/csv_split_presenter_test.rb +26 -0
  36. data/test/csvtool/interface/cli/workflows/run_csv_split_workflow_test.rb +200 -0
  37. data/test/csvtool/interface/cli/workflows/steps/csv_split/build_session_step_test.rb +40 -0
  38. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step_test.rb +64 -0
  39. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step_test.rb +30 -0
  40. data/test/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step_test.rb +32 -0
  41. data/test/csvtool/interface/cli/workflows/steps/csv_split/execute_step_test.rb +83 -0
  42. data/test/fixtures/split_people_25.csv +26 -0
  43. metadata +34 -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.6.0.alpha
4
+ version: 0.7.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Hall
@@ -74,9 +74,11 @@ files:
74
74
  - docs/release-v0.4.0-alpha.md
75
75
  - docs/release-v0.5.0-alpha.md
76
76
  - docs/release-v0.6.0-alpha.md
77
+ - docs/release-v0.7.0-alpha.md
77
78
  - exe/csvtool
78
79
  - lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb
79
80
  - lib/csvtool/application/use_cases/run_csv_parity.rb
81
+ - lib/csvtool/application/use_cases/run_csv_split.rb
80
82
  - lib/csvtool/application/use_cases/run_extraction.rb
81
83
  - lib/csvtool/application/use_cases/run_row_extraction.rb
82
84
  - lib/csvtool/application/use_cases/run_row_randomization.rb
@@ -96,6 +98,9 @@ files:
96
98
  - lib/csvtool/domain/csv_parity_session/parity_options.rb
97
99
  - lib/csvtool/domain/csv_parity_session/parity_session.rb
98
100
  - lib/csvtool/domain/csv_parity_session/source_pair.rb
101
+ - lib/csvtool/domain/csv_split_session/split_options.rb
102
+ - lib/csvtool/domain/csv_split_session/split_session.rb
103
+ - lib/csvtool/domain/csv_split_session/split_source.rb
99
104
  - lib/csvtool/domain/row_randomization_session/randomization_options.rb
100
105
  - lib/csvtool/domain/row_randomization_session/randomization_session.rb
101
106
  - lib/csvtool/domain/row_randomization_session/randomization_source.rb
@@ -105,6 +110,7 @@ files:
105
110
  - lib/csvtool/domain/shared/output_destination.rb
106
111
  - lib/csvtool/infrastructure/csv/cross_csv_deduper.rb
107
112
  - lib/csvtool/infrastructure/csv/csv_parity_comparator.rb
113
+ - lib/csvtool/infrastructure/csv/csv_splitter.rb
108
114
  - lib/csvtool/infrastructure/csv/header_reader.rb
109
115
  - lib/csvtool/infrastructure/csv/row_randomizer.rb
110
116
  - lib/csvtool/infrastructure/csv/row_streamer.rb
@@ -116,8 +122,10 @@ files:
116
122
  - lib/csvtool/infrastructure/output/csv_randomized_row_file_writer.rb
117
123
  - lib/csvtool/infrastructure/output/csv_row_console_writer.rb
118
124
  - lib/csvtool/infrastructure/output/csv_row_file_writer.rb
125
+ - lib/csvtool/infrastructure/output/csv_split_manifest_writer.rb
119
126
  - lib/csvtool/interface/cli/errors/presenter.rb
120
127
  - lib/csvtool/interface/cli/menu_loop.rb
128
+ - lib/csvtool/interface/cli/prompts/chunk_size_prompt.rb
121
129
  - lib/csvtool/interface/cli/prompts/column_selector_prompt.rb
122
130
  - lib/csvtool/interface/cli/prompts/confirm_prompt.rb
123
131
  - lib/csvtool/interface/cli/prompts/dedupe_key_selector_prompt.rb
@@ -127,25 +135,35 @@ files:
127
135
  - lib/csvtool/interface/cli/prompts/seed_prompt.rb
128
136
  - lib/csvtool/interface/cli/prompts/separator_prompt.rb
129
137
  - lib/csvtool/interface/cli/prompts/skip_blanks_prompt.rb
138
+ - lib/csvtool/interface/cli/prompts/split_manifest_prompt.rb
139
+ - lib/csvtool/interface/cli/prompts/split_output_prompt.rb
130
140
  - lib/csvtool/interface/cli/prompts/yes_no_prompt.rb
131
141
  - lib/csvtool/interface/cli/workflows/builders/column_session_builder.rb
132
142
  - lib/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder.rb
133
143
  - lib/csvtool/interface/cli/workflows/builders/csv_parity_session_builder.rb
144
+ - lib/csvtool/interface/cli/workflows/builders/csv_split_session_builder.rb
134
145
  - lib/csvtool/interface/cli/workflows/builders/row_extraction_session_builder.rb
135
146
  - lib/csvtool/interface/cli/workflows/builders/row_randomization_session_builder.rb
136
147
  - lib/csvtool/interface/cli/workflows/presenters/column_extraction_presenter.rb
137
148
  - lib/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter.rb
138
149
  - lib/csvtool/interface/cli/workflows/presenters/csv_parity_presenter.rb
150
+ - lib/csvtool/interface/cli/workflows/presenters/csv_split_presenter.rb
139
151
  - lib/csvtool/interface/cli/workflows/presenters/row_extraction_presenter.rb
140
152
  - lib/csvtool/interface/cli/workflows/presenters/row_randomization_presenter.rb
141
153
  - lib/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow.rb
142
154
  - lib/csvtool/interface/cli/workflows/run_csv_parity_workflow.rb
155
+ - lib/csvtool/interface/cli/workflows/run_csv_split_workflow.rb
143
156
  - lib/csvtool/interface/cli/workflows/run_extraction_workflow.rb
144
157
  - lib/csvtool/interface/cli/workflows/run_row_extraction_workflow.rb
145
158
  - lib/csvtool/interface/cli/workflows/run_row_randomization_workflow.rb
146
159
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step.rb
147
160
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_profiles_step.rb
148
161
  - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/execute_step.rb
162
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/build_session_step.rb
163
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step.rb
164
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step.rb
165
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step.rb
166
+ - lib/csvtool/interface/cli/workflows/steps/csv_split/execute_step.rb
149
167
  - lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb
150
168
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_destination_step.rb
151
169
  - lib/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step.rb
@@ -169,6 +187,7 @@ files:
169
187
  - test/csvtool/application/use_cases/io_boundary_test.rb
170
188
  - test/csvtool/application/use_cases/run_cross_csv_dedupe_test.rb
171
189
  - test/csvtool/application/use_cases/run_csv_parity_test.rb
190
+ - test/csvtool/application/use_cases/run_csv_split_test.rb
172
191
  - test/csvtool/application/use_cases/run_extraction_test.rb
173
192
  - test/csvtool/application/use_cases/run_row_extraction_test.rb
174
193
  - test/csvtool/application/use_cases/run_row_randomization_test.rb
@@ -198,6 +217,7 @@ files:
198
217
  - test/csvtool/domain/shared/output_destination_test.rb
199
218
  - test/csvtool/infrastructure/csv/cross_csv_deduper_test.rb
200
219
  - test/csvtool/infrastructure/csv/csv_parity_comparator_test.rb
220
+ - test/csvtool/infrastructure/csv/csv_splitter_test.rb
201
221
  - test/csvtool/infrastructure/csv/header_reader_test.rb
202
222
  - test/csvtool/infrastructure/csv/row_randomizer_test.rb
203
223
  - test/csvtool/infrastructure/csv/row_streamer_test.rb
@@ -209,8 +229,10 @@ files:
209
229
  - test/csvtool/infrastructure/output/csv_randomized_row_file_writer_test.rb
210
230
  - test/csvtool/infrastructure/output/csv_row_console_writer_test.rb
211
231
  - test/csvtool/infrastructure/output/csv_row_file_writer_test.rb
232
+ - test/csvtool/infrastructure/output/csv_split_manifest_writer_test.rb
212
233
  - test/csvtool/interface/cli/errors/presenter_test.rb
213
234
  - test/csvtool/interface/cli/menu_loop_test.rb
235
+ - test/csvtool/interface/cli/prompts/chunk_size_prompt_test.rb
214
236
  - test/csvtool/interface/cli/prompts/column_selector_prompt_test.rb
215
237
  - test/csvtool/interface/cli/prompts/confirm_prompt_test.rb
216
238
  - test/csvtool/interface/cli/prompts/dedupe_key_selector_prompt_test.rb
@@ -220,23 +242,33 @@ files:
220
242
  - test/csvtool/interface/cli/prompts/seed_prompt_test.rb
221
243
  - test/csvtool/interface/cli/prompts/separator_prompt_test.rb
222
244
  - test/csvtool/interface/cli/prompts/skip_blanks_prompt_test.rb
245
+ - test/csvtool/interface/cli/prompts/split_manifest_prompt_test.rb
246
+ - test/csvtool/interface/cli/prompts/split_output_prompt_test.rb
223
247
  - test/csvtool/interface/cli/prompts/yes_no_prompt_test.rb
224
248
  - test/csvtool/interface/cli/workflows/builders/column_session_builder_test.rb
225
249
  - test/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder_test.rb
226
250
  - test/csvtool/interface/cli/workflows/builders/csv_parity_session_builder_test.rb
251
+ - test/csvtool/interface/cli/workflows/builders/csv_split_session_builder_test.rb
227
252
  - test/csvtool/interface/cli/workflows/builders/row_extraction_session_builder_test.rb
228
253
  - test/csvtool/interface/cli/workflows/builders/row_randomization_session_builder_test.rb
229
254
  - test/csvtool/interface/cli/workflows/presenters/column_extraction_presenter_test.rb
230
255
  - test/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter_test.rb
231
256
  - test/csvtool/interface/cli/workflows/presenters/csv_parity_presenter_test.rb
257
+ - test/csvtool/interface/cli/workflows/presenters/csv_split_presenter_test.rb
232
258
  - test/csvtool/interface/cli/workflows/presenters/row_extraction_presenter_test.rb
233
259
  - test/csvtool/interface/cli/workflows/presenters/row_randomization_presenter_test.rb
234
260
  - test/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow_test.rb
235
261
  - test/csvtool/interface/cli/workflows/run_csv_parity_workflow_test.rb
262
+ - test/csvtool/interface/cli/workflows/run_csv_split_workflow_test.rb
236
263
  - test/csvtool/interface/cli/workflows/run_extraction_workflow_test.rb
237
264
  - test/csvtool/interface/cli/workflows/run_row_extraction_workflow_test.rb
238
265
  - test/csvtool/interface/cli/workflows/run_row_randomization_workflow_test.rb
239
266
  - test/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step_test.rb
267
+ - test/csvtool/interface/cli/workflows/steps/csv_split/build_session_step_test.rb
268
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_inputs_step_test.rb
269
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_manifest_step_test.rb
270
+ - test/csvtool/interface/cli/workflows/steps/csv_split/collect_output_step_test.rb
271
+ - test/csvtool/interface/cli/workflows/steps/csv_split/execute_step_test.rb
240
272
  - test/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step_test.rb
241
273
  - test/csvtool/interface/cli/workflows/steps/parity/build_session_step_test.rb
242
274
  - test/csvtool/interface/cli/workflows/steps/parity/collect_inputs_step_test.rb
@@ -274,6 +306,7 @@ files:
274
306
  - test/fixtures/sample_people_colon.txt
275
307
  - test/fixtures/sample_people_many.csv
276
308
  - test/fixtures/sample_people_no_headers.csv
309
+ - test/fixtures/split_people_25.csv
277
310
  - test/test_helper.rb
278
311
  homepage: https://github.com/RobertAndrewHall/csvops
279
312
  licenses: