work-md 0.3.6 → 0.3.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06e074c584e95d069fbd320f73857798672c9f72f77400841b72620c2d3d4cc1
4
- data.tar.gz: 33ccf6bebcf8d0e2fdd54bb8a7071e35146fd608621fd4679e7f097b17a44ff0
3
+ metadata.gz: e3e5c50b3a58fbb2102a71ad9775bdda5a038e04b3de55239374687f8bf20ec3
4
+ data.tar.gz: 6d22a2e28863587fa77752ae6fa08af6f873a150673387cb8c93df7a35dc4bf2
5
5
  SHA512:
6
- metadata.gz: d815119f5a6b395a27f709ea7f165bb16c817c5de2a669de678619f76f6ea8c76c88b0b8fad6bf4d689f5f10900ae98e69aa0d54fd6456f993b73f3df9ecfb6d
7
- data.tar.gz: 4b2031d4bf1f0a987d6dc3278eeefde64086981c370b23cd3fa978d59aa43573e6245b272ea22c767f3c49884e8db93d868ea494dddb72164f0008986f6ef758
6
+ metadata.gz: 4a98486a920060972642e1f6b2ae2031bf86f9266142e5ea4b35dd414df1cb96c748052286b5d50a8424210cf71d787adb0ead59b562b61cbf0cbadac3854e76
7
+ data.tar.gz: e8ebb85ee0d061208e1160f662e2aeb3ac18810014891908f09beb5d59ed4d5e0aa082f67f99a1af85650f25e52679f6c994a54dc0de44e12bcbc79a5fba2873
@@ -52,44 +52,41 @@ module Work
52
52
  parser.interruptions.each do |interruption|
53
53
  f.puts("- #{interruption}\n")
54
54
  end
55
+ f.puts("\n") if parser.interruptions.size > 0
55
56
  f.puts("---\n\n")
56
57
  f.puts("### #{t[:difficulties]} (#{parser.difficulties.size}):\n\n")
57
58
  parser.difficulties.each do |difficulty|
58
59
  f.puts("- #{difficulty}\n")
59
60
  end
61
+ f.puts("\n") if parser.difficulties.size > 0
60
62
  f.puts("---\n\n")
61
63
  f.puts("### #{t[:observations]} (#{parser.observations.size}):\n\n")
62
64
  parser.observations.each do |observation|
63
65
  f.puts("- #{observation}\n")
64
66
  end
67
+ f.puts("\n") if parser.observations.size > 0
65
68
  f.puts("---\n\n")
66
69
  f.puts("### #{t[:pomodoros]} (#{parser.average_pomodoros} #{t[:per_day]}):\n\n")
67
70
  f.puts("**#{t[:total]}: #{parser.pomodoros_sum}**")
68
- f.puts("\n\n")
71
+ f.puts("\n")
69
72
  parser.pomodoros_bars.each do |pomodoro_bar|
70
73
  f.puts(pomodoro_bar)
71
- f.puts("\n\n")
74
+ f.puts("\n")
72
75
  end
73
76
  f.puts("---\n\n")
74
77
  f.puts("### #{t[:days_bars]}:\n\n")
75
78
  f.puts("**#{t[:pomodoros]}: ⬛ | #{t[:meetings]}: 📅 | #{t[:interruptions]}: ⚠️ | #{t[:difficulties]}: 😓 | #{t[:observations]}: 📝 | #{t[:tasks]}: ✔️**")
76
79
 
77
- f.puts("\n\n")
80
+ f.puts("\n")
78
81
  parser.days_bars.each do |day_bar|
79
82
  f.puts(day_bar)
80
- f.puts("\n\n")
83
+ f.puts("\n")
81
84
  end
82
85
 
83
86
  f.puts("\n\n")
84
87
  end
85
88
 
86
- editor = Work::Md::Config.editor
87
-
88
- if editor.nil?
89
- ::TTY::Editor.open(parsed_file_path)
90
- else
91
- ::TTY::Editor.open(parsed_file_path, command: editor)
92
- end
89
+ Work::Md::File.open_in_editor([parsed_file_path])
93
90
  rescue StandardError => e
