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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5642476a95ebd615e61b0461eb61f2ea9a3408d249b3a85ba1ea2e028427badc
4
- data.tar.gz: 65e8fea2affb40c031b86aed5db037426eacf8d953deaf8f13a7a3b2d0d633bf
3
+ metadata.gz: 115b558183b18b7ec4798910dfd43d4db49ab4448c94e21aaf9b7097e8dab7dc
4
+ data.tar.gz: 9f6afae532b9c8b210e3fcb0ea4173ca3b7dc27996eddfd75ebd0b390b022c37
5
5
  SHA512:
6
- metadata.gz: 1f6093f9d0a12c050e0384d316dfbf388ef39c4eb2b02cb3677e5b468f9ff71f8cafb85b937aed67c3cabbf9bb026931b5d84fe762759fd0bb3f798d8a643beb
7
- data.tar.gz: 1287812074eab7b75d580be496b52d34c915505b45a8b7c6254e3135939a02e89295893b34a625a62cde190ab48d685fbb3e52ae0da807ba4b8838b76f3b3db5
6
+ metadata.gz: 94f4083f6f032a6c69fad18afaf27568eab7e453bdc25c4095e57a9c420ff2dc74801a920ae1165e3019d0438b9d34a2325af392333d34846b1839180e92203e
7
+ data.tar.gz: b5346d0dc286f2cc298388a2ddc8e41a4ec3a1764f77a79241dacff6a9d1ce53545c342df4d850d50ced47f588f93e2513dc61fc47e29accd8aacc21002bc27f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tsks (0.0.11)
4
+ tsks (0.0.13)
5
5
  httparty
6
6
  sqlite3
7
7
  thor
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. Work)"
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 already done"
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
- if get_res[:tsks]
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
- remote_tsks_to_storage = remote_tsks - local_tsks
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 NOT NULL,
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
- tsk_uuid VARCHAR UNIQUE NOT NULL
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 "%F %T"
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 (id, tsk, status, context, created_at, updated_at)
35
- VALUES (?, ?, ?, ?, ?, ?)",
36
- [uuid, tsk, 'todo', ctx, now, now]
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 (id, tsk, status, created_at, updated_at)
41
- VALUES (?, ?, ?, ?, ?)",
42
- [uuid, tsk, 'todo', now, now]
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
- tsk_uuids = []
142
+ tsk_ids = []
135
143
  for item in result
136
- tsk_uuids.append item[0]
144
+ tsk_ids.append item[0]
137
145
  end
138
- return tsk_uuids
146
+ return tsk_ids
139
147
  end
140
148
 
141
149
  def self.delete_removed_uuids
data/lib/tsks/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tsks
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.13"
3
3
  end
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.11
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-05-19 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec