dsu 2.4.4 → 3.0.0.alpha.0

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +12 -0
  3. data/CHANGELOG.md +42 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.md +2 -2
  6. data/Rakefile +6 -0
  7. data/current_project.bak +4 -0
  8. data/lib/dsu/cli.rb +24 -6
  9. data/lib/dsu/crud/json_file.rb +3 -0
  10. data/lib/dsu/migration/version.rb +1 -1
  11. data/lib/dsu/models/color_theme.rb +7 -58
  12. data/lib/dsu/models/configuration.rb +18 -3
  13. data/lib/dsu/models/entry_group.rb +0 -7
  14. data/lib/dsu/models/migration_version.rb +0 -1
  15. data/lib/dsu/models/project.rb +295 -0
  16. data/lib/dsu/presenters/base_presenter_ex.rb +1 -12
  17. data/lib/dsu/presenters/export/all_presenter.rb +14 -19
  18. data/lib/dsu/presenters/export/dates_presenter.rb +17 -20
  19. data/lib/dsu/presenters/import/all_presenter.rb +20 -25
  20. data/lib/dsu/presenters/import/dates_presenter.rb +25 -27
  21. data/lib/dsu/presenters/import/import_entry.rb +22 -0
  22. data/lib/dsu/presenters/import/import_file.rb +9 -1
  23. data/lib/dsu/presenters/project/create_presenter.rb +44 -0
  24. data/lib/dsu/presenters/project/delete_by_number_presenter.rb +54 -0
  25. data/lib/dsu/presenters/project/delete_presenter.rb +53 -0
  26. data/lib/dsu/presenters/project/list_presenter.rb +24 -0
  27. data/lib/dsu/presenters/project/rename_by_number_presenter.rb +63 -0
  28. data/lib/dsu/presenters/project/rename_presenter.rb +57 -0
  29. data/lib/dsu/presenters/project/use_by_number_presenter.rb +53 -0
  30. data/lib/dsu/presenters/project/use_presenter.rb +52 -0
  31. data/lib/dsu/services/entry_group/exporter_service.rb +22 -5
  32. data/lib/dsu/services/entry_group/importer_service.rb +41 -8
  33. data/lib/dsu/services/project/hydrator_service.rb +40 -0
  34. data/lib/dsu/services/project/rename_service.rb +70 -0
  35. data/lib/dsu/subcommands/export.rb +4 -2
  36. data/lib/dsu/subcommands/import.rb +7 -3
  37. data/lib/dsu/subcommands/project.rb +149 -0
  38. data/lib/dsu/support/ask.rb +10 -3
  39. data/lib/dsu/support/color_themable.rb +1 -1
  40. data/lib/dsu/support/command_hookable.rb +7 -2
  41. data/lib/dsu/support/descriptable.rb +5 -21
  42. data/lib/dsu/support/fileable.rb +39 -1
  43. data/lib/dsu/support/project_file_system.rb +121 -0
  44. data/lib/dsu/support/short_string.rb +24 -0
  45. data/lib/dsu/support/time_comparable.rb +2 -0
  46. data/lib/dsu/support/transform_project_name.rb +24 -0
  47. data/lib/dsu/validators/project_name_validator.rb +58 -0
  48. data/lib/dsu/version.rb +1 -1
  49. data/lib/dsu/views/base_list_view.rb +41 -0
  50. data/lib/dsu/views/export.rb +60 -6
  51. data/lib/dsu/views/import.rb +83 -7
  52. data/lib/dsu/views/import_dates.rb +17 -0
  53. data/lib/dsu/views/project/create.rb +87 -0
  54. data/lib/dsu/views/project/delete.rb +96 -0
  55. data/lib/dsu/views/project/delete_by_number.rb +19 -0
  56. data/lib/dsu/views/project/list.rb +115 -0
  57. data/lib/dsu/views/project/rename.rb +98 -0
  58. data/lib/dsu/views/project/rename_by_number.rb +21 -0
  59. data/lib/dsu/views/project/use.rb +97 -0
  60. data/lib/dsu/views/project/use_by_number.rb +19 -0
  61. data/lib/dsu.rb +2 -10
  62. data/lib/locales/en/active_record.yml +9 -0
  63. data/lib/locales/en/commands.yml +9 -3
  64. data/lib/locales/en/miscellaneous.yml +4 -0
  65. data/lib/locales/en/services.yml +4 -0
  66. data/lib/locales/en/subcommands.yml +247 -15
  67. data/project.bak +0 -0
  68. metadata +34 -9
  69. data/lib/dsu/presenters/export/messages.rb +0 -32
  70. data/lib/dsu/presenters/export/nothing_to_export.rb +0 -13
  71. data/lib/dsu/presenters/export/service_callable.rb +0 -20
  72. data/lib/dsu/presenters/import/messages.rb +0 -42
  73. data/lib/dsu/presenters/import/service_callable.rb +0 -21
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsu
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.4
4
+ version: 3.0.0.alpha.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene M. Angelo, Jr.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-28 00:00:00.000000000 Z
11
+ date: 2024-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -159,6 +159,7 @@ files:
159
159
  - bin/console
