tsks 0.0.11 → 0.0.13

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: 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