checkoff 0.15.0 → 0.16.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 +2 -0
- data/.envrc +2 -1
- data/.gitattributes +6 -0
- data/.gitignore +3 -0
- data/.overcommit.yml +2 -0
- data/.rubocop.yml +1 -0
- data/DEVELOPMENT.md +30 -0
- data/Gemfile.lock +9 -9
- data/Makefile +4 -1
- data/README.md +0 -4
- data/coverage/.last_run.json +1 -1
- data/fix.sh +8 -4
- data/lib/checkoff/cli.rb +1 -1
- data/lib/checkoff/clients.rb +1 -2
- data/lib/checkoff/create-entity.sh +1 -1
- data/lib/checkoff/custom_fields.rb +1 -1
- data/lib/checkoff/my_tasks.rb +46 -0
- data/lib/checkoff/projects.rb +2 -2
- data/lib/checkoff/sections.rb +12 -5
- data/lib/checkoff/tags.rb +1 -1
- data/lib/checkoff/tasks.rb +4 -3
- data/lib/checkoff/version.rb +1 -1
- data/requirements_dev.txt +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6077fb7e61bc4ca3d3853df3df9aa8321e1638b413c2913eec541e8ae94defe7
|
|
4
|
+
data.tar.gz: 809c7d2cb26099cef0816719f9cf3491e179d8a8c44b3b1e72d51af46ae98a85
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8ed5e0dadd2384438b286d0f53a306d1e9f67b6253531e7f19f7809cdc59849b3562ea45d858c87725a532a2305650c5291d057545432a5e0eeeefc9060e9d0
|
|
7
|
+
data.tar.gz: b1f75a997bda89f8aaca31e1049f74a08d81da53f0495325503dba3114910daf5b9d8c4ae9fbc1428fece772253fb7dc2510708f61cdf7fa877b8a4df71e34e0
|
data/.circleci/config.yml
CHANGED
|
@@ -110,6 +110,8 @@ jobs:
|
|
|
110
110
|
git status --porcelain coverage/.last_run.json
|
|
111
111
|
git diff coverage/.last_run.json
|
|
112
112
|
test -z "$(git status --porcelain coverage/.last_run.json)"
|
|
113
|
+
# This seemed to shave 5ish% of the build time off when added
|
|
114
|
+
resource_class: large
|
|
113
115
|
|
|
114
116
|
workflows:
|
|
115
117
|
version: 2
|
data/.envrc
CHANGED
data/.gitattributes
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# there's a lot of .sh in the build machinery; this can overwhelm
|
|
2
|
+
# smaller projects and confuse GitHub's detection of majority project
|
|
3
|
+
# type (GitHub uses the linguist library)
|
|
4
|
+
#
|
|
5
|
+
# https://dev.to/katkelly/changing-your-repo-s-language-in-github-5gjo
|
|
6
|
+
*.sh linguist-detectable=false
|
data/.gitignore
CHANGED
data/.overcommit.yml
CHANGED
data/.rubocop.yml
CHANGED
data/DEVELOPMENT.md
CHANGED
|
@@ -16,6 +16,36 @@ quality checks. `bundle exec overcommit --install` will install it.
|
|
|
16
16
|
This project uses direnv to manage environment variables used during
|
|
17
17
|
development. See the `.envrc` file for detail.
|
|
18
18
|
|
|
19
|
+
## cache_method
|
|
20
|
+
|
|
21
|
+
Checkoff uses the
|
|
22
|
+
[`cache_method`](https://github.com/seamusabshere/cache_method) gem to
|
|
23
|
+
cache results between invocations. Configuration details can be found
|
|
24
|
+
[here](https://github.com/seamusabshere/cache_method#configuration-and-supported-cache-clients).
|
|
25
|
+
By default a memcached client on the default port (11211) on the host
|
|
26
|
+
`memcached` will be used.
|
|
27
|
+
|
|
28
|
+
You can run memcached locally on macOS with Homebrew by running:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
brew install memcached
|
|
32
|
+
brew services start memcached
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
You may want to add a `memcached` alias for `127.0.0.1` in `/etc/hosts`.
|
|
36
|
+
|
|
37
|
+
Please make sure this is only listening on loopback for security, of course.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## gli
|
|
41
|
+
|
|
42
|
+
Checkoff uses [`gli`](https://github.com/davetron5000/gli) on the CLI.
|
|
43
|
+
To get a full stack trace when encountering a problem, run as follows:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
GLI_DEBUG=true checkoff your-arguments-here
|
|
47
|
+
```
|
|
48
|
+
|
|
19
49
|
## Publishing
|
|
20
50
|
|
|
21
51
|
To publish new version as a maintainer:
|
data/Gemfile.lock
CHANGED
|
@@ -12,7 +12,7 @@ GIT
|
|
|
12
12
|
PATH
|
|
13
13
|
remote: .
|
|
14
14
|
specs:
|
|
15
|
-
checkoff (0.
|
|
15
|
+
checkoff (0.16.0)
|
|
16
16
|
activesupport
|
|
17
17
|
asana (> 0.10.0)
|
|
18
18
|
cache_method
|
|
@@ -22,7 +22,7 @@ PATH
|
|
|
22
22
|
GEM
|
|
23
23
|
remote: https://rubygems.org/
|
|
24
24
|
specs:
|
|
25
|
-
activesupport (6.1.
|
|
25
|
+
activesupport (6.1.5.1)
|
|
26
26
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
27
27
|
i18n (>= 1.6, < 2)
|
|
28
28
|
minitest (>= 5.1)
|
|
@@ -35,8 +35,8 @@ GEM
|
|
|
35
35
|
cache (>= 0.2.1)
|
|
36
36
|
childprocess (4.0.0)
|
|
37
37
|
coderay (1.1.3)
|
|
38
|
-
concurrent-ruby (1.1.
|
|
39
|
-
dalli (2.
|
|
38
|
+
concurrent-ruby (1.1.10)
|
|
39
|
+
dalli (3.2.1)
|
|
40
40
|
docile (1.4.0)
|
|
41
41
|
faraday (1.5.1)
|
|
42
42
|
faraday-em_http (~> 1.0)
|
|
@@ -60,15 +60,15 @@ GEM
|
|
|
60
60
|
faraday_middleware-multi_json (0.0.6)
|
|
61
61
|
faraday_middleware
|
|
62
62
|
multi_json
|
|
63
|
-
gli (2.
|
|
64
|
-
i18n (1.
|
|
63
|
+
gli (2.21.0)
|
|
64
|
+
i18n (1.10.0)
|
|
65
65
|
concurrent-ruby (~> 1.0)
|
|
66
66
|
imagen (0.1.8)
|
|
67
67
|
parser (>= 2.5, != 2.5.1.1)
|
|
68
68
|
iniparse (1.5.0)
|
|
69
69
|
jwt (2.2.3)
|
|
70
70
|
method_source (1.0.0)
|
|
71
|
-
minitest (5.
|
|
71
|
+
minitest (5.15.0)
|
|
72
72
|
minitest-profile (0.0.2)
|
|
73
73
|
mocha (1.12.0)
|
|
74
74
|
multi_json (1.15.0)
|
|
@@ -127,7 +127,7 @@ GEM
|
|
|
127
127
|
rainbow (>= 2.1, < 4.0)
|
|
128
128
|
rugged (>= 0.27, < 1.2)
|
|
129
129
|
unicode-display_width (2.0.0)
|
|
130
|
-
zeitwerk (2.4
|
|
130
|
+
zeitwerk (2.5.4)
|
|
131
131
|
|
|
132
132
|
PLATFORMS
|
|
133
133
|
ruby
|
|
@@ -153,4 +153,4 @@ DEPENDENCIES
|
|
|
153
153
|
undercover
|
|
154
154
|
|
|
155
155
|
BUNDLED WITH
|
|
156
|
-
2.2.
|
|
156
|
+
2.2.25
|
data/Makefile
CHANGED
|
@@ -15,7 +15,7 @@ export PRINT_HELP_PYSCRIPT
|
|
|
15
15
|
help:
|
|
16
16
|
@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
|
|
17
17
|
|
|
18
|
-
default: localtest ## run default
|
|
18
|
+
default: localtest ## run default tests and quality
|
|
19
19
|
|
|
20
20
|
requirements_dev.txt.installed: requirements_dev.txt
|
|
21
21
|
pip install -q --disable-pip-version-check -r requirements_dev.txt
|
|
@@ -50,6 +50,9 @@ test: ## Run lower-level tests
|
|
|
50
50
|
localtest: ## run default local actions
|
|
51
51
|
@bundle exec rake localtest
|
|
52
52
|
|
|
53
|
+
repl: ## Load up checkoff in pry
|
|
54
|
+
@bundle exec rake repl
|
|
55
|
+
|
|
53
56
|
update_from_cookiecutter: ## Bring in changes from template project used to create this repo
|
|
54
57
|
bundle exec overcommit --uninstall
|
|
55
58
|
IN_COOKIECUTTER_PROJECT_UPGRADER=1 cookiecutter_project_upgrader || true
|
data/README.md
CHANGED
|
@@ -98,10 +98,6 @@ $
|
|
|
98
98
|
Since checkoff looks up things by their name, if you have two things
|
|
99
99
|
with the same name, you're probably going to have a bad time.
|
|
100
100
|
|
|
101
|
-
If you need to talk about the section of a project which contains
|
|
102
|
-
tasks that don't have a section, use `Untitled section` as the name.
|
|
103
|
-
This is a quirk of the Asana API which seemed as good as any other idea.
|
|
104
|
-
|
|
105
101
|
## Caching
|
|
106
102
|
|
|
107
103
|
Note that I don't know of a way through the Asana API to target
|
data/coverage/.last_run.json
CHANGED
data/fix.sh
CHANGED
|
@@ -7,7 +7,7 @@ apt_upgraded=0
|
|
|
7
7
|
update_apt() {
|
|
8
8
|
if [ "${apt_upgraded}" = 0 ]
|
|
9
9
|
then
|
|
10
|
-
sudo apt-get update -y
|
|
10
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
11
11
|
apt_upgraded=1
|
|
12
12
|
fi
|
|
13
13
|
}
|
|
@@ -243,7 +243,7 @@ install_package() {
|
|
|
243
243
|
elif type apt-get >/dev/null 2>&1
|
|
244
244
|
then
|
|
245
245
|
update_apt
|
|
246
|
-
sudo apt-get install -y "${apt_package}"
|
|
246
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y "${apt_package}"
|
|
247
247
|
else
|
|
248
248
|
>&2 echo "Teach me how to install packages on this plaform"
|
|
249
249
|
exit 1
|
|
@@ -257,7 +257,7 @@ ensure_python_build_requirements() {
|
|
|
257
257
|
ensure_dev_library ffi.h libffi libffi-dev
|
|
258
258
|
ensure_dev_library sqlite3.h sqlite3 libsqlite3-dev
|
|
259
259
|
ensure_dev_library lzma.h xz liblzma-dev
|
|
260
|
-
ensure_dev_library readline.h readline libreadline-dev
|
|
260
|
+
ensure_dev_library readline/readline.h readline libreadline-dev
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
# You can find out which feature versions are still supported / have
|
|
@@ -275,8 +275,12 @@ ensure_python_versions() {
|
|
|
275
275
|
do
|
|
276
276
|
if [ "$(uname)" == Darwin ]
|
|
277
277
|
then
|
|
278
|
+
if [ -z "${HOMEBREW_OPENSSL_PREFIX:-}" ]
|
|
279
|
+
then
|
|
280
|
+
HOMEBREW_OPENSSL_PREFIX="$(brew --prefix openssl)"
|
|
281
|
+
fi
|
|
278
282
|
pyenv_install() {
|
|
279
|
-
CFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include" LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/bzip2/lib" pyenv install --skip-existing "$@"
|
|
283
|
+
CFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include -I${HOMEBREW_OPENSSL_PREFIX}/include" LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/bzip2/lib -L${HOMEBREW_OPENSSL_PREFIX}/lib" pyenv install --skip-existing "$@"
|
|
280
284
|
}
|
|
281
285
|
|
|
282
286
|
major_minor="$(cut -d. -f1-2 <<<"${ver}")"
|
data/lib/checkoff/cli.rb
CHANGED
data/lib/checkoff/clients.rb
CHANGED
|
@@ -27,8 +27,7 @@ module Checkoff
|
|
|
27
27
|
def client
|
|
28
28
|
@client ||= @asana_client_class.new do |c|
|
|
29
29
|
c.authentication :access_token, @config.fetch(:personal_access_token)
|
|
30
|
-
c.default_headers 'asana-enable' => '
|
|
31
|
-
c.default_headers 'asana-disable' => 'new_user_task_lists'
|
|
30
|
+
c.default_headers 'asana-enable' => 'new_project_templates'
|
|
32
31
|
end
|
|
33
32
|
end
|
|
34
33
|
|
|
@@ -48,7 +48,7 @@ module Checkoff
|
|
|
48
48
|
cache_method :${underscored_singular_name}_or_raise, LONG_CACHE_TIME
|
|
49
49
|
|
|
50
50
|
def ${underscored_singular_name}(workspace_name, ${underscored_singular_name}_name)
|
|
51
|
-
workspace = workspaces.
|
|
51
|
+
workspace = workspaces.workspace_or_raise(workspace_name)
|
|
52
52
|
${underscored_plural_name} = client.${underscored_plural_name}.get_${underscored_plural_name}_for_workspace(workspace_gid: workspace.gid)
|
|
53
53
|
${underscored_plural_name}.find { |${underscored_singular_name}| ${underscored_singular_name}.name == ${underscored_singular_name}_name }
|
|
54
54
|
end
|
|
@@ -37,7 +37,7 @@ module Checkoff
|
|
|
37
37
|
cache_method :custom_field_or_raise, LONG_CACHE_TIME
|
|
38
38
|
|
|
39
39
|
def custom_field(workspace_name, custom_field_name)
|
|
40
|
-
workspace = workspaces.
|
|
40
|
+
workspace = workspaces.workspace_or_raise(workspace_name)
|
|
41
41
|
custom_fields = client.custom_fields.get_custom_fields_for_workspace(workspace_gid: workspace.gid)
|
|
42
42
|
custom_fields.find { |custom_field| custom_field.name == custom_field_name }
|
|
43
43
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'forwardable'
|
|
4
|
+
require_relative 'projects'
|
|
5
|
+
require_relative 'workspaces'
|
|
6
|
+
require_relative 'clients'
|
|
7
|
+
|
|
8
|
+
module Checkoff
|
|
9
|
+
# Query different sections of Asana 'My Tasks' projects
|
|
10
|
+
class MyTasks
|
|
11
|
+
MINUTE = 60
|
|
12
|
+
LONG_CACHE_TIME = MINUTE * 15
|
|
13
|
+
SHORT_CACHE_TIME = MINUTE * 5
|
|
14
|
+
|
|
15
|
+
attr_reader :projects
|
|
16
|
+
|
|
17
|
+
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
18
|
+
projects: Checkoff::Projects.new(config: config))
|
|
19
|
+
@config = config
|
|
20
|
+
@projects = projects
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Given a 'My Tasks' project object, pull all tasks, then provide
|
|
24
|
+
# a Hash of tasks with section name -> task list of the
|
|
25
|
+
# uncompleted tasks.
|
|
26
|
+
def tasks_by_section_for_my_tasks(project)
|
|
27
|
+
raw_tasks = projects.tasks_from_project(project,
|
|
28
|
+
extra_fields: ['assignee_section.name'])
|
|
29
|
+
active_tasks = projects.active_tasks(raw_tasks)
|
|
30
|
+
by_my_tasks_section(active_tasks)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Given a list of tasks in 'My Tasks', pull a Hash of tasks with
|
|
34
|
+
# section name -> task list
|
|
35
|
+
def by_my_tasks_section(tasks)
|
|
36
|
+
by_section = {}
|
|
37
|
+
tasks.each do |task|
|
|
38
|
+
assignee_section = task.assignee_section
|
|
39
|
+
current_section = assignee_section.name
|
|
40
|
+
by_section[current_section] ||= []
|
|
41
|
+
by_section[current_section] << task
|
|
42
|
+
end
|
|
43
|
+
by_section
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
data/lib/checkoff/projects.rb
CHANGED
|
@@ -89,14 +89,14 @@ module Checkoff
|
|
|
89
89
|
cache_method :projects, LONG_CACHE_TIME
|
|
90
90
|
|
|
91
91
|
def projects_by_workspace_name(workspace_name)
|
|
92
|
-
workspace = @workspaces.
|
|
92
|
+
workspace = @workspaces.workspace_or_raise(workspace_name)
|
|
93
93
|
raise "Could not find workspace named #{workspace_name}" unless workspace
|
|
94
94
|
|
|
95
95
|
projects.find_by_workspace(workspace: workspace.gid)
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
def my_tasks(workspace_name)
|
|
99
|
-
workspace = @workspaces.
|
|
99
|
+
workspace = @workspaces.workspace_or_raise(workspace_name)
|
|
100
100
|
result = client.user_task_lists.get_user_task_list_for_user(user_gid: 'me',
|
|
101
101
|
workspace: workspace.gid)
|
|
102
102
|
gid = result.gid
|
data/lib/checkoff/sections.rb
CHANGED
|
@@ -4,6 +4,7 @@ require 'forwardable'
|
|
|
4
4
|
require_relative 'projects'
|
|
5
5
|
require_relative 'workspaces'
|
|
6
6
|
require_relative 'clients'
|
|
7
|
+
require_relative 'my_tasks'
|
|
7
8
|
|
|
8
9
|
module Checkoff
|
|
9
10
|
# Query different sections of Asana projects
|
|
@@ -14,7 +15,7 @@ module Checkoff
|
|
|
14
15
|
|
|
15
16
|
extend Forwardable
|
|
16
17
|
|
|
17
|
-
attr_reader :projects, :workspaces, :time
|
|
18
|
+
attr_reader :projects, :workspaces, :time, :my_tasks
|
|
18
19
|
|
|
19
20
|
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
20
21
|
projects: Checkoff::Projects.new(config: config),
|
|
@@ -24,8 +25,9 @@ module Checkoff
|
|
|
24
25
|
time: Time)
|
|
25
26
|
@projects = projects
|
|
26
27
|
@workspaces = workspaces
|
|
27
|
-
@
|
|
28
|
+
@my_tasks = Checkoff::MyTasks.new(config: config, projects: projects)
|
|
28
29
|
@client = client
|
|
30
|
+
@time = time
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
# Returns a list of Asana API section objects for a given project
|
|
@@ -38,9 +40,12 @@ module Checkoff
|
|
|
38
40
|
# tasks with section name -> task list of the uncompleted tasks
|
|
39
41
|
def tasks_by_section(workspace_name, project_name)
|
|
40
42
|
project = project_or_raise(workspace_name, project_name)
|
|
41
|
-
|
|
43
|
+
if project_name == :my_tasks
|
|
44
|
+
my_tasks.tasks_by_section_for_my_tasks(project)
|
|
45
|
+
else
|
|
46
|
+
tasks_by_section_for_project(project)
|
|
47
|
+
end
|
|
42
48
|
end
|
|
43
|
-
cache_method :tasks_by_section, SHORT_CACHE_TIME
|
|
44
49
|
|
|
45
50
|
# XXX: Rename to section_tasks
|
|
46
51
|
#
|
|
@@ -83,7 +88,9 @@ module Checkoff
|
|
|
83
88
|
# Given a project object, pull all tasks, then provide a Hash of
|
|
84
89
|
# tasks with section name -> task list of the uncompleted tasks
|
|
85
90
|
def tasks_by_section_for_project(project)
|
|
91
|
+
# print("project: #{project}")
|
|
86
92
|
raw_tasks = projects.tasks_from_project(project)
|
|
93
|
+
# print("raw_tasks[0]: #{raw_tasks[0]}")
|
|
87
94
|
active_tasks = projects.active_tasks(raw_tasks)
|
|
88
95
|
by_section(active_tasks, project.gid)
|
|
89
96
|
end
|
|
@@ -103,7 +110,7 @@ module Checkoff
|
|
|
103
110
|
raise "Could not find task in project_gid #{project_gid}: #{task}" if membership.nil?
|
|
104
111
|
|
|
105
112
|
current_section = membership['section']['name']
|
|
106
|
-
current_section = nil if
|
|
113
|
+
current_section = nil if ['(no section)', 'Untitled section'].include?(current_section)
|
|
107
114
|
by_section[current_section] ||= []
|
|
108
115
|
by_section[current_section] << task
|
|
109
116
|
end
|
data/lib/checkoff/tags.rb
CHANGED
|
@@ -37,7 +37,7 @@ module Checkoff
|
|
|
37
37
|
cache_method :tag_or_raise, LONG_CACHE_TIME
|
|
38
38
|
|
|
39
39
|
def tag(workspace_name, tag_name)
|
|
40
|
-
workspace = workspaces.
|
|
40
|
+
workspace = workspaces.workspace_or_raise(workspace_name)
|
|
41
41
|
tags = client.tags.get_tags_for_workspace(workspace_gid: workspace.gid)
|
|
42
42
|
tags.find { |tag| tag.name == tag_name }
|
|
43
43
|
end
|
data/lib/checkoff/tasks.rb
CHANGED
|
@@ -16,12 +16,15 @@ module Checkoff
|
|
|
16
16
|
|
|
17
17
|
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
18
18
|
sections: Checkoff::Sections.new(config: config),
|
|
19
|
+
clients: Checkoff::Clients.new(config: config),
|
|
20
|
+
client: clients.client,
|
|
19
21
|
time_class: Time,
|
|
20
22
|
asana_task: Asana::Resources::Task)
|
|
21
23
|
@config = config
|
|
22
24
|
@sections = sections
|
|
23
25
|
@time_class = time_class
|
|
24
26
|
@asana_task = asana_task
|
|
27
|
+
@client = client
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
def task_ready?(task)
|
|
@@ -64,9 +67,7 @@ module Checkoff
|
|
|
64
67
|
|
|
65
68
|
private
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
@sections.client
|
|
69
|
-
end
|
|
70
|
+
attr_reader :client
|
|
70
71
|
|
|
71
72
|
def projects
|
|
72
73
|
@projects ||= @sections.projects
|
data/lib/checkoff/version.rb
CHANGED
data/requirements_dev.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
pip==21.
|
|
1
|
+
pip==21.1
|
|
2
2
|
yamllint==1.26.0
|
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.16.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:
|
|
11
|
+
date: 2022-04-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -273,6 +273,7 @@ files:
|
|
|
273
273
|
- ".circleci/config.yml"
|
|
274
274
|
- ".envrc"
|
|
275
275
|
- ".git-hooks/pre_commit/circle_ci.rb"
|
|
276
|
+
- ".gitattributes"
|
|
276
277
|
- ".gitignore"
|
|
277
278
|
- ".overcommit.yml"
|
|
278
279
|
- ".rubocop.yml"
|
|
@@ -303,6 +304,7 @@ files:
|
|
|
303
304
|
- lib/checkoff/config_loader.rb
|
|
304
305
|
- lib/checkoff/create-entity.sh
|
|
305
306
|
- lib/checkoff/custom_fields.rb
|
|
307
|
+
- lib/checkoff/my_tasks.rb
|
|
306
308
|
- lib/checkoff/projects.rb
|
|
307
309
|
- lib/checkoff/sections.rb
|
|
308
310
|
- lib/checkoff/subtasks.rb
|