dsu 2.4.2 → 2.4.4

Sign up to get free protection for your applications and to get access to all the features.
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.2
4
+ version: 2.4.4
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-06 00:00:00.000000000 Z
11
+ date: 2024-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -56,20 +56,20 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.8.1
59
+ version: '1.1'
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '1.0'
62
+ version: '2.0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.8.1
69
+ version: '1.1'
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '1.0'
72
+ version: '2.0'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: os
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -130,14 +130,13 @@ dependencies:
130
130
  - - "<"
131
131
  - !ruby/object:Gem::Version
132
132
  version: '2.0'
133
- description: " Get ready to jazz and snazz up your daily stand-ups with dsu, the
134
- agile developer's new best friend! This handy command-line gem is all about making
135
- your Daily Stand-Up (DSU) participation smooth, fun, and super efficient. Effortlessly
136
- create, update, and organize your DSU entries, turning the task of tracking and
137
- sharing your daily activities into a breeze. With its intuitive interface and smart
138
- date management, dsu ensures you’re always ready to inform your team about your
139
- recent progress and upcoming plans. Perfect for command-line tool enthusiasts, dsu
140
- brings a dash of simplicity and fun, fun, fun to your daily agile routine!\n"
133
+ description: |2
134
+ dsu is ruby gem that enables anyone practicing Agile methodology to record, keep track of, and manage their daily standup (DSU) activities.
135
+
136
+ * dsu uses no network connections whatsoever.
137
+ * dsu stores all of its data locally, in .json files.
138
+ * dsu is a simple (but powerful) command-line tool for users who love to work within the terminal.
139
+ * dsu versioning follows the semantic versioning standard (MAJOR.MINOR.PATCH).
141
140
  email:
142
141
  - public.gma@gmail.com
143
142
  executables:
@@ -169,7 +168,6 @@ files:
169
168
  - lib/dsu/cli.rb
170
169
  - lib/dsu/command_services/add_entry_service.rb
171
170
  - lib/dsu/crud/json_file.rb
172
- - lib/dsu/crud/raw_json_file.rb
173
171
  - lib/dsu/env.rb
174
172
  - lib/dsu/migration/service.rb
175
173
  - lib/dsu/migration/version.rb
@@ -183,6 +181,10 @@ files:
183
181
  - lib/dsu/presenters/color_theme_presenter.rb
184
182
  - lib/dsu/presenters/color_theme_show_presenter.rb
185
183
  - lib/dsu/presenters/configuration_presenter.rb
184
+ - lib/dsu/presenters/entry_group/list/date_presenter.rb
185
+ - lib/dsu/presenters/entry_group/list/dates_presenter.rb
186
+ - lib/dsu/presenters/entry_group/list/messages.rb
187
+ - lib/dsu/presenters/entry_group/list/nothing_to_list.rb
186
188
  - lib/dsu/presenters/entry_group_presenter.rb
187
189
  - lib/dsu/presenters/entry_presenter.rb
188
190
  - lib/dsu/presenters/export/all_presenter.rb
@@ -229,7 +231,6 @@ files:
229
231
  - lib/dsu/support/command_options/time_mnemonics.rb
230
232
  - lib/dsu/support/descriptable.rb
231
233
  - lib/dsu/support/entry_group_browsable.rb
232
- - lib/dsu/support/entry_group_viewable.rb
233
234
  - lib/dsu/support/field_errors.rb
234
235
  - lib/dsu/support/fileable.rb
235
236
  - lib/dsu/support/presentable.rb
@@ -247,6 +248,7 @@ files:
247
248
  - lib/dsu/views/color_theme/show.rb
248
249
  - lib/dsu/views/configuration/show.rb
249
250
  - lib/dsu/views/entry_group/edit.rb
251
+ - lib/dsu/views/entry_group/list.rb
250
252
  - lib/dsu/views/entry_group/shared/no_entries_to_display.rb
251
253
  - lib/dsu/views/entry_group/shared/no_entries_to_display_for_month_of.rb
252
254
  - lib/dsu/views/entry_group/shared/no_entries_to_display_for_week_of.rb
@@ -290,25 +292,28 @@ post_install_message: |
290
292
  View the dsu README.md here: https://github.com/gangelo/dsu
291
293
  View the dsu CHANGELOG.md: https://github.com/gangelo/dsu/blob/main/CHANGELOG.md
292
294
 
293
- Dsu now has a import command! Try it out by running `dsu import help`.
294
- Dsu now has a export command! Try it out by running `dsu export help`.
295
- Dsu now has a browse command! Try it out by running `dsu browse help`.
296
- Dsu now has a "light" theme for light background terminals! Try it out by running `dsu theme use light`.
297
- Dsu now has a delete command! Try it out by running `dsu delete help`.
295
+ *
296
+ ***
297
+ *******
298
+ *********
299
+ ***********************
300
+ *****************
301
+ *************
302
+ ******* *******
303
+ ***** *****
304
+ *** ***
305
+ ** **
298
306
 
