work-md 0.4.9 → 0.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3333dbe54859ef57acade3b997c337b6994b64e681369e782e39a80fb478632d
4
- data.tar.gz: e7de4d34bf2c5eb846fa160bf0cff93250216dbc45daa6b26035ac3a3784ede6
3
+ metadata.gz: 3d5e21c69cc41b278d4870086d59dc52883f9d0d3aebcad590b510413a97fd92
4
+ data.tar.gz: bf7fd2d7acd76b9456c1c48d398e1dab690afb09ae248130afe1d5bc9457ae12
5
5
  SHA512:
6
- metadata.gz: 3ea36e20ab31b4237157d55327978cba6c64c3b4f02df9987fcb56993b1af1826fa7ed5dbe2371ee83a0e06d6e2987126010e34351694f6fdb2538c68bafc356
7
- data.tar.gz: 9bb98607f7e1ed8d426164b5b28a8f0406160405706adb3f2bbfcb90af6cb4cfe860b35672d147742f47fa9c89c665f4582f6a43fe4e229374ea901122f7cca3
6
+ metadata.gz: 7a4978310f5503c1543fea0c11e42eb8af30edf4489341466f499ed44219f802a581ececa7d25fc0898d8c0f5dff7b436bc1d8af281bfe70bce91ffffe907b34
7
+ data.tar.gz: 5b27d39cdcb63abb767c41d7e67f6096d53099f382b1f7576a39f44441f290126ad545c6e0d673dd7f68311739b7953e50195c68a2f7f3a180f9c1a36284acc9
data/bin/work-md.rb CHANGED
@@ -4,4 +4,4 @@
4
4
  require_relative '../lib/work/md'
5
5
  # require 'work/md'
6
6
 
7
- Work::Md::Cli.execute(ARGV)
7
+ Work::Md::Cli.execute(ARGV, development: true)
data/lib/work/md/cli.rb CHANGED
@@ -21,7 +21,7 @@ module Work
21
21
  'tl' => 'tlast'
22
22
  }.freeze
23
23
 
24
- def self.execute(argv)
24
+ def self.execute(argv, development: false)
25
25
  first_argv_argument = argv.shift
26
26
  tag = fetch_argv_keys(argv)['tag']
27
27
 
@@ -70,6 +70,7 @@ module Work
70
70
  '- work-md parse',
71
71
  '- work-md plast',
72
72
  '- work-md annotations',
73
+ '- work-md daily',
73
74
  '- work-md open',
74
75
  '- work-md config',
75
76
  '',
@@ -26,8 +26,7 @@ module Work
26
26
  end
27
27
 
28
28
  ::Work::Md::File.open_in_editor(
29
- [file_name],
30
- dir: work_dir
29
+ [file_name]
31
30
  )
32
31
  end
33
32
  end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Work
4
+ module Md
5
+ module Commands
6
+ class Daily
7
+ class << self
8
+ def execute(_argv = [])
9
+ last_date = Date.today.prev_day
10
+ work_dir = Work::Md::Config.work_dir
11
+ last_file_name = nil
12
+
13
+ (1..160).each do
14
+ last_file_name = "#{last_date.strftime('%Y/%m/%d')}.md"
15
+ break if ::File.exist?("#{work_dir}/#{last_file_name}")
16
+
17
+ last_date = last_date.prev_day
18
+ end
19
+
20
+ today_file_name = Work::Md::DateFile.create_if_not_exist(DateTime.now)
21
+
22
+ parser_today = Work::Md::Parser::Engine.new
23
+ parser_today.add_file("#{work_dir}/#{today_file_name}")
24
+ parser_today.freeze
25
+
26
+ parser_last_day = Work::Md::Parser::Engine.new
27
+ parser_last_day.add_file("#{work_dir}/#{last_file_name}")
28
+ parser_last_day.freeze
29
+
30
+ daily_file_path = work_dir + '/daily.md'
31
+ ::File.delete(daily_file_path) if ::File.exist? daily_file_path
32
+
33
+ t = Work::Md::Config.translations
34
+
35
+ ajust_line = lambda do |line|
36
+ get_first_line = ->(multiline_string) do
37
+ lines = multiline_string.split("\n")
38
+ first_line = lines.first
39
+ return first_line
40
+ end
41
+
42
+ get_first_line.call(line.sub('x]', '-').sub(']', '-'))
43
+ end
44
+
45
+ ::File.open(daily_file_path, 'w+') do |f|
46
+ f.puts("📅 Daily\n\n")
47
+ f.puts("#{t[:did]}:\n")
48
+ parser_last_day.tasks.each do |task|
49
+ f.puts("#{ajust_line.call(task)}\n") if task != ' ]'
50
+ end
51
+ parser_last_day.meetings.each do |meeting|
52
+ f.puts("#{ajust_line.call(meeting)}\n") if meeting != ' ]'
53
+ end
54
+ f.puts("\n")
55
+ f.puts("#{t[:todo]}:\n")
56
+ parser_today.tasks.each do |task|
57
+ f.puts("#{ajust_line.call(task)}\n") if task != ' ]'
58
+ end
59
+ parser_today.meetings.each do |meeting|
60
+ f.puts("#{ajust_line.call(meeting)}\n") if meeting != ' ]'
61
+ end
62
+ end
63
+
64
+ Work::Md::File.open_in_editor([daily_file_path])
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -17,7 +17,9 @@ module Work
17
17
  pomodoros: 'Pomodoros / Ciclos',
