csvops 0.4.0.alpha → 0.5.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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -9
  3. data/docs/architecture.md +148 -18
  4. data/docs/release-v0.5.0-alpha.md +89 -0
  5. data/lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb +17 -14
  6. data/lib/csvtool/application/use_cases/run_extraction.rb +63 -88
  7. data/lib/csvtool/application/use_cases/run_row_extraction.rb +45 -73
  8. data/lib/csvtool/application/use_cases/run_row_randomization.rb +56 -73
  9. data/lib/csvtool/cli.rb +6 -6
  10. data/lib/csvtool/infrastructure/output/csv_cross_csv_dedupe_file_writer.rb +23 -0
  11. data/lib/csvtool/infrastructure/output/csv_file_writer.rb +1 -7
  12. data/lib/csvtool/infrastructure/output/csv_randomized_row_file_writer.rb +23 -0
  13. data/lib/csvtool/infrastructure/output/csv_row_file_writer.rb +2 -9
  14. data/lib/csvtool/interface/cli/prompts/dedupe_key_selector_prompt.rb +30 -0
  15. data/lib/csvtool/interface/cli/prompts/file_path_prompt.rb +4 -2
  16. data/lib/csvtool/interface/cli/prompts/headers_present_prompt.rb +4 -2
  17. data/lib/csvtool/interface/cli/prompts/separator_prompt.rb +4 -2
  18. data/lib/csvtool/interface/cli/prompts/yes_no_prompt.rb +26 -0
  19. data/lib/csvtool/interface/cli/workflows/builders/column_session_builder.rb +32 -0
  20. data/lib/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder.rb +35 -0
  21. data/lib/csvtool/interface/cli/workflows/builders/row_extraction_session_builder.rb +22 -0
  22. data/lib/csvtool/interface/cli/workflows/builders/row_randomization_session_builder.rb +28 -0
  23. data/lib/csvtool/interface/cli/workflows/presenters/column_extraction_presenter.rb +25 -0
  24. data/lib/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter.rb +39 -0
  25. data/lib/csvtool/interface/cli/workflows/presenters/row_extraction_presenter.rb +34 -0
  26. data/lib/csvtool/interface/cli/workflows/presenters/row_randomization_presenter.rb +34 -0
  27. data/lib/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow.rb +48 -125
  28. data/lib/csvtool/interface/cli/workflows/run_extraction_workflow.rb +88 -0
  29. data/lib/csvtool/interface/cli/workflows/run_row_extraction_workflow.rb +86 -0
  30. data/lib/csvtool/interface/cli/workflows/run_row_randomization_workflow.rb +80 -0
  31. data/lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step.rb +55 -0
  32. data/lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_profiles_step.rb +52 -0
  33. data/lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/execute_step.rb +34 -0
  34. data/lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb +40 -0
  35. data/lib/csvtool/interface/cli/workflows/steps/extraction/collect_destination_step.rb +28 -0
  36. data/lib/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step.rb +47 -0
  37. data/lib/csvtool/interface/cli/workflows/steps/extraction/execute_step.rb +32 -0
  38. data/lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_destination_step.rb +33 -0
  39. data/lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_range_step.rb +35 -0
  40. data/lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step.rb +32 -0
  41. data/lib/csvtool/interface/cli/workflows/steps/row_extraction/execute_step.rb +43 -0
  42. data/lib/csvtool/interface/cli/workflows/steps/row_extraction/read_headers_step.rb +29 -0
  43. data/lib/csvtool/interface/cli/workflows/steps/row_randomization/collect_destination_step.rb +34 -0
  44. data/lib/csvtool/interface/cli/workflows/steps/row_randomization/collect_inputs_step.rb +49 -0
  45. data/lib/csvtool/interface/cli/workflows/steps/row_randomization/execute_step.rb +37 -0
  46. data/lib/csvtool/interface/cli/workflows/steps/workflow_step_pipeline.rb +25 -0
  47. data/lib/csvtool/interface/cli/workflows/support/output_destination_mapper.rb +23 -0
  48. data/lib/csvtool/interface/cli/workflows/support/result_error_handler.rb +22 -0
  49. data/lib/csvtool/version.rb +1 -1
  50. data/test/csvtool/application/use_cases/io_boundary_test.rb +26 -0
  51. data/test/csvtool/application/use_cases/run_cross_csv_dedupe_test.rb +28 -0
  52. data/test/csvtool/application/use_cases/run_extraction_test.rb +72 -16
  53. data/test/csvtool/application/use_cases/run_row_extraction_test.rb +82 -102
  54. data/test/csvtool/application/use_cases/run_row_randomization_test.rb +96 -86
  55. data/test/csvtool/infrastructure/output/csv_cross_csv_dedupe_file_writer_test.rb +32 -0
  56. data/test/csvtool/infrastructure/output/csv_file_writer_test.rb +0 -4
  57. data/test/csvtool/infrastructure/output/csv_randomized_row_file_writer_test.rb +32 -0
  58. data/test/csvtool/infrastructure/output/csv_row_file_writer_test.rb +1 -4
  59. data/test/csvtool/interface/cli/prompts/dedupe_key_selector_prompt_test.rb +30 -0
  60. data/test/csvtool/interface/cli/prompts/file_path_prompt_test.rb +9 -0
  61. data/test/csvtool/interface/cli/prompts/headers_present_prompt_test.rb +10 -0
  62. data/test/csvtool/interface/cli/prompts/separator_prompt_test.rb +10 -0
  63. data/test/csvtool/interface/cli/prompts/yes_no_prompt_test.rb +22 -0
  64. data/test/csvtool/interface/cli/workflows/builders/column_session_builder_test.rb +17 -0
  65. data/test/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder_test.rb +36 -0
  66. data/test/csvtool/interface/cli/workflows/builders/row_extraction_session_builder_test.rb +21 -0
  67. data/test/csvtool/interface/cli/workflows/builders/row_randomization_session_builder_test.rb +26 -0
  68. data/test/csvtool/interface/cli/workflows/presenters/column_extraction_presenter_test.rb +24 -0
  69. data/test/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter_test.rb +30 -0
  70. data/test/csvtool/interface/cli/workflows/presenters/row_extraction_presenter_test.rb +33 -0
  71. data/test/csvtool/interface/cli/workflows/presenters/row_randomization_presenter_test.rb +33 -0
  72. data/test/csvtool/interface/cli/workflows/run_extraction_workflow_test.rb +56 -0
  73. data/test/csvtool/interface/cli/workflows/run_row_extraction_workflow_test.rb +83 -0
  74. data/test/csvtool/interface/cli/workflows/run_row_randomization_workflow_test.rb +69 -0
  75. data/test/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step_test.rb +41 -0
  76. data/test/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step_test.rb +66 -0
  77. data/test/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step_test.rb +39 -0
  78. data/test/csvtool/interface/cli/workflows/steps/row_extraction/execute_step_test.rb +91 -0
  79. data/test/csvtool/interface/cli/workflows/steps/row_extraction/read_headers_step_test.rb +57 -0
  80. data/test/csvtool/interface/cli/workflows/steps/row_randomization/collect_inputs_step_test.rb +37 -0
  81. data/test/csvtool/interface/cli/workflows/steps/workflow_step_pipeline_test.rb +30 -0
  82. data/test/csvtool/interface/cli/workflows/support/output_destination_mapper_test.rb +23 -0
  83. data/test/csvtool/interface/cli/workflows/support/result_error_handler_test.rb +34 -0
  84. metadata +60 -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.4.0.alpha
