work-md 0.3.7 → 0.4.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 +4 -4
- data/bin/work-md.rb +7 -0
- data/lib/work/md/cli.rb +6 -2
- data/lib/work/md/commands/last.rb +39 -0
- data/lib/work/md/commands/parse.rb +28 -19
- data/lib/work/md/commands/tlast.rb +28 -0
- data/lib/work/md/parser/engine.rb +0 -2
- data/lib/work/md/version.rb +1 -1
- data/lib/work/md.rb +2 -0
- metadata +11 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b2365dee8d1e62694565724b031df8975b11a9eafab0eb2290956915fdfcc89
|
4
|
+
data.tar.gz: d1ef9938b25eb53b38535374872c9d567759c1ddddcee9ad3c54030277453d61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e2a875215334876bc1bd28be738fe2ce8500c8186604e87797439b0f654d0dfce7049ba44f6d6d78a4f5962d72a86674d4d9b5920f1a91d56f40bcff06cc574
|
7
|
+
data.tar.gz: 6b2696a31327292c75b1b62e8f17e1cb9b0cc483cd04f44f416412a73767a20f7f9ebf7baa95117d36382bb81a1e212825cb59a8060034a2f682dc0d959cc946
|
data/bin/work-md.rb
ADDED
data/lib/work/md/cli.rb
CHANGED
@@ -12,7 +12,9 @@ module Work
|
|
12
12
|
'y' => 'yesterday',
|
13
13
|
'c' => 'config',
|
14
14
|
'p' => 'parse',
|
15
|
-
'a' => 'annotations'
|
15
|
+
'a' => 'annotations',
|
16
|
+
'l' => 'last',
|
17
|
+
'tl' => 'tlast'
|
16
18
|
}.freeze
|
17
19
|
|
18
20
|
def self.execute(argv)
|
@@ -27,7 +29,7 @@ module Work
|
|
27
29
|
Object
|
28
30
|
.const_get("Work::Md::Commands::#{command}")
|
29
31
|
.send(:execute, argv)
|
30
|
-
rescue NameError
|
32
|
+
rescue NameError => e
|
31
33
|
puts help(
|
32
34
|
::TTY::Box.frame(
|
33
35
|
"Command '#{first_argv_argument}' not found!",
|
@@ -50,6 +52,8 @@ module Work
|
|
50
52
|
'- work-md today',
|
51
53
|
'- work-md yesterday',
|
52
54
|
'- work-md tyesterday',
|
55
|
+
'- work-md last',
|
56
|
+
'- work-md tlast',
|
53
57
|
'- work-md parse',
|
54
58
|
'- work-md annotations',
|
55
59
|
'- work-md config',
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Work
|
4
|
+
module Md
|
5
|
+
module Commands
|
6
|
+
class Last
|
7
|
+
class << self
|
8
|
+
def execute(_argv = [])
|
9
|
+
found_file = false
|
10
|
+
current_day = Date.today.prev_day
|
11
|
+
work_dir = Work::Md::Config.work_dir
|
12
|
+
|
13
|
+
(1..90).each do
|
14
|
+
|
15
|
+
file_name = "#{current_day.strftime('%Y/%m/%d')}.md"
|
16
|
+
|
17
|
+
if ::File.exist?("#{work_dir}/#{file_name}")
|
18
|
+
Work::Md::File.open_in_editor([file_name])
|
19
|
+
found_file = true
|
20
|
+
break
|
21
|
+
end
|
22
|
+
|
23
|
+
current_day = current_day.prev_day
|
24
|
+
end
|
25
|
+
|
26
|
+
unless found_file
|
27
|
+
Work::Md::Cli.help(
|
28
|
+
::TTY::Box.frame(
|
29
|
+
"message: No file found in last 90 days",
|
30
|
+
**Work::Md::Cli.error_frame_style
|
31
|
+
)
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -7,29 +7,37 @@ module Work
|
|
7
7
|
class << self
|
8
8
|
def execute(argv = [])
|
9
9
|
parsed_file_path = Work::Md::Config.work_dir + '/parsed.md'
|
10
|
-
args = Hash[argv.join(' ').scan(/-?([^=\s]+)(?:=(\S+))?/)]
|
11
|
-
parser = Work::Md::Parser::Engine.new
|
12
10
|
t = Work::Md::Config.translations
|
13
11
|
|
14
|
-
|
15
|
-
|
12
|
+
parser = Work::Md::Parser::Engine.new
|
13
|
+
args_hash_to_parser = -> (args, received_parser) {
|
14
|
+
year = args['y'] || Time.new.year
|
15
|
+
month = args['m'] || Time.new.month
|
16
16
|
|
17
|
-
|
17
|
+
month = "0#{month.to_i}" if month.to_i < 10
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
add_file_to_parser = lambda do |day|
|
20
|
+
day = "0#{day.to_i}" if day.to_i < 10
|
21
21
|
|
22
|
-
|
22
|
+
file_name = Work::Md::Config.work_dir + "/#{year}/#{month}/#{day}.md"
|
23
23
|
|
24
|
-
|
25
|
-
|
24
|
+
received_parser.add_file(file_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
if args['d'].include?('..')
|
28
|
+
range = args['d'].split('..')
|
29
|
+
|
30
|
+
(range[0].to_i..range[1].to_i).each { |day| add_file_to_parser.call(day) }
|
31
|
+
else
|
32
|
+
args['d'].split(',').each { |day| add_file_to_parser.call(day) }
|
33
|
+
end
|
26
34
|
|
27
|
-
|
28
|
-
|
35
|
+
received_parser
|
36
|
+
}
|
29
37
|
|
30
|
-
|
31
|
-
|
32
|
-
|
38
|
+
argv.join('#').split('#and#').map { |v| v.split("#") }.each do |args|
|
39
|
+
args_hash = Hash[args.join(' ').scan(/-?([^=\s]+)(?:=(\S+))?/)]
|
40
|
+
args_hash_to_parser.(args_hash, parser)
|
33
41
|
end
|
34
42
|
|
35
43
|
parser.freeze
|
@@ -94,10 +102,11 @@ module Work
|
|
94
102
|
'',
|
95
103
|
'Usage examples:',
|
96
104
|
'',
|
97
|
-
'work-md
|
98
|
-
'work-md
|
99
|
-
'work-md
|
100
|
-
'work-md
|
105
|
+
'work-md p -d=1 -m=5 -y=2000 # get day 1 from month 5 and year 2000',
|
106
|
+
'work-md p -d=1,2,3 # get day 1, 2 and 3 from the current month and year',
|
107
|
+
'work-md p -d=1,2 -m=4 # get day 1 and 2 from month 4 and current year',
|
108
|
+
'work-md p -d=1..10 -m=4 # get day 1 to 10 from month 4 and current year',
|
109
|
+
'work-md p -d=1..25 -m=2 and -d=1..25 -m=2 -y=1999 # get day 1 to 25 from month 2 and current year and 1 to 25 from month 2 in 1999',
|
101
110
|
**Work::Md::Cli.error_frame_style
|
102
111
|
)
|
103
112
|
)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Work
|
4
|
+
module Md
|
5
|
+
module Commands
|
6
|
+
class Tlast
|
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..90).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
|
+
Work::Md::File.open_in_editor([today_file_name, last_file_name].compact)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/work/md/version.rb
CHANGED
data/lib/work/md.rb
CHANGED
@@ -9,6 +9,8 @@ require_relative 'md/commands/config'
|
|
9
9
|
require_relative 'md/commands/yesterday'
|
10
10
|
require_relative 'md/commands/tyesterday'
|
11
11
|
require_relative 'md/commands/annotations'
|
12
|
+
require_relative 'md/commands/last'
|
13
|
+
require_relative 'md/commands/tlast'
|
12
14
|
require_relative 'md/parser/engine'
|
13
15
|
require_relative 'md/commands/parse'
|
14
16
|
require_relative 'md/cli'
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrique Fernandez Teixeira
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tty-box
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.7.0
|
41
|
-
description:
|
41
|
+
description:
|
42
42
|
email:
|
43
43
|
- hriqueft@gmail.com
|
44
44
|
executables:
|
@@ -49,11 +49,14 @@ files:
|
|
49
49
|
- bin/console
|
50
50
|
- bin/setup
|
51
51
|
- bin/work-md
|
52
|
+
- bin/work-md.rb
|
52
53
|
- lib/work/md.rb
|
53
54
|
- lib/work/md/cli.rb
|
54
55
|
- lib/work/md/commands/annotations.rb
|
55
56
|
- lib/work/md/commands/config.rb
|
57
|
+
- lib/work/md/commands/last.rb
|
56
58
|
- lib/work/md/commands/parse.rb
|
59
|
+
- lib/work/md/commands/tlast.rb
|
57
60
|
- lib/work/md/commands/today.rb
|
58
61
|
- lib/work/md/commands/tyesterday.rb
|
59
62
|
- lib/work/md/commands/yesterday.rb
|
@@ -62,12 +65,12 @@ files:
|
|
62
65
|
- lib/work/md/file.rb
|
63
66
|
- lib/work/md/parser/engine.rb
|
64
67
|
- lib/work/md/version.rb
|
65
|
-
homepage:
|
68
|
+
homepage:
|
66
69
|
licenses:
|
67
70
|
- MIT
|
68
71
|
metadata:
|
69
72
|
source_code_uri: https://github.com/work-md/work-md
|
70
|
-
post_install_message:
|
73
|
+
post_install_message:
|
71
74
|
rdoc_options: []
|
72
75
|
require_paths:
|
73
76
|
- lib
|
@@ -82,8 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
85
|
- !ruby/object:Gem::Version
|
83
86
|
version: '0'
|
84
87
|
requirements: []
|
85
|
-
rubygems_version: 3.2.
|
86
|
-
signing_key:
|
88
|
+
rubygems_version: 3.2.22
|
89
|
+
signing_key:
|
87
90
|
specification_version: 4
|
88
91
|
summary: Track your work activities, write annotations, recap what you did for a week,
|
89
92
|
month or specific days... and much more!
|