160
160
  - bin/dsu
161
161
  - bin/setup
162
+ - current_project.bak
162
163
  - exe/dsu
163
164
  - lib/core/ruby/color_theme_colors.rb
164
165
  - lib/core/ruby/color_theme_mode.rb
@@ -176,6 +177,7 @@ files:
176
177
  - lib/dsu/models/entry.rb
177
178
  - lib/dsu/models/entry_group.rb
178
179
  - lib/dsu/models/migration_version.rb
180
+ - lib/dsu/models/project.rb
179
181
  - lib/dsu/presenters/base_presenter.rb
180
182
  - lib/dsu/presenters/base_presenter_ex.rb
181
183
  - lib/dsu/presenters/color_theme_presenter.rb
@@ -189,14 +191,18 @@ files:
189
191
  - lib/dsu/presenters/entry_presenter.rb
190
192
  - lib/dsu/presenters/export/all_presenter.rb
191
193
  - lib/dsu/presenters/export/dates_presenter.rb
192
- - lib/dsu/presenters/export/messages.rb
193
- - lib/dsu/presenters/export/nothing_to_export.rb
194
- - lib/dsu/presenters/export/service_callable.rb
195
194
  - lib/dsu/presenters/import/all_presenter.rb
196
195
  - lib/dsu/presenters/import/dates_presenter.rb
196
+ - lib/dsu/presenters/import/import_entry.rb
197
197
  - lib/dsu/presenters/import/import_file.rb
198
- - lib/dsu/presenters/import/messages.rb
199
- - lib/dsu/presenters/import/service_callable.rb
198
+ - lib/dsu/presenters/project/create_presenter.rb
199
+ - lib/dsu/presenters/project/delete_by_number_presenter.rb
200
+ - lib/dsu/presenters/project/delete_presenter.rb
201
+ - lib/dsu/presenters/project/list_presenter.rb
202
+ - lib/dsu/presenters/project/rename_by_number_presenter.rb
203
+ - lib/dsu/presenters/project/rename_presenter.rb
204
+ - lib/dsu/presenters/project/use_by_number_presenter.rb
205
+ - lib/dsu/presenters/project/use_presenter.rb
200
206
  - lib/dsu/services/color_theme/hydrator_service.rb
201
207
  - lib/dsu/services/configuration/hydrator_service.rb
202
208
  - lib/dsu/services/entry/hydrator_service.rb
@@ -208,6 +214,8 @@ files:
208
214
  - lib/dsu/services/entry_group/hydrator_service.rb
209
215
  - lib/dsu/services/entry_group/importer_service.rb
210
216
  - lib/dsu/services/migration_version/hydrator_service.rb
217
+ - lib/dsu/services/project/hydrator_service.rb
218
+ - lib/dsu/services/project/rename_service.rb
211
219
  - lib/dsu/services/stderr_redirector_service.rb
212
220
  - lib/dsu/services/stdout_redirector_service.rb
213
221
  - lib/dsu/services/temp_file/reader_service.rb
@@ -220,6 +228,7 @@ files:
220
228
  - lib/dsu/subcommands/export.rb
221
229
  - lib/dsu/subcommands/import.rb
222
230
  - lib/dsu/subcommands/list.rb
231
+ - lib/dsu/subcommands/project.rb
223
232
  - lib/dsu/subcommands/theme.rb
224
233
  - lib/dsu/support/ask.rb
225
234
  - lib/dsu/support/color_themable.rb
@@ -234,16 +243,21 @@ files:
234
243
  - lib/dsu/support/field_errors.rb
235
244
  - lib/dsu/support/fileable.rb
236
245
  - lib/dsu/support/presentable.rb
246
+ - lib/dsu/support/project_file_system.rb
247
+ - lib/dsu/support/short_string.rb
237
248
  - lib/dsu/support/time_comparable.rb
238
249
  - lib/dsu/support/time_formatable.rb
239
250
  - lib/dsu/support/times_sortable.rb
251
+ - lib/dsu/support/transform_project_name.rb
240
252
  - lib/dsu/support/utils.rb
241
253
  - lib/dsu/validators/color_theme_validator.rb
242
254
  - lib/dsu/validators/description_validator.rb
243
255
  - lib/dsu/validators/entries_validator.rb
256
+ - lib/dsu/validators/project_name_validator.rb
244
257
  - lib/dsu/validators/time_validator.rb
245
258
  - lib/dsu/validators/version_validator.rb
246
259
  - lib/dsu/version.rb
260
+ - lib/dsu/views/base_list_view.rb
247
261
  - lib/dsu/views/color_theme/index.rb
248
262
  - lib/dsu/views/color_theme/show.rb
249
263
  - lib/dsu/views/configuration/show.rb
@@ -256,6 +270,15 @@ files:
256
270
  - lib/dsu/views/entry_group/show.rb
257
271
  - lib/dsu/views/export.rb