4
+ version: 0.5.0.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Hall
@@ -72,6 +72,7 @@ files:
72
72
  - docs/release-v0.2.0-alpha.md
73
73
  - docs/release-v0.3.0-alpha.md
74
74
  - docs/release-v0.4.0-alpha.md
75
+ - docs/release-v0.5.0-alpha.md
75
76
  - exe/csvtool
76
77
  - lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb
77
78
  - lib/csvtool/application/use_cases/run_extraction.rb
@@ -104,22 +105,56 @@ files:
104
105
  - lib/csvtool/infrastructure/csv/selector_validator.rb
105
106
  - lib/csvtool/infrastructure/csv/value_streamer.rb
106
107
  - lib/csvtool/infrastructure/output/console_writer.rb
108
+ - lib/csvtool/infrastructure/output/csv_cross_csv_dedupe_file_writer.rb
107
109
  - lib/csvtool/infrastructure/output/csv_file_writer.rb
110
+ - lib/csvtool/infrastructure/output/csv_randomized_row_file_writer.rb
108
111
  - lib/csvtool/infrastructure/output/csv_row_console_writer.rb
109
112
  - lib/csvtool/infrastructure/output/csv_row_file_writer.rb
110
113
  - lib/csvtool/interface/cli/errors/presenter.rb
