dsu 2.4.4 → 3.0.0.alpha.0

Sign up to get free protection for your applications and to get access to all the features.
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