258
272
  - lib/dsu/views/import.rb
273
+ - lib/dsu/views/import_dates.rb
274
+ - lib/dsu/views/project/create.rb
275
+ - lib/dsu/views/project/delete.rb
276
+ - lib/dsu/views/project/delete_by_number.rb
277
+ - lib/dsu/views/project/list.rb
278
+ - lib/dsu/views/project/rename.rb
279
+ - lib/dsu/views/project/rename_by_number.rb
280
+ - lib/dsu/views/project/use.rb
281
+ - lib/dsu/views/project/use_by_number.rb
259
282
  - lib/dsu/views/shared/error.rb
260
283
  - lib/dsu/views/shared/info.rb
261
284
  - lib/dsu/views/shared/message.rb
@@ -275,12 +298,14 @@ files:
275
298
  - lib/seed_data/themes/light.json
276
299
  - lib/seed_data/themes/matrix.json
277
300
  - lib/seed_data/themes/whiteout.json
301
+ - project.bak
278
302
  - sig/dsu.rbs
279
303
  homepage: https://github.com/gangelo/dsu
280
304
  licenses:
281
305
  - MIT
282
306
  metadata:
283
307
  homepage_uri: https://github.com/gangelo/dsu
308
+ documentation_uri: https://github.com/gangelo/dsu/wiki
284
309
  source_code_uri: https://github.com/gangelo/dsu
285
310
  changelog_uri: https://github.com/gangelo/dsu/blob/main/CHANGELOG.md
286
311
  rubygems_mfa_required: 'true'
@@ -327,9 +352,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
327
352
  version: '4.0'
328
353
  required_rubygems_version: !ruby/object:Gem::Requirement
329
354
  requirements:
330
- - - ">="
355
+ - - ">"
331
356
  - !ruby/object:Gem::Version
332
- version: '0'
357
+ version: 1.3.1
333
358
  requirements: []
334
359
  rubygems_version: 3.2.15
335
360
  signing_key:
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Dsu
4
- module Presenters
5
- module Export
6
- module Messages
7
- def display_export_prompt
8
- raise NotImplementedError
9
- end
10
-
11
- def display_nothing_to_export_message
12
- puts apply_theme(I18n.t('subcommands.export.messages.nothing_to_export'), theme_color: color_theme.info)
13
- end
14
-
15
- private
16
-
17
- def display_cancelled_message
18
- puts apply_theme(I18n.t('subcommands.export.messages.cancelled'), theme_color: color_theme.info)
19
- end
20
-
21
- def display_exported_message
22
- puts apply_theme(I18n.t('subcommands.export.messages.exported'), theme_color: color_theme.success)
23
- end
24
-
25
- def display_exported_to_message(file_path:)
26
- puts apply_theme(I18n.t('subcommands.export.messages.exported_to', file_path: file_path),
27
- theme_color: color_theme.success)
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Dsu
4
- module Presenters
5
- module Export
6
- module NothingToExport
7
- def nothing_to_export?
8
- entry_groups.empty?
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../services/entry_group/exporter_service'
4
-
5
- module Dsu
6
- module Presenters
7
- module Export
8
- module ServiceCallable
9
- private
10
-
11
- def exporter_service_call
12
- @exporter_service_call ||= begin
13
- exporter_service = Services::EntryGroup::ExporterService.new(entry_groups: entry_groups, options: options)
14
- exporter_service.call
15
- end
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Dsu
4
- module Presenters
5
- module Import
6
- module Messages
7
- def display_import_prompt
8
- raise NotImplementedError
9
- end
10
-
11
- def display_import_file_not_exist_message
12
- puts apply_theme(I18n.t('subcommands.import.messages.file_not_exist',
13
- file_path: import_file_path), theme_color: color_theme.info)
14
- end
15
-
16
- def display_nothing_to_import_message
17
- puts apply_theme(I18n.t('subcommands.import.messages.nothing_to_import'), theme_color: color_theme.info)
18
- end
19
-
20
- private
21
-
22
- def display_cancelled_message
23
- puts apply_theme(I18n.t('subcommands.import.messages.cancelled'), theme_color: color_theme.info)
24
- end
25
-
26
- def display_import_messages(import_results)
27
- import_results.each_pair do |entry_group_date, errors|
28
- if errors.empty?
29
- puts apply_theme(I18n.t('subcommands.import.messages.import_success',
30
- date: entry_group_date), theme_color: color_theme.success)
31
- else
32
- errors.each do |error|
33
- puts apply_theme(I18n.t('subcommands.import.messages.import_error',
34
- date: entry_group_date, error: error), theme_color: color_theme.error)
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../services/entry_group/importer_service'
4
-
5
- module Dsu
6
- module Presenters
7
- module Import
8
- module ServiceCallable
9
- private
10
-
11
- def importer_service_call
12
- @importer_service_call ||= begin
13
- importer_service = Services::EntryGroup::ImporterService.new(import_entry_groups: import_entry_groups,
14
- options: options)
15
- importer_service.call
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end