111
114
  - lib/csvtool/interface/cli/menu_loop.rb
112
115
  - lib/csvtool/interface/cli/prompts/column_selector_prompt.rb
113
116
  - lib/csvtool/interface/cli/prompts/confirm_prompt.rb
117
+ - lib/csvtool/interface/cli/prompts/dedupe_key_selector_prompt.rb
114
118
  - lib/csvtool/interface/cli/prompts/file_path_prompt.rb
115
119
  - lib/csvtool/interface/cli/prompts/headers_present_prompt.rb
116
120
  - lib/csvtool/interface/cli/prompts/output_destination_prompt.rb
117
121
  - lib/csvtool/interface/cli/prompts/seed_prompt.rb
118
122
  - lib/csvtool/interface/cli/prompts/separator_prompt.rb
119
123
  - lib/csvtool/interface/cli/prompts/skip_blanks_prompt.rb
124
+ - lib/csvtool/interface/cli/prompts/yes_no_prompt.rb
125
+ - lib/csvtool/interface/cli/workflows/builders/column_session_builder.rb
126
+ - lib/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder.rb
127
+ - lib/csvtool/interface/cli/workflows/builders/row_extraction_session_builder.rb
128
+ - lib/csvtool/interface/cli/workflows/builders/row_randomization_session_builder.rb
129
+ - lib/csvtool/interface/cli/workflows/presenters/column_extraction_presenter.rb
130
+ - lib/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter.rb
131
+ - lib/csvtool/interface/cli/workflows/presenters/row_extraction_presenter.rb
132
+ - lib/csvtool/interface/cli/workflows/presenters/row_randomization_presenter.rb
120
133
  - lib/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow.rb
134
+ - lib/csvtool/interface/cli/workflows/run_extraction_workflow.rb
135
+ - lib/csvtool/interface/cli/workflows/run_row_extraction_workflow.rb
136
+ - lib/csvtool/interface/cli/workflows/run_row_randomization_workflow.rb
137
+ - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step.rb
138
+ - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_profiles_step.rb
139
+ - lib/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/execute_step.rb
140
+ - lib/csvtool/interface/cli/workflows/steps/extraction/build_preview_step.rb
141
+ - lib/csvtool/interface/cli/workflows/steps/extraction/collect_destination_step.rb
142
+ - lib/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step.rb
143
+ - lib/csvtool/interface/cli/workflows/steps/extraction/execute_step.rb
144
+ - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_destination_step.rb
145
+ - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_range_step.rb
146
+ - lib/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step.rb
147
+ - lib/csvtool/interface/cli/workflows/steps/row_extraction/execute_step.rb
148
+ - lib/csvtool/interface/cli/workflows/steps/row_extraction/read_headers_step.rb
149
+ - lib/csvtool/interface/cli/workflows/steps/row_randomization/collect_destination_step.rb
150
+ - lib/csvtool/interface/cli/workflows/steps/row_randomization/collect_inputs_step.rb
151
+ - lib/csvtool/interface/cli/workflows/steps/row_randomization/execute_step.rb
152
+ - lib/csvtool/interface/cli/workflows/steps/workflow_step_pipeline.rb
153
+ - lib/csvtool/interface/cli/workflows/support/output_destination_mapper.rb
154
+ - lib/csvtool/interface/cli/workflows/support/result_error_handler.rb
121
155
  - lib/csvtool/services/preview_builder.rb
122
156
  - lib/csvtool/version.rb
157
+ - test/csvtool/application/use_cases/io_boundary_test.rb
123
158
  - test/csvtool/application/use_cases/run_cross_csv_dedupe_test.rb
124
159
  - test/csvtool/application/use_cases/run_extraction_test.rb
125
160
  - test/csvtool/application/use_cases/run_row_extraction_test.rb
