tsks 0.0.11 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/tsks/cli.rb +22 -11
- data/lib/tsks/storage.rb +25 -17
- data/lib/tsks/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 115b558183b18b7ec4798910dfd43d4db49ab4448c94e21aaf9b7097e8dab7dc
|
4
|
+
data.tar.gz: 9f6afae532b9c8b210e3fcb0ea4173ca3b7dc27996eddfd75ebd0b390b022c37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94f4083f6f032a6c69fad18afaf27568eab7e453bdc25c4095e57a9c420ff2dc74801a920ae1165e3019d0438b9d34a2325af392333d34846b1839180e92203e
|
7
|
+
data.tar.gz: b5346d0dc286f2cc298388a2ddc8e41a4ec3a1764f77a79241dacff6a9d1ce53545c342df4d850d50ced47f588f93e2513dc61fc47e29accd8aacc21002bc27f
|
data/Gemfile.lock
CHANGED
data/lib/tsks/cli.rb
CHANGED
@@ -31,7 +31,7 @@ module Tsks
|
|
31
31
|
Tsks::Storage.init
|
32
32
|
end
|
33
33
|
|
34
|
-
desc "add TSK", "add a new tsk (Use --context to specify one e.g.
|
34
|
+
desc "add TSK", "add a new tsk (Use --context to specify one e.g. --context=work)"
|
35
35
|
option :context
|
36
36
|
def add tsk
|
37
37
|
if !File.directory? CLI.setup_folder
|
@@ -45,7 +45,7 @@ module Tsks
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
desc "done ID", "mark a tsk you have
|
48
|
+
desc "done ID", "mark a tsk you have done"
|
49
49
|
def done id
|
50
50
|
if !File.directory? CLI.setup_folder
|
51
51
|
return puts "tsks was not initialized yet."
|
@@ -59,6 +59,7 @@ module Tsks
|
|
59
59
|
|
60
60
|
desc "list", "see all active tsks, filter by context or that are done"
|
61
61
|
option :done, type: :boolean
|
62
|
+
option :all, type: :boolean
|
62
63
|
option :context
|
63
64
|
def list
|
64
65
|
if !File.directory? CLI.setup_folder
|
@@ -73,6 +74,8 @@ module Tsks
|
|
73
74
|
tsks = Tsks::Storage.select_by({status: 'done'})
|
74
75
|
elsif options[:context]
|
75
76
|
tsks = Tsks::Storage.select_by({context: options[:context]})
|
77
|
+
elsif options[:all]
|
78
|
+
tsks = Tsks::Storage.select_all
|
76
79
|
else
|
77
80
|
tsks = Tsks::Storage.select_active
|
78
81
|
end
|
@@ -158,25 +161,33 @@ module Tsks
|
|
158
161
|
Tsks::Storage.delete_removed_uuids
|
159
162
|
local_tsks = Tsks::Storage.select_all local_id=false
|
160
163
|
|
161
|
-
remote_tsks = []
|
162
164
|
begin
|
163
165
|
get_res = Tsks::Request.get "/tsks", token
|
164
|
-
|
165
|
-
for tsk in get_res[:tsks]
|
166
|
-
tsk[:created_at] = Time.parse(tsk[:created_at]).strftime "%F %T"
|
167
|
-
tsk[:updated_at] = Time.parse(tsk[:updated_at]).strftime "%F %T"
|
168
|
-
remote_tsks.append tsk
|
169
|
-
end
|
166
|
+
remote_tsks = get_res[:tsks]
|
170
167
|
|
168
|
+
if get_res[:tsks]
|
171
169
|
if get_res[:ok] == true
|
172
170
|
local_tsks_to_post = local_tsks - remote_tsks
|
171
|
+
|
173
172
|
if local_tsks_to_post.count > 0
|
174
173
|
for tsk in local_tsks_to_post
|
175
|
-
Tsks::Request.post "/tsks", token, {tsk: tsk}
|
174
|
+
post_res = Tsks::Request.post "/tsks", token, {tsk: tsk}
|
175
|
+
posted_tsk = post_res[:tsk]
|
176
|
+
|
177
|
+
if posted_tsk
|
178
|
+
# TODO: write tests for Storage.select_local_id
|
179
|
+
tsk_local_id = Tsks::Storage.select_local_id({tsk: posted_tsk[:tsk],
|
180
|
+
created_at: posted_tsk[:created_at],
|
181
|
+
updated_at: posted_tsk[:updated_at]})
|
182
|
+
|
183
|
+
Tsks::Storage.update tsk_local_id, {id: posted_tsk[:id]}
|
184
|
+
end
|
176
185
|
end
|
177
186
|
end
|
178
187
|
|
179
|
-
|
188
|
+
updated_local_tsks = Tsks::Storage.select_all local_id=false
|
189
|
+
remote_tsks_to_storage = remote_tsks - updated_local_tsks
|
190
|
+
|
180
191
|
if remote_tsks_to_storage.count > 0
|
181
192
|
Tsks::Storage.insert_many remote_tsks_to_storage
|
182
193
|
end
|
data/lib/tsks/storage.rb
CHANGED
@@ -7,7 +7,7 @@ module Tsks
|
|
7
7
|
storage = get_storage_instance
|
8
8
|
storage.execute <<-SQL
|
9
9
|
CREATE TABLE tsks (
|
10
|
-
id VARCHAR PRIMARY KEY UNIQUE
|
10
|
+
id VARCHAR PRIMARY KEY UNIQUE,
|
11
11
|
user_id INTEGER DEFAULT 1,
|
12
12
|
tsk VARCHAR NOT NULL,
|
13
13
|
status VARCHAR DEFAULT todo,
|
@@ -19,27 +19,26 @@ module Tsks
|
|
19
19
|
|
20
20
|
storage.execute <<-SQL
|
21
21
|
CREATE TABLE removed_tsks (
|
22
|
-
|
22
|
+
tsk_id VARCHAR UNIQUE NOT NULL
|
23
23
|
)
|
24
24
|
SQL
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.insert tsk, ctx=nil
|
28
28
|
storage = get_storage_instance
|
29
|
-
now = Time.now.strftime
|
30
|
-
uuid = UUID.new.generate
|
29
|
+
now = Time.now.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
|
31
30
|
|
32
31
|
if ctx
|
33
32
|
storage.execute("
|
34
|
-
INSERT INTO tsks (
|
35
|
-
VALUES (?, ?, ?, ?,
|
36
|
-
[
|
33
|
+
INSERT INTO tsks (tsk, status, context, created_at, updated_at)
|
34
|
+
VALUES (?, ?, ?, ?, ?)",
|
35
|
+
[tsk, 'todo', ctx, now, now]
|
37
36
|
)
|
38
37
|
else
|
39
38
|
storage.execute("
|
40
|
-
INSERT INTO tsks (
|
41
|
-
VALUES (?, ?, ?,
|
42
|
-
[
|
39
|
+
INSERT INTO tsks (tsk, status, created_at, updated_at)
|
40
|
+
VALUES (?, ?, ?, ?)",
|
41
|
+
[tsk, 'todo', now, now]
|
43
42
|
)
|
44
43
|
end
|
45
44
|
end
|
@@ -101,6 +100,17 @@ module Tsks
|
|
101
100
|
tsks = structure_tsks raw_tsks
|
102
101
|
end
|
103
102
|
|
103
|
+
# TODO: write tests for Storage.select_local_id
|
104
|
+
def self.select_local_id params
|
105
|
+
storage = get_storage_instance
|
106
|
+
|
107
|
+
tsk = storage.execute(
|
108
|
+
"SELECT rowid, * FROM tsks WHERE #{params.keys.first}=? AND #{params.keys[1]}=? AND #{params.keys.last}=?",
|
109
|
+
params.values.first, params.values[1], params.values.last)
|
110
|
+
|
111
|
+
tsk_local_id = tsk[0][0]
|
112
|
+
end
|
113
|
+
|
104
114
|
def self.select_all local_id=true
|
105
115
|
storage = get_storage_instance
|
106
116
|
raw_tsks = local_id ?
|
@@ -117,13 +127,11 @@ module Tsks
|
|
117
127
|
|
118
128
|
def self.delete local_id
|
119
129
|
storage = get_storage_instance
|
120
|
-
removed_tsks = storage
|
121
|
-
.execute("SELECT * FROM tsks WHERE rowid=?", local_id)
|
130
|
+
removed_tsks = storage.execute("SELECT * FROM tsks WHERE rowid=?", local_id)
|
122
131
|
if removed_tsks.empty?
|
123
132
|
return false
|
124
133
|
end
|
125
|
-
storage
|
126
|
-
.execute("INSERT INTO removed_tsks (tsk_uuid) VALUES (?)", removed_tsks[0][0])
|
134
|
+
storage.execute("INSERT INTO removed_tsks (tsk_id) VALUES (?)", removed_tsks[0][0])
|
127
135
|
storage.execute("DELETE FROM tsks WHERE rowid=?", local_id)
|
128
136
|
end
|
129
137
|
|
@@ -131,11 +139,11 @@ module Tsks
|
|
131
139
|
storage = get_storage_instance
|
132
140
|
result = storage.execute("SELECT * FROM removed_tsks")
|
133
141
|
|
134
|
-
|
142
|
+
tsk_ids = []
|
135
143
|
for item in result
|
136
|
-
|
144
|
+
tsk_ids.append item[0]
|
137
145
|
end
|
138
|
-
return
|
146
|
+
return tsk_ids
|
139
147
|
end
|
140
148
|
|
141
149
|
def self.delete_removed_uuids
|
data/lib/tsks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tsks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luan Ramos Vicente
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|