checkoff 0.7.0 → 0.11.1
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/.circleci/config.yml +120 -12
- data/.envrc +2 -0
- data/.git-hooks/pre_commit/circle_ci.rb +21 -0
- data/.gitignore +51 -1
- data/.overcommit.yml +32 -12
- data/.rubocop.yml +64 -168
- data/.yamllint.yml +8 -0
- data/CODE_OF_CONDUCT.md +120 -36
- data/DEVELOPMENT.md +28 -0
- data/Gemfile.lock +139 -0
- data/{LICENSE.txt → LICENSE} +7 -6
- data/Makefile +52 -18
- data/README.md +13 -2
- data/Rakefile +2 -9
- data/bin/bump +29 -0
- data/bin/checkoff +29 -0
- data/bin/overcommit +29 -0
- data/bin/rake +29 -0
- data/checkoff.gemspec +14 -6
- data/coverage/.last_run.json +2 -1
- data/docs/cookiecutter_input.json +13 -0
- data/exe/checkoff +1 -2
- data/fix.sh +334 -0
- data/lib/checkoff/cli.rb +97 -76
- data/lib/checkoff/config_loader.rb +22 -16
- data/lib/checkoff/projects.rb +35 -31
- data/lib/checkoff/sections.rb +98 -50
- data/lib/checkoff/subtasks.rb +14 -11
- data/lib/checkoff/tasks.rb +25 -16
- data/lib/checkoff/version.rb +2 -1
- data/lib/checkoff/workspaces.rb +10 -5
- data/metrics/bigfiles_high_water_mark +1 -1
- data/metrics/rubocop_high_water_mark +1 -1
- data/{lib/tasks/ci.rake → rakelib/citest.rake} +1 -1
- data/rakelib/clear_metrics.rake +17 -0
- data/{lib/tasks → rakelib}/default.rake +0 -0
- data/rakelib/gem_tasks.rake +3 -0
- data/{lib/tasks → rakelib}/localtest.rake +1 -1
- data/rakelib/overcommit.rake +6 -0
- data/rakelib/quality.rake +4 -0
- data/{lib/tasks → rakelib}/test.rake +0 -0
- data/rakelib/undercover.rake +8 -0
- data/requirements_dev.txt +2 -0
- metadata +110 -29
- data/.ruby-version +0 -1
- data/.travis.yml +0 -22
- data/lib/tasks/clear_metrics.rake +0 -8
- data/lib/tasks/feature.rake +0 -9
- data/lib/tasks/quality.rake +0 -9
- data/lib/tasks/spec.rake +0 -9
data/lib/checkoff/subtasks.rb
CHANGED
@@ -11,17 +11,7 @@ module Checkoff
|
|
11
11
|
|
12
12
|
extend Forwardable
|
13
13
|
|
14
|
-
|
15
|
-
if task.name =~ /:$/
|
16
|
-
current_section = task.name
|
17
|
-
by_section[current_section] = []
|
18
|
-
else
|
19
|
-
by_section[current_section] ||= []
|
20
|
-
by_section[current_section] << task
|
21
|
-
end
|
22
|
-
[current_section, by_section]
|
23
|
-
end
|
24
|
-
|
14
|
+
# pulls a Hash of subtasks broken out by section
|
25
15
|
def by_section(tasks)
|
26
16
|
current_section = nil
|
27
17
|
by_section = {}
|
@@ -37,5 +27,18 @@ module Checkoff
|
|
37
27
|
task.subtasks(projects.task_options)
|
38
28
|
end
|
39
29
|
cache_method :raw_subtasks, LONG_CACHE_TIME
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def file_task_by_section(current_section, by_section, task)
|
34
|
+
if task.name =~ /:$/
|
35
|
+
current_section = task.name
|
36
|
+
by_section[current_section] = []
|
37
|
+
else
|
38
|
+
by_section[current_section] ||= []
|
39
|
+
by_section[current_section] << task
|
40
|
+
end
|
41
|
+
[current_section, by_section]
|
42
|
+
end
|
40
43
|
end
|
41
44
|
end
|
data/lib/checkoff/tasks.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
require_relative 'sections'
|
6
6
|
|
7
7
|
module Checkoff
|
8
|
-
# Pull
|
8
|
+
# Pull tasks from Asana
|
9
9
|
class Tasks
|
10
10
|
MINUTE = 60
|
11
11
|
HOUR = MINUTE * 60
|
@@ -22,25 +22,20 @@ module Checkoff
|
|
22
22
|
@asana_task = asana_task
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
def projects
|
30
|
-
@projects ||= @sections.projects
|
31
|
-
end
|
32
|
-
|
33
|
-
def task(workspace_name, project_name, task_name, only_uncompleted: true)
|
25
|
+
# Pull a specific task by name
|
26
|
+
def task(workspace_name, project_name, task_name,
|
27
|
+
section_name: :unspecified,
|
28
|
+
only_uncompleted: true)
|
34
29
|
project = projects.project(workspace_name, project_name)
|
35
|
-
tasks =
|
36
|
-
|
30
|
+
tasks = if section_name == :unspecified
|
31
|
+
projects.tasks_from_project(project,
|
32
|
+
only_uncompleted: only_uncompleted)
|
33
|
+
else
|
34
|
+
@sections.tasks(workspace_name, project_name, section_name)
|
35
|
+
end
|
37
36
|
tasks.find { |task| task.name == task_name }
|
38
37
|
end
|
39
38
|
|
40
|
-
def tasks_minus_sections(tasks)
|
41
|
-
@sections.by_section(tasks).values.flatten
|
42
|
-
end
|
43
|
-
|
44
39
|
def add_task(name,
|
45
40
|
workspace_gid: default_workspace_gid,
|
46
41
|
assignee_gid: default_assignee_gid)
|
@@ -49,6 +44,20 @@ module Checkoff
|
|
49
44
|
workspace: workspace_gid, name: name)
|
50
45
|
end
|
51
46
|
|
47
|
+
private
|
48
|
+
|
49
|
+
def client
|
50
|
+
@sections.client
|
51
|
+
end
|
52
|
+
|
53
|
+
def projects
|
54
|
+
@projects ||= @sections.projects
|
55
|
+
end
|
56
|
+
|
57
|
+
def tasks_minus_sections(tasks)
|
58
|
+
@sections.by_section(tasks).values.flatten
|
59
|
+
end
|
60
|
+
|
52
61
|
def default_assignee_gid
|
53
62
|
@config.fetch(:default_assignee_gid)
|
54
63
|
end
|
data/lib/checkoff/version.rb
CHANGED
data/lib/checkoff/workspaces.rb
CHANGED
@@ -9,21 +9,26 @@ module Checkoff
|
|
9
9
|
@asana_client = asana_client
|
10
10
|
end
|
11
11
|
|
12
|
+
# Returns Asana Ruby API Client object
|
12
13
|
def client
|
13
14
|
@client ||= @asana_client.new do |c|
|
14
15
|
c.authentication :access_token, @config.fetch(:personal_access_token)
|
15
16
|
c.default_headers 'asana-enable' => 'string_ids,new_sections'
|
17
|
+
c.default_headers 'asana-disable' => 'new_user_task_lists'
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
19
|
-
|
20
|
-
@config.fetch(:default_workspace_gid)
|
21
|
-
end
|
22
|
-
|
21
|
+
# Pulls an Asana workspace object
|
23
22
|
def workspace_by_name(workspace_name)
|
24
23
|
client.workspaces.find_all.find do |workspace|
|
25
24
|
workspace.name == workspace_name
|
26
|
-
end || raise("Could not find workspace #{workspace_name}")
|
25
|
+
end || raise("Could not find workspace named [#{workspace_name}]")
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def default_workspace_gid
|
31
|
+
@config.fetch(:default_workspace_gid)
|
27
32
|
end
|
28
33
|
end
|
29
34
|
end
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
488
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
6
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc 'Ensure that any locally ratcheted coverage metrics are cleared back ' \
|
4
|
+
'to git baseline'
|
5
|
+
task :clear_metrics do |_t|
|
6
|
+
ret =
|
7
|
+
system('git checkout coverage/.last_run.json')
|
8
|
+
raise unless ret
|
9
|
+
|
10
|
+
# Without this old lines which are removed are still counted,
|
11
|
+
# leading to inconsistent coverage percentages between runs.
|
12
|
+
#
|
13
|
+
# need to save coverage/.last_run.json
|
14
|
+
ret =
|
15
|
+
system('rm -fr coverage/assets coverage/.*.json.lock coverage/lcov/* coverage/index.html coverage/.resultset.json')
|
16
|
+
raise unless ret
|
17
|
+
end
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: checkoff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vince Broz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -67,7 +67,21 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: gli
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bump
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ">="
|
@@ -81,7 +95,7 @@ dependencies:
|
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: bundler
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - ">="
|
@@ -95,7 +109,7 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: minitest-profile
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - ">="
|
@@ -109,7 +123,7 @@ dependencies:
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: mocha
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - ">="
|
@@ -123,19 +137,19 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: overcommit
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
145
|
+
version: 0.58.0
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
152
|
+
version: 0.58.0
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rake
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,19 +165,47 @@ dependencies:
|
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: '13.0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rubocop-minitest
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
156
184
|
requirements:
|
157
185
|
- - ">="
|
158
186
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
187
|
+
version: '0'
|
160
188
|
type: :development
|
161
189
|
prerelease: false
|
162
190
|
version_requirements: !ruby/object:Gem::Requirement
|
163
191
|
requirements:
|
164
192
|
- - ">="
|
165
193
|
- !ruby/object:Gem::Version
|
166
|
-
version: '
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rubocop-rake
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
167
209
|
- !ruby/object:Gem::Dependency
|
168
210
|
name: simplecov
|
169
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,6 +220,34 @@ dependencies:
|
|
178
220
|
- - ">="
|
179
221
|
- !ruby/object:Gem::Version
|
180
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: simplecov-lcov
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: undercover
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
181
251
|
description:
|
182
252
|
email:
|
183
253
|
- vince@broz.cc
|
@@ -187,23 +257,32 @@ extensions: []
|
|
187
257
|
extra_rdoc_files: []
|
188
258
|
files:
|
189
259
|
- ".circleci/config.yml"
|
260
|
+
- ".envrc"
|
261
|
+
- ".git-hooks/pre_commit/circle_ci.rb"
|
190
262
|
- ".gitignore"
|
191
263
|
- ".overcommit.yml"
|
192
264
|
- ".rubocop.yml"
|
193
|
-
- ".
|
194
|
-
- ".travis.yml"
|
265
|
+
- ".yamllint.yml"
|
195
266
|
- CODE_OF_CONDUCT.md
|
267
|
+
- DEVELOPMENT.md
|
196
268
|
- Gemfile
|
197
|
-
-
|
269
|
+
- Gemfile.lock
|
270
|
+
- LICENSE
|
198
271
|
- Makefile
|
199
272
|
- README.md
|
200
273
|
- Rakefile
|
274
|
+
- bin/bump
|
275
|
+
- bin/checkoff
|
201
276
|
- bin/console
|
277
|
+
- bin/overcommit
|
278
|
+
- bin/rake
|
202
279
|
- bin/setup
|
203
280
|
- checkoff.gemspec
|
204
281
|
- coverage/.last_run.json
|
282
|
+
- docs/cookiecutter_input.json
|
205
283
|
- docs/example_project.png
|
206
284
|
- exe/checkoff
|
285
|
+
- fix.sh
|
207
286
|
- lib/checkoff.rb
|
208
287
|
- lib/checkoff/cli.rb
|
209
288
|
- lib/checkoff/config_loader.rb
|
@@ -213,14 +292,6 @@ files:
|
|
213
292
|
- lib/checkoff/tasks.rb
|
214
293
|
- lib/checkoff/version.rb
|
215
294
|
- lib/checkoff/workspaces.rb
|
216
|
-
- lib/tasks/ci.rake
|
217
|
-
- lib/tasks/clear_metrics.rake
|
218
|
-
- lib/tasks/default.rake
|
219
|
-
- lib/tasks/feature.rake
|
220
|
-
- lib/tasks/localtest.rake
|
221
|
-
- lib/tasks/quality.rake
|
222
|
-
- lib/tasks/spec.rake
|
223
|
-
- lib/tasks/test.rake
|
224
295
|
- metrics/bigfiles_high_water_mark
|
225
296
|
- metrics/brakeman_high_water_mark
|
226
297
|
- metrics/bundle-audit_high_water_mark
|
@@ -238,9 +309,19 @@ files:
|
|
238
309
|
- metrics/rubocop_high_water_mark
|
239
310
|
- metrics/scalastyle_high_water_mark
|
240
311
|
- metrics/shellcheck_high_water_mark
|
241
|
-
|
312
|
+
- rakelib/citest.rake
|
313
|
+
- rakelib/clear_metrics.rake
|
314
|
+
- rakelib/default.rake
|
315
|
+
- rakelib/gem_tasks.rake
|
316
|
+
- rakelib/localtest.rake
|
317
|
+
- rakelib/overcommit.rake
|
318
|
+
- rakelib/quality.rake
|
319
|
+
- rakelib/test.rake
|
320
|
+
- rakelib/undercover.rake
|
321
|
+
- requirements_dev.txt
|
322
|
+
homepage: https://github.com/apiology/checkoff
|
242
323
|
licenses:
|
243
|
-
- MIT
|
324
|
+
- MIT license
|
244
325
|
metadata: {}
|
245
326
|
post_install_message:
|
246
327
|
rdoc_options: []
|
@@ -250,14 +331,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
250
331
|
requirements:
|
251
332
|
- - ">="
|
252
333
|
- !ruby/object:Gem::Version
|
253
|
-
version: '2.
|
334
|
+
version: '2.6'
|
254
335
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
336
|
requirements:
|
256
337
|
- - ">="
|
257
338
|
- !ruby/object:Gem::Version
|
258
339
|
version: '0'
|
259
340
|
requirements: []
|
260
|
-
rubygems_version: 3.0.3
|
341
|
+
rubygems_version: 3.0.3.1
|
261
342
|
signing_key:
|
262
343
|
specification_version: 4
|
263
344
|
summary: Command-line and gem client for Asana (unofficial)
|