@@ -152,20 +187,44 @@ files:
152
187
  - test/csvtool/infrastructure/csv/selector_validator_test.rb
153
188
  - test/csvtool/infrastructure/csv/value_streamer_test.rb
154
189
  - test/csvtool/infrastructure/output/console_writer_test.rb
190
+ - test/csvtool/infrastructure/output/csv_cross_csv_dedupe_file_writer_test.rb
155
191
  - test/csvtool/infrastructure/output/csv_file_writer_test.rb
192
+ - test/csvtool/infrastructure/output/csv_randomized_row_file_writer_test.rb
156
193
  - test/csvtool/infrastructure/output/csv_row_console_writer_test.rb
157
194
  - test/csvtool/infrastructure/output/csv_row_file_writer_test.rb
158
195
  - test/csvtool/interface/cli/errors/presenter_test.rb
159
196
  - test/csvtool/interface/cli/menu_loop_test.rb
160
197
  - test/csvtool/interface/cli/prompts/column_selector_prompt_test.rb
161
198
  - test/csvtool/interface/cli/prompts/confirm_prompt_test.rb
199
+ - test/csvtool/interface/cli/prompts/dedupe_key_selector_prompt_test.rb
162
200
  - test/csvtool/interface/cli/prompts/file_path_prompt_test.rb
163
201
  - test/csvtool/interface/cli/prompts/headers_present_prompt_test.rb
164
202
  - test/csvtool/interface/cli/prompts/output_destination_prompt_test.rb
165
203
  - test/csvtool/interface/cli/prompts/seed_prompt_test.rb
166
204
  - test/csvtool/interface/cli/prompts/separator_prompt_test.rb
167
205
  - test/csvtool/interface/cli/prompts/skip_blanks_prompt_test.rb
206
+ - test/csvtool/interface/cli/prompts/yes_no_prompt_test.rb
207
+ - test/csvtool/interface/cli/workflows/builders/column_session_builder_test.rb
208
+ - test/csvtool/interface/cli/workflows/builders/cross_csv_dedupe_session_builder_test.rb
209
+ - test/csvtool/interface/cli/workflows/builders/row_extraction_session_builder_test.rb
210
+ - test/csvtool/interface/cli/workflows/builders/row_randomization_session_builder_test.rb
211
+ - test/csvtool/interface/cli/workflows/presenters/column_extraction_presenter_test.rb
212
+ - test/csvtool/interface/cli/workflows/presenters/cross_csv_dedupe_presenter_test.rb
213
+ - test/csvtool/interface/cli/workflows/presenters/row_extraction_presenter_test.rb
214
+ - test/csvtool/interface/cli/workflows/presenters/row_randomization_presenter_test.rb
168
215
  - test/csvtool/interface/cli/workflows/run_cross_csv_dedupe_workflow_test.rb
216
+ - test/csvtool/interface/cli/workflows/run_extraction_workflow_test.rb
217
+ - test/csvtool/interface/cli/workflows/run_row_extraction_workflow_test.rb
218
+ - test/csvtool/interface/cli/workflows/run_row_randomization_workflow_test.rb
219
+ - test/csvtool/interface/cli/workflows/steps/cross_csv_dedupe/collect_options_step_test.rb
220
+ - test/csvtool/interface/cli/workflows/steps/extraction/collect_inputs_step_test.rb
221
+ - test/csvtool/interface/cli/workflows/steps/row_extraction/collect_source_step_test.rb
222
+ - test/csvtool/interface/cli/workflows/steps/row_extraction/execute_step_test.rb
223
+ - test/csvtool/interface/cli/workflows/steps/row_extraction/read_headers_step_test.rb
224
+ - test/csvtool/interface/cli/workflows/steps/row_randomization/collect_inputs_step_test.rb
225
+ - test/csvtool/interface/cli/workflows/steps/workflow_step_pipeline_test.rb
226
+ - test/csvtool/interface/cli/workflows/support/output_destination_mapper_test.rb
227
+ - test/csvtool/interface/cli/workflows/support/result_error_handler_test.rb
169
228
  - test/csvtool/services/preview_builder_test.rb
170
229
  - test/fixtures/dedupe_reference.csv
171
230
  - test/fixtures/dedupe_reference.tsv