18
18
  per_day: 'por dia',
19
19
  total: 'total',
20
- days_bars: 'Resumo'
20
+ days_bars: 'Resumo',
21
+ did: 'Feito',
22
+ todo: 'Planejado'
21
23
  },
22
24
  'en' =>
23
25
  {
@@ -29,7 +31,9 @@ module Work
29
31
  pomodoros: 'Pomodoros / Cycles',
30
32
  per_day: 'per day',
31
33
  total: 'all',
32
- days_bars: 'Summary'
34
+ days_bars: 'Summary',
35
+ did: 'Done',
36
+ todo: 'To do'
33
37
  },
34
38
  'es' =>
35
39
  {
@@ -41,7 +45,9 @@ module Work
41
45
  pomodoros: 'Pomodoros / Ciclos',
42
46
  per_day: 'por día',
43
47
  total: 'total',
44
- days_bars: 'Abstracto'
48
+ days_bars: 'Abstracto',
49
+ did: 'Hecho',
50
+ todo: 'Planificado'
45
51
  }
46
52
  }.freeze
47
53
 
@@ -12,7 +12,7 @@ module Work
12
12
  def self.list_file_paths_by_argv_query(argv, create_inexistent: false)
13
13
  file_paths = []
14
14
 
15
- argv_keys_to_files = -> (argv_keys, acc_file_paths) {
15
+ argv_keys_to_files = lambda { |argv_keys, acc_file_paths|
16
16
  year = argv_keys['y'] || Time.new.year
17
17
  month = argv_keys['m'] || Time.new.month
18
18
 
@@ -43,8 +43,8 @@ module Work
43
43
  acc_file_paths
44
44
  }
45
45
 
46
- argv.join('#').split('#and#').map { |v| v.split("#") }.each do |args|
47
- argv_keys_to_files.(Work::Md::Cli.fetch_argv_keys(args), file_paths)
46
+ argv.join('#').split('#and#').map { |v| v.split('#') }.each do |args|
47
+ argv_keys_to_files.call(Work::Md::Cli.fetch_argv_keys(args), file_paths)
48
48
  end
49
49
 
50
50
  file_paths
data/lib/work/md/file.rb CHANGED
@@ -6,7 +6,7 @@ module Work
6
6
  def self.create_and_open_parsed(parser)
7
7
  parser.freeze
8
8
 
9
- parsed_file_path = Work::Md::Config.work_dir + '/parsed.md'
9
+ parsed_file_path = "#{Work::Md::Config.work_dir}/parsed.md"
10
10
  t = Work::Md::Config.translations
11
11
 
12
12
  ::File.delete(parsed_file_path) if ::File.exist? parsed_file_path
@@ -219,10 +219,10 @@ module Work
219
219
  return list unless list.is_a?(Array)
220
220
 
221
221
  list
222
- .map { |s| s.gsub('---', '') unless s.nil? }
222
+ .map { |s| s&.gsub('---', '') }
223
223
  .select { |s| (s != "\n\n") && (s != "\n\n\n") }
224
224
  .map(&:strip)
225
- .reject { |s| (s == '') }
225
+ .reject { |s| s == '' }
226
226
  end
227
227
  # rubocop:enable Metrics/CyclomaticComplexity
228
228
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Work
4
4
  module Md
5
- VERSION = '0.4.9'
5
+ VERSION = '0.5.0'
6
6
  end
7
7
  end
data/lib/work/md.rb CHANGED
@@ -17,6 +17,7 @@ require_relative 'md/commands/delete'
17
17
  require_relative 'md/parser/engine'
18
18
  require_relative 'md/commands/parse'
19
19
  require_relative 'md/commands/plast'
20
+ require_relative 'md/commands/daily'
20
21
  require_relative 'md/cli'
21
22
  require 'date'
22
23
  require 'fileutils'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: work-md
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique Fernandez Teixeira
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-09-12 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: tty-box
@@ -52,7 +51,6 @@ dependencies:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
53
  version: 0.23.1
55
- description:
56
54
  email:
57
55
  - hriqueft@gmail.com
58
56
  executables:
@@ -68,6 +66,7 @@ files:
68
66
  - lib/work/md/cli.rb
69
67
  - lib/work/md/commands/annotations.rb
70
68
  - lib/work/md/commands/config.rb
69
+ - lib/work/md/commands/daily.rb
71
70
  - lib/work/md/commands/delete.rb
72
71
  - lib/work/md/commands/last.rb
73
72
  - lib/work/md/commands/open.rb
@@ -83,12 +82,10 @@ files:
83
82
  - lib/work/md/file.rb
84
83
  - lib/work/md/parser/engine.rb
85
84
  - lib/work/md/version.rb
86
- homepage:
87
85
  licenses:
88
86
  - MIT
89
87
  metadata:
90
88
  source_code_uri: https://github.com/work-md/work-md
91
- post_install_message:
92
89
  rdoc_options: []
93
90
  require_paths:
94
91
  - lib
@@ -103,8 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
100
  - !ruby/object:Gem::Version
104
101
  version: '0'
105
102
  requirements: []
106
- rubygems_version: 3.2.22
107
- signing_key:
103
+ rubygems_version: 4.0.6
108
104
  specification_version: 4
109
105
  summary: Track your work activities, write annotations, recap what you did for a week,
110
106
  month or specific days... and much more!