94
91
  Work::Md::Cli.help(
95
92
  ::TTY::Box.frame(
@@ -6,7 +6,7 @@ module Work
6
6
  class Today
7
7
  class << self
8
8
  def execute(_argv = [])
9
- Work::Md::File.open_or_create(DateTime.now)
9
+ Work::Md::DateFile.open_or_create(DateTime.now)
10
10
  end
11
11
  end
12
12
  end
@@ -8,7 +8,7 @@ module Work
8
8
  def execute(_argv = [])
9
9
  file_names =
10
10
  [DateTime.now, Date.today.prev_day].map do |date|
11
- Work::Md::File.create_if_not_exist(date)
11
+ Work::Md::DateFile.create_if_not_exist(date)
12
12
  end
13
13
 
14
14
  Work::Md::File.open_in_editor(file_names)
@@ -6,7 +6,7 @@ module Work
6
6
  class Yesterday
7
7
  class << self
8
8
  def execute(_argv = [])
9
- Work::Md::File.open_or_create(Date.today.prev_day)
9
+ Work::Md::DateFile.open_or_create(Date.today.prev_day)
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Work
4
+ module Md
5
+ class DateFile
6
+ def self.open_or_create(some_date, dir: nil)
7
+ Work::Md::File.open_in_editor(
8
+ [create_if_not_exist(some_date, dir: dir)], dir: dir
9
+ )
10
+ end
11
+
12
+ def self.create_if_not_exist(some_date, dir: nil)
13
+ t = Work::Md::Config.translations
14
+ work_dir = dir || Work::Md::Config.work_dir
15
+
16
+ file_name = "#{some_date.strftime('%Y/%m/%d')}.md"
17
+
18
+ return file_name if ::File.exist?("#{work_dir}/#{file_name}")
19
+
20
+ ::FileUtils
21
+ .mkdir_p("#{work_dir}/#{some_date.strftime('%Y/%m')}")
22
+
23
+ ::File.open(
24
+ "#{work_dir}/#{file_name}",
25
+ 'w+'
26
+ ) do |f|
27
+ f.puts("# #{some_date.strftime('%d/%m/%Y')} - #{Work::Md::Config.title} \n\n")
28
+ f.puts("### #{t[:tasks]}:\n\n")
29
+ f.puts("- [ ]\n\n")
30
+ f.puts("---\n\n")
31
+ f.puts("### #{t[:meetings]}:\n\n")
32
+ f.puts("- [ ]\n\n")
33
+ f.puts("---\n\n")
34
+ f.puts("### #{t[:interruptions]}:\n\n")
35
+ f.puts("---\n\n")
36
+ f.puts("### #{t[:difficulties]}:\n\n")
37
+ f.puts("---\n\n")
38
+ f.puts("### #{t[:observations]}:\n\n")
39
+ f.puts("---\n\n")
40
+ f.puts("### #{t[:pomodoros]}:\n\n")
41
+ f.puts("0\n\n")
42
+ end
43
+
44
+ file_name
45
+ end
46
+ end
47
+ end
48
+ end
data/lib/work/md/file.rb CHANGED
@@ -3,45 +3,6 @@
3
3
  module Work
4
4
  module Md
5
5
  class File
6
- def self.open_or_create(some_date, dir: nil)
7
- open_in_editor([create_if_not_exist(some_date, dir: dir)], dir: dir)
8
- end
9
-
10
- def self.create_if_not_exist(some_date, dir: nil)
11
- t = Work::Md::Config.translations
12
- work_dir = dir || Work::Md::Config.work_dir
13
-
14
- file_name = "#{some_date.strftime('%Y/%m/%d')}.md"
15
-
16
- return file_name if ::File.exist?("#{work_dir}/#{file_name}")
17
-
18
- ::FileUtils
19
- .mkdir_p("#{work_dir}/#{some_date.strftime('%Y/%m')}")
20
-
21
- ::File.open(
22
- "#{work_dir}/#{file_name}",
23
- 'w+'
24
- ) do |f|
25
- f.puts("# #{some_date.strftime('%d/%m/%Y')} - #{Work::Md::Config.title} \n\n")
26
- f.puts("### #{t[:tasks]}:\n\n")
27
- f.puts("- [ ]\n\n")
28
- f.puts("---\n\n")
29
- f.puts("### #{t[:meetings]}:\n\n")
30
- f.puts("- [ ]\n\n")
31
- f.puts("---\n\n")
32
- f.puts("### #{t[:interruptions]}:\n\n")
33
- f.puts("---\n\n")
34
- f.puts("### #{t[:difficulties]}:\n\n")
35
- f.puts("---\n\n")
36
- f.puts("### #{t[:observations]}:\n\n")
37
- f.puts("---\n\n")
38
- f.puts("### #{t[:pomodoros]}:\n\n")
39
- f.puts("0\n\n")
40
- end
41
-
42
- file_name
43
- end
44
-
45
6
  def self.open_in_editor(file_names = [], dir: nil)
46
7
  editor = Work::Md::Config.editor
47
8
  work_dir = dir || Work::Md::Config.work_dir
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'byebug'
4
+
3
5
  module Work
4
6
  module Md
5
7
  module Parser
@@ -144,53 +146,65 @@ module Work
144
146
  parsed_file.date =
145
147
  content.split(' - ')[0].gsub('# ', '').gsub("\n\n", '')
146
148
  elsif content.start_with?(@t[:tasks])
147
- parsed_file.tasks = parse_check_list(content)
149
+ parsed_file.tasks = parse_check_list(content, start_with: @t[:tasks])
148
150
  elsif content.start_with?(@t[:meetings])
149
- parsed_file.meetings = parse_check_list(content)
151
+ parsed_file.meetings = parse_check_list(content, start_with: @t[:meetings])
150
152
  elsif content.start_with?(@t[:interruptions])
151
153
  parsed_file.interruptions =
152
- parse_list(content).map do |interruption|
154
+ parse_list(content, start_with: @t[:interruptions]).map do |interruption|
153
155
  "(#{parsed_file.date}) #{interruption}"
154
156
  end
155
157
  elsif content.start_with?(@t[:difficulties])
156
- parsed_file.difficulties = parse_list(content).map do |difficulty|
157
- "(#{parsed_file.date}) #{difficulty}"
158
- end
158
+ parsed_file.difficulties =
159
+ parse_list(
160
+ content, start_with: @t[:difficulties]
161
+ ).map do |difficulty|
162
+ "(#{parsed_file.date}) #{difficulty}"
163
+ end
159
164
  elsif content.start_with?(@t[:observations])
160
- parsed_file.observations = parse_list(content).map do |observations|
161
- "(#{parsed_file.date}) #{observations}"
162
- end
165
+ parsed_file.observations =
166
+ parse_list(
167
+ content, start_with: @t[:observations]
168
+ ).map do |observations|
169
+ "(#{parsed_file.date}) #{observations}"
170
+ end
163
171
  elsif content.start_with?(@t[:pomodoros])
164
- parsed_file.pomodoros = parse_pomodoro(content)
172
+ parsed_file.pomodoros =
173
+ parse_pomodoro(content, start_with: @t[:pomodoros])
165
174
  end
166
175
  end
167
176
  # rubocop:enable Metrics/CyclomaticComplexity
168
177
  # rubocop:enable Metrics/PerceivedComplexity
169
178
 
170
- def parse_check_list(content)
171
- clear_list(basic_parse(content).split('- ['))
179
+ def parse_check_list(content, start_with: nil)
180
+ clear_list(basic_parse(content, start_with: start_with).split('- ['))
172
181
  end
173
182
 
174
- def parse_list(content)
175
- clear_list(basic_parse(content).split('- '))
183
+ def parse_list(content, start_with: nil)
184
+ clear_list(basic_parse(content, start_with: start_with).split('- '))
176
185
  end
177
186
 
178
- def parse_pomodoro(content)
179
- basic_parse(content).scan(/\d+/).first.to_i
187
+ def parse_pomodoro(content, start_with: nil)
188
+ basic_parse(content, start_with: start_with).scan(/\d+/).first.to_i
180
189
  end
181
190
 
182
- def basic_parse(content)
191
+ def basic_parse(content, start_with: nil)
192
+ return content.split("#{start_with}:\n")[1] unless start_with.nil?
193
+
183
194
  content.split(":\n\n")[1]
184
195
  end
185
196
 
197
+ # rubocop:disable Metrics/CyclomaticComplexity
186
198
  def clear_list(list)
187
199
  return list unless list.is_a?(Array)
188
200
 
189
201
  list
190
202
  .map { |s| s.gsub('---', '') unless s.nil? }
191
- .select { |s| (s != '') && (s != "\n\n") }
203
+ .select { |s| (s != "\n\n") && (s != "\n\n\n") }
192
204
  .map(&:strip)
205
+ .reject { |s| (s == '') }
193
206
  end
207
+ # rubocop:enable Metrics/CyclomaticComplexity
194
208
  end
195
209
  # rubocop:enable Metrics/ClassLength
196
210
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Work
4
4
  module Md
5
- VERSION = '0.3.6'
5
+ VERSION = '0.3.7'
6
6
  end
7
7
  end
data/lib/work/md.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require_relative 'md/version'
4
4
  require_relative 'md/config'
5
5
  require_relative 'md/file'
6
+ require_relative 'md/date_file'
6
7
  require_relative 'md/commands/today'
7
8
  require_relative 'md/commands/config'
8
9
  require_relative 'md/commands/yesterday'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: work-md
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique Fernandez Teixeira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-09 00:00:00.000000000 Z
11
+ date: 2021-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-box
@@ -58,6 +58,7 @@ files:
58
58
  - lib/work/md/commands/tyesterday.rb
59
59
  - lib/work/md/commands/yesterday.rb
60
60
  - lib/work/md/config.rb
61
+ - lib/work/md/date_file.rb
61
62
  - lib/work/md/file.rb
62
63
  - lib/work/md/parser/engine.rb
63
64
  - lib/work/md/version.rb