checkoff 0.6.0 → 0.11.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/.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 +53 -0
- 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 +15 -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 -5
- 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 +50 -4
- 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 +18 -9
- data/lib/checkoff/version.rb +2 -1
- data/lib/checkoff/workspaces.rb +11 -6
- 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 +121 -25
- 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,6 +22,22 @@ module Checkoff
|
|
22
22
|
@asana_task = asana_task
|
23
23
|
end
|
24
24
|
|
25
|
+
# Pull a specific task by name
|
26
|
+
def task(workspace_name, project_name, task_name,
|
27
|
+
section_name: :unspecified,
|
28
|
+
only_uncompleted: true)
|
29
|
+
project = projects.project(workspace_name, project_name)
|
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
|
36
|
+
tasks.find { |task| task.name == task_name }
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
25
41
|
def client
|
26
42
|
@sections.client
|
27
43
|
end
|
@@ -30,13 +46,6 @@ module Checkoff
|
|
30
46
|
@projects ||= @sections.projects
|
31
47
|
end
|
32
48
|
|
33
|
-
def task(workspace_name, project_name, task_name, only_uncompleted: true)
|
34
|
-
project = projects.project(workspace_name, project_name)
|
35
|
-
tasks = projects.tasks_from_project(project,
|
36
|
-
only_uncompleted: only_uncompleted)
|
37
|
-
tasks.find { |task| task.name == task_name }
|
38
|
-
end
|
39
|
-
|
40
49
|
def tasks_minus_sections(tasks)
|
41
50
|
@sections.by_section(tasks).values.flatten
|
42
51
|
end
|
@@ -50,7 +59,7 @@ module Checkoff
|
|
50
59
|
end
|
51
60
|
|
52
61
|
def default_assignee_gid
|
53
|
-
@config
|
62
|
+
@config.fetch(:default_assignee_gid)
|
54
63
|
end
|
55
64
|
end
|
56
65
|
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
|
-
c.authentication :access_token, @config
|
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[: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.0
|
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-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
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
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: bundler
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,19 +137,19 @@ dependencies:
|
|
109
137
|
- !ruby/object:Gem::Version
|
110
138
|
version: '0'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
140
|
+
name: overcommit
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
|
-
- - "
|
143
|
+
- - ">="
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
145
|
+
version: 0.58.0
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
|
-
- - "
|
150
|
+
- - ">="
|
123
151
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
152
|
+
version: 0.58.0
|
125
153
|
- !ruby/object:Gem::Dependency
|
126
154
|
name: rake
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,19 +165,47 @@ dependencies:
|
|
137
165
|
- !ruby/object:Gem::Version
|
138
166
|
version: '13.0'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
|
-
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
|
141
183
|
requirement: !ruby/object:Gem::Requirement
|
142
184
|
requirements:
|
143
185
|
- - ">="
|
144
186
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
187
|
+
version: '0'
|
146
188
|
type: :development
|
147
189
|
prerelease: false
|
148
190
|
version_requirements: !ruby/object:Gem::Requirement
|
149
191
|
requirements:
|
150
192
|
- - ">="
|
151
193
|
- !ruby/object:Gem::Version
|
152
|
-
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'
|
153
209
|
- !ruby/object:Gem::Dependency
|
154
210
|
name: simplecov
|
155
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +220,34 @@ dependencies:
|
|
164
220
|
- - ">="
|
165
221
|
- !ruby/object:Gem::Version
|
166
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'
|
167
251
|
description:
|
168
252
|
email:
|
169
253
|
- vince@broz.cc
|
@@ -173,22 +257,32 @@ extensions: []
|
|
173
257
|
extra_rdoc_files: []
|
174
258
|
files:
|
175
259
|
- ".circleci/config.yml"
|
260
|
+
- ".envrc"
|
261
|
+
- ".git-hooks/pre_commit/circle_ci.rb"
|
176
262
|
- ".gitignore"
|
263
|
+
- ".overcommit.yml"
|
177
264
|
- ".rubocop.yml"
|
178
|
-
- ".
|
179
|
-
- ".travis.yml"
|
265
|
+
- ".yamllint.yml"
|
180
266
|
- CODE_OF_CONDUCT.md
|
267
|
+
- DEVELOPMENT.md
|
181
268
|
- Gemfile
|
182
|
-
-
|
269
|
+
- Gemfile.lock
|
270
|
+
- LICENSE
|
183
271
|
- Makefile
|
184
272
|
- README.md
|
185
273
|
- Rakefile
|
274
|
+
- bin/bump
|
275
|
+
- bin/checkoff
|
186
276
|
- bin/console
|
277
|
+
- bin/overcommit
|
278
|
+
- bin/rake
|
187
279
|
- bin/setup
|
188
280
|
- checkoff.gemspec
|
189
281
|
- coverage/.last_run.json
|
282
|
+
- docs/cookiecutter_input.json
|
190
283
|
- docs/example_project.png
|
191
284
|
- exe/checkoff
|
285
|
+
- fix.sh
|
192
286
|
- lib/checkoff.rb
|
193
287
|
- lib/checkoff/cli.rb
|
194
288
|
- lib/checkoff/config_loader.rb
|
@@ -198,14 +292,6 @@ files:
|
|
198
292
|
- lib/checkoff/tasks.rb
|
199
293
|
- lib/checkoff/version.rb
|
200
294
|
- lib/checkoff/workspaces.rb
|
201
|
-
- lib/tasks/ci.rake
|
202
|
-
- lib/tasks/clear_metrics.rake
|
203
|
-
- lib/tasks/default.rake
|
204
|
-
- lib/tasks/feature.rake
|
205
|
-
- lib/tasks/localtest.rake
|
206
|
-
- lib/tasks/quality.rake
|
207
|
-
- lib/tasks/spec.rake
|
208
|
-
- lib/tasks/test.rake
|
209
295
|
- metrics/bigfiles_high_water_mark
|
210
296
|
- metrics/brakeman_high_water_mark
|
211
297
|
- metrics/bundle-audit_high_water_mark
|
@@ -223,9 +309,19 @@ files:
|
|
223
309
|
- metrics/rubocop_high_water_mark
|
224
310
|
- metrics/scalastyle_high_water_mark
|
225
311
|
- metrics/shellcheck_high_water_mark
|
226
|
-
|
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
|
227
323
|
licenses:
|
228
|
-
- MIT
|
324
|
+
- MIT license
|
229
325
|
metadata: {}
|
230
326
|
post_install_message:
|
231
327
|
rdoc_options: []
|
@@ -235,14 +331,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
331
|
requirements:
|
236
332
|
- - ">="
|
237
333
|
- !ruby/object:Gem::Version
|
238
|
-
version: '2.
|
334
|
+
version: '2.6'
|
239
335
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
336
|
requirements:
|
241
337
|
- - ">="
|
242
338
|
- !ruby/object:Gem::Version
|
243
339
|
version: '0'
|
244
340
|
requirements: []
|
245
|
-
rubygems_version: 3.0.3
|
341
|
+
rubygems_version: 3.0.3.1
|
246
342
|
signing_key:
|
247
343
|
specification_version: 4
|
248
344
|
summary: Command-line and gem client for Asana (unofficial)
|