299
- Try a dsu theme by running `dsu theme list` and then `dsu theme use THEME_NAME` where THEME_NAME is the name of the theme you want to try.
307
+ Using dsu? dsu is made available free of charge. Please consider giving dsu a STAR on GitHub as well as sharing dsu with your fellow developers on social media.
300
308
 
301
- :)
309
+ Knowing that dsu is being used and appreciated is a great motivator to continue developing and improving dsu.
302
310
 
303
- Happy New Year 2024 from dsu!
311
+ >>> Star it on github: https://github.com/gangelo/dsu
312
+ >>> Share on social media: https://rubygems.org/gems/dsu
304
313
 
305
- * * *
306
- * * . * . *
307
- * * * * * *
308
- * * * * *
309
- * * *
314
+ Thank you!
310
315
 
311
- May your year be filled with sparks of joy and innovation!
316
+ <3 Gene
312
317
  rdoc_options: []
313
318
  require_paths:
314
319
  - lib
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fileutils'
4
-
5
- module Dsu
6
- module Crud
7
- module RawJsonFile
8
- class << self
9
- def delete(file_path:)
10
- return false unless exist?(file_path: file_path)
11
-
12
- File.delete(file_path)
13
-
14
- true
15
- end
16
-
17
- def delete!(file_path:)
18
- raise file_does_not_exist_message(file_path: file_path) unless delete(file_path: file_path)
19
- end
20
-
21
- def exist?(file_path:)
22
- File.exist?(file_path)
23
- end
24
-
25
- def read(file_path:)
26
- File.read(file_path) if exist?(file_path: file_path)
27
- end
28
-
29
- def read!(file_path:)
30
- raise file_does_not_exist_message(file_path: file_path) unless exist?(file_path: file_path)
31
-
32
- read(file_path: file_path)
33
- end
34
-
35
- def write(file_data:, file_path:)
36
- raise ArgumentError, 'file_data is nil' if file_data.nil?
37
- raise ArgumentError, "file_data is the wrong object type:\"#{file_data}\"" unless file_data.is_a?(Hash)
38
-
39
- file_data = JSON.pretty_generate(file_data)
40
- File.write(file_path, file_data)
41
- end
42
-
43
- private
44
-
45
- def file_does_not_exist_message(file_path:)
46
- "File \"#{file_path}\" does not exist"
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Dsu
4
- module Support
5
- module EntryGroupViewable
6
- def view_entry_groups(times:, options: {})
7
- raise ArgumentError, 'times must be an Array' unless times.is_a?(Array)
8
- raise ArgumentError, 'options must be a Hash' unless options.is_a?(Hash)
9
-
10
- total_viewable_entry_groups = 0
11
-
12
- times.each do |time|
13
- view_entry_group(time: time, options: options) do
14
- total_viewable_entry_groups += 1
15
- puts
16
- end
17
- end
18
-
19
- total_unviewable_entry_groups = times.size - total_viewable_entry_groups
20
- yield total_viewable_entry_groups, total_unviewable_entry_groups if block_given?
21
- end
22
-
23
- def view_entry_group(time:, options: {})
24
- raise ArgumentError, 'time must be a Time object' unless time.is_a?(Time)
25
- raise ArgumentError, 'options must be a Hash' unless options.is_a?(Hash)
26
-
27
- return unless show_entry_group?(time: time, options: options)
28
-
29
- entry_group = Models::EntryGroup.find_or_initialize(time: time)
30
- Views::EntryGroup::Show.new(entry_group: entry_group).render
31
-
32
- yield if block_given?
33
- end
34
-
35
- # This method will unconditionally display the FIRST and LAST entry groups
36
- # associated with the times provided by the <times> argument. All other
37
- # entry groups will be conditionally displayed based on the :include_all
38
- # value in the <options> argument.
39
- def view_list_for(times:, options:)
40
- configuration = Models::Configuration.new unless defined?(configuration) && configuration
41
- options = configuration.to_h.merge(options).with_indifferent_access
42
- times_first_and_last = [times.first, times.last]
43
- times.each do |time|
44
- view_options = options.dup
45
- view_options[:include_all] = true if times_first_and_last.include?(time)
46
- view_entry_group(time: time, options: view_options) do
47
- puts
48
- end
49
- end
50
- end
51
-
52
- private
53
-
54
- def show_entry_group?(time:, options:)
55
- Models::EntryGroup.exist?(time: time) || options[:include_all]
56
- end
57
-
58
- module_function :view_entry_group, :view_entry_groups, :view_list_for, :show_entry_group?
59
- end
60
- end
61
- end