checkoff 0.5.2 → 0.5.3
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/.rubocop.yml +127 -2
- data/checkoff.gemspec +4 -4
- data/lib/checkoff/cli.rb +14 -10
- data/lib/checkoff/config_loader.rb +0 -1
- data/lib/checkoff/projects.rb +4 -5
- data/lib/checkoff/sections.rb +7 -7
- data/lib/checkoff/tasks.rb +1 -1
- data/lib/checkoff/version.rb +1 -1
- data/lib/tasks/quality.rake +2 -2
- data/metrics/bigfiles_high_water_mark +1 -1
- data/metrics/rubocop_high_water_mark +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c4947b2573662cc82bf0fd8652c9efc13169326fb70952e3794aecd3a071a1c
|
|
4
|
+
data.tar.gz: 97d4f7ec0a0781a62750462fc0a7428980f06a6d084c029b832897f854fd3d32
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 02e3a309b680887411309fa3f33d8f14a325889f1bfbf5c18790cec9ab20aa80a0e71ab38fdcfa7eefe523474dd2a56bf0443b3523fc0cb0bd90719dd380fcf9
|
|
7
|
+
data.tar.gz: 22f2339cda88ee9ee63d6009e945d29bf2a7d9b552b0eae3d2a39892bc1f85e3ce373afd341fde97d24719ad89fbf804250fd4450761a4920ab00bc0e17b465d
|
data/.rubocop.yml
CHANGED
|
@@ -67,9 +67,134 @@ Style/StringLiterals:
|
|
|
67
67
|
- double_quotes
|
|
68
68
|
ConsistentQuotesInMultiline: true
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
Layout/BeginEndAlignment: # (new in 0.91)
|
|
71
|
+
Enabled: true
|
|
72
|
+
Layout/EmptyLinesAroundAttributeAccessor: # (new in 0.83)
|
|
73
|
+
Enabled: true
|
|
74
|
+
Layout/SpaceAroundMethodCallOperator: # (new in 0.82)
|
|
75
|
+
Enabled: true
|
|
76
|
+
Lint/BinaryOperatorWithIdenticalOperands: # (new in 0.89)
|
|
77
|
+
Enabled: true
|
|
78
|
+
Lint/ConstantDefinitionInBlock: # (new in 0.91)
|
|
79
|
+
Enabled: true
|
|
80
|
+
Lint/DeprecatedOpenSSLConstant: # (new in 0.84)
|
|
81
|
+
Enabled: true
|
|
82
|
+
Lint/DuplicateElsifCondition: # (new in 0.88)
|
|
83
|
+
Enabled: true
|
|
84
|
+
Lint/DuplicateRequire: # (new in 0.90)
|
|
85
|
+
Enabled: true
|
|
86
|
+
Lint/DuplicateRescueException: # (new in 0.89)
|
|
87
|
+
Enabled: true
|
|
88
|
+
Lint/EmptyConditionalBody: # (new in 0.89)
|
|
89
|
+
Enabled: true
|
|
90
|
+
Lint/EmptyFile: # (new in 0.90)
|
|
91
|
+
Enabled: true
|
|
92
|
+
Lint/FloatComparison: # (new in 0.89)
|
|
93
|
+
Enabled: true
|
|
94
|
+
Lint/IdentityComparison: # (new in 0.91)
|
|
95
|
+
Enabled: true
|
|
96
|
+
Lint/MissingSuper: # (new in 0.89)
|
|
97
|
+
Enabled: true
|
|
98
|
+
Lint/MixedRegexpCaptureTypes: # (new in 0.85)
|
|
99
|
+
Enabled: true
|
|
100
|
+
Lint/OutOfRangeRegexpRef: # (new in 0.89)
|
|
101
|
+
Enabled: true
|
|
102
|
+
Lint/RaiseException: # (new in 0.81)
|
|
103
|
+
Enabled: true
|
|
104
|
+
Lint/SelfAssignment: # (new in 0.89)
|
|
105
|
+
Enabled: true
|
|
106
|
+
Lint/StructNewOverride: # (new in 0.81)
|
|
107
|
+
Enabled: true
|
|
108
|
+
Lint/TopLevelReturnWithArgument: # (new in 0.89)
|
|
109
|
+
Enabled: true
|
|
110
|
+
Lint/TrailingCommaInAttributeDeclaration: # (new in 0.90)
|
|
111
|
+
Enabled: true
|
|
112
|
+
Lint/UnreachableLoop: # (new in 0.89)
|
|
113
|
+
Enabled: true
|
|
114
|
+
Lint/UselessMethodDefinition: # (new in 0.90)
|
|
115
|
+
Enabled: true
|
|
116
|
+
Lint/UselessTimes: # (new in 0.91)
|
|
117
|
+
Enabled: true
|
|
118
|
+
Style/AccessorGrouping: # (new in 0.87)
|
|
119
|
+
Enabled: true
|
|
120
|
+
Style/BisectedAttrAccessor: # (new in 0.87)
|
|
121
|
+
Enabled: true
|
|
122
|
+
Style/CaseLikeIf: # (new in 0.88)
|
|
123
|
+
Enabled: true
|
|
124
|
+
Style/CombinableLoops: # (new in 0.90)
|
|
125
|
+
Enabled: true
|
|
126
|
+
Style/ExplicitBlockArgument: # (new in 0.89)
|
|
127
|
+
Enabled: true
|
|
128
|
+
Style/ExponentialNotation: # (new in 0.82)
|
|
129
|
+
Enabled: true
|
|
130
|
+
Style/GlobalStdStream: # (new in 0.89)
|
|
131
|
+
Enabled: true
|
|
132
|
+
Style/HashAsLastArrayItem: # (new in 0.88)
|
|
133
|
+
Enabled: true
|
|
134
|
+
Style/HashEachMethods: # (new in 0.80)
|
|
135
|
+
Enabled: true
|
|
136
|
+
Style/HashLikeCase: # (new in 0.88)
|
|
137
|
+
Enabled: true
|
|
138
|
+
Style/HashTransformKeys: # (new in 0.80)
|
|
139
|
+
Enabled: true
|
|
140
|
+
Style/HashTransformValues: # (new in 0.80)
|
|
141
|
+
Enabled: true
|
|
142
|
+
Style/KeywordParametersOrder: # (new in 0.90)
|
|
143
|
+
Enabled: true
|
|
144
|
+
Style/OptionalBooleanParameter: # (new in 0.89)
|
|
145
|
+
Enabled: true
|
|
146
|
+
Style/RedundantAssignment: # (new in 0.87)
|
|
147
|
+
Enabled: true
|
|
148
|
+
Style/RedundantFetchBlock: # (new in 0.86)
|
|
149
|
+
Enabled: true
|
|
150
|
+
Style/RedundantFileExtensionInRequire: # (new in 0.88)
|
|
151
|
+
Enabled: true
|
|
152
|
+
Style/RedundantRegexpCharacterClass: # (new in 0.85)
|
|
153
|
+
Enabled: true
|
|
154
|
+
Style/RedundantRegexpEscape: # (new in 0.85)
|
|
155
|
+
Enabled: true
|
|
156
|
+
Style/RedundantSelfAssignment: # (new in 0.90)
|
|
157
|
+
Enabled: true
|
|
158
|
+
Style/SingleArgumentDig: # (new in 0.89)
|
|
159
|
+
Enabled: true
|
|
160
|
+
Style/SlicingWithRange: # (new in 0.83)
|
|
161
|
+
Enabled: true
|
|
162
|
+
Style/SoleNestedConditional: # (new in 0.89)
|
|
163
|
+
Enabled: true
|
|
164
|
+
Style/StringConcatenation: # (new in 0.89)
|
|
165
|
+
Enabled: true
|
|
166
|
+
Minitest/AssertInDelta: # (new in 0.10)
|
|
167
|
+
Enabled: true
|
|
168
|
+
Minitest/AssertionInLifecycleHook: # (new in 0.10)
|
|
169
|
+
Enabled: true
|
|
170
|
+
Minitest/AssertKindOf: # (new in 0.10)
|
|
171
|
+
Enabled: true
|
|
172
|
+
Minitest/AssertOutput: # (new in 0.10)
|
|
173
|
+
Enabled: true
|
|
174
|
+
Minitest/AssertPathExists: # (new in 0.10)
|
|
175
|
+
Enabled: true
|
|
176
|
+
Minitest/AssertSilent: # (new in 0.10)
|
|
177
|
+
Enabled: true
|
|
178
|
+
Minitest/LiteralAsActualArgument: # (new in 0.10)
|
|
179
|
+
Enabled: true
|
|
180
|
+
Minitest/MultipleAssertions: # (new in 0.10)
|
|
181
|
+
Enabled: true
|
|
182
|
+
Minitest/RefuteInDelta: # (new in 0.10)
|
|
183
|
+
Enabled: true
|
|
184
|
+
Minitest/RefuteKindOf: # (new in 0.10)
|
|
185
|
+
Enabled: true
|
|
186
|
+
Minitest/RefutePathExists: # (new in 0.10)
|
|
187
|
+
Enabled: true
|
|
188
|
+
Minitest/TestMethodName: # (new in 0.10)
|
|
189
|
+
# This gives false positives when non-test methods exist...
|
|
190
|
+
Enabled: false
|
|
191
|
+
Minitest/UnspecifiedException: # (new in 0.10)
|
|
192
|
+
Enabled: true
|
|
193
|
+
RSpec/StubbedMock: # (new in 1.44)
|
|
194
|
+
Enabled: true
|
|
72
195
|
|
|
196
|
+
AllCops:
|
|
197
|
+
TargetRubyVersion: 2.6
|
|
73
198
|
|
|
74
199
|
require:
|
|
75
200
|
- rubocop-rspec
|
data/checkoff.gemspec
CHANGED
|
@@ -10,12 +10,12 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.version = Checkoff::VERSION
|
|
11
11
|
spec.authors = ['Vince Broz']
|
|
12
12
|
spec.email = ['vince@broz.cc']
|
|
13
|
-
|
|
14
13
|
spec.summary = 'Command-line and gem client for Asana (unofficial)'
|
|
15
14
|
spec.homepage = 'http://github.com/apiology/checkoff'
|
|
16
15
|
spec.license = 'MIT'
|
|
16
|
+
spec.required_ruby_version = '>= 2.6'
|
|
17
17
|
|
|
18
|
-
spec.files
|
|
18
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
19
19
|
f.match(%r{^(test|spec|features)/})
|
|
20
20
|
end
|
|
21
21
|
spec.bindir = 'exe'
|
|
@@ -23,14 +23,14 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.require_paths = ['lib']
|
|
24
24
|
|
|
25
25
|
spec.add_runtime_dependency 'activesupport'
|
|
26
|
-
spec.add_runtime_dependency 'asana'
|
|
26
|
+
spec.add_runtime_dependency 'asana', '>0.10.0'
|
|
27
27
|
spec.add_runtime_dependency 'cache_method'
|
|
28
28
|
spec.add_runtime_dependency 'dalli'
|
|
29
29
|
|
|
30
30
|
spec.add_development_dependency 'bundler'
|
|
31
31
|
spec.add_development_dependency 'minitest-profile'
|
|
32
32
|
spec.add_development_dependency 'mocha'
|
|
33
|
-
spec.add_development_dependency 'quality', '~>
|
|
33
|
+
spec.add_development_dependency 'quality', '~> 38'
|
|
34
34
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
35
35
|
spec.add_development_dependency 'rspec', '>=3.4'
|
|
36
36
|
spec.add_development_dependency 'simplecov'
|
data/lib/checkoff/cli.rb
CHANGED
|
@@ -15,11 +15,13 @@ module Checkoff
|
|
|
15
15
|
class CLI
|
|
16
16
|
attr_reader :sections, :stderr
|
|
17
17
|
|
|
18
|
-
def initialize(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
19
|
+
workspaces: Checkoff::Workspaces.new(config: config),
|
|
20
|
+
projects: Checkoff::Projects.new(config: config),
|
|
21
|
+
sections: Checkoff::Sections.new(config: config,
|
|
22
|
+
projects: projects),
|
|
23
|
+
tasks: Checkoff::Tasks.new(config: config),
|
|
24
|
+
stderr: $stderr,
|
|
23
25
|
kernel: Kernel)
|
|
24
26
|
@workspaces = workspaces
|
|
25
27
|
@projects = projects
|
|
@@ -87,9 +89,10 @@ module Checkoff
|
|
|
87
89
|
def parse_args(args)
|
|
88
90
|
mode = args[0]
|
|
89
91
|
subargs = OpenStruct.new
|
|
90
|
-
|
|
92
|
+
case mode
|
|
93
|
+
when 'view'
|
|
91
94
|
parse_view_args(subargs, args)
|
|
92
|
-
|
|
95
|
+
when 'quickadd'
|
|
93
96
|
parse_quickadd_args(subargs, args)
|
|
94
97
|
else
|
|
95
98
|
raise
|
|
@@ -107,7 +110,7 @@ module Checkoff
|
|
|
107
110
|
end
|
|
108
111
|
|
|
109
112
|
def view(workspace_name, project_name, section_name)
|
|
110
|
-
project_name = project_name[1
|
|
113
|
+
project_name = project_name[1..].to_sym if project_name.start_with? ':'
|
|
111
114
|
if section_name.nil?
|
|
112
115
|
run_on_project(workspace_name, project_name)
|
|
113
116
|
else
|
|
@@ -118,9 +121,10 @@ module Checkoff
|
|
|
118
121
|
def run(args)
|
|
119
122
|
validate_args!(args)
|
|
120
123
|
command, subargs = parse_args(args)
|
|
121
|
-
|
|
124
|
+
case command
|
|
125
|
+
when 'view'
|
|
122
126
|
view(subargs.workspace, subargs.project, subargs.section)
|
|
123
|
-
|
|
127
|
+
when 'quickadd'
|
|
124
128
|
quickadd(subargs.workspace, subargs.task_name)
|
|
125
129
|
else
|
|
126
130
|
raise
|
data/lib/checkoff/projects.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'config_loader'
|
|
2
4
|
|
|
3
|
-
# frozen_string_literal: true
|
|
4
5
|
require 'cache_method'
|
|
5
6
|
require 'asana'
|
|
6
7
|
|
|
@@ -25,7 +26,7 @@ module Checkoff
|
|
|
25
26
|
|
|
26
27
|
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
27
28
|
asana_client: Asana::Client,
|
|
28
|
-
workspaces: Checkoff::Workspaces.new)
|
|
29
|
+
workspaces: Checkoff::Workspaces.new(config: config))
|
|
29
30
|
@config = config
|
|
30
31
|
@asana_client = asana_client
|
|
31
32
|
@workspaces = workspaces
|
|
@@ -50,9 +51,7 @@ module Checkoff
|
|
|
50
51
|
def my_tasks(workspace_name)
|
|
51
52
|
my_tasks = @config[:my_tasks]
|
|
52
53
|
gid = @config[:my_tasks][workspace_name] unless my_tasks.nil?
|
|
53
|
-
if my_tasks.nil? || gid.nil?
|
|
54
|
-
raise "Please define [:my_tasks][#{workspace_name}] in config file"
|
|
55
|
-
end
|
|
54
|
+
raise "Please define [:my_tasks][#{workspace_name}] in config file" if my_tasks.nil? || gid.nil?
|
|
56
55
|
|
|
57
56
|
projects.find_by_id(gid)
|
|
58
57
|
end
|
data/lib/checkoff/sections.rb
CHANGED
|
@@ -13,7 +13,8 @@ module Checkoff
|
|
|
13
13
|
|
|
14
14
|
attr_reader :projects, :time
|
|
15
15
|
|
|
16
|
-
def initialize(
|
|
16
|
+
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
17
|
+
projects: Checkoff::Projects.new(config: config),
|
|
17
18
|
time: Time)
|
|
18
19
|
@projects = projects
|
|
19
20
|
@time = time
|
|
@@ -23,9 +24,7 @@ module Checkoff
|
|
|
23
24
|
|
|
24
25
|
def file_task_by_section(by_section, task, project_gid)
|
|
25
26
|
membership = task.memberships.find { |m| m.project.gid == project_gid }
|
|
26
|
-
if membership.nil?
|
|
27
|
-
raise "Could not find task in project_gid #{project_gid}: #{task}"
|
|
28
|
-
end
|
|
27
|
+
raise "Could not find task in project_gid #{project_gid}: #{task}" if membership.nil?
|
|
29
28
|
|
|
30
29
|
current_section = membership.section.name
|
|
31
30
|
current_section = nil if current_section == '(no section)'
|
|
@@ -90,11 +89,12 @@ module Checkoff
|
|
|
90
89
|
|
|
91
90
|
def tasks_by_section(workspace_name, project_name)
|
|
92
91
|
project = project_or_raise(workspace_name, project_name)
|
|
93
|
-
|
|
92
|
+
case project_name
|
|
93
|
+
when :my_tasks_new
|
|
94
94
|
tasks_by_section_for_project_and_assignee_status(project, 'inbox')
|
|
95
|
-
|
|
95
|
+
when :my_tasks_today
|
|
96
96
|
tasks_by_section_for_project_and_assignee_status(project, 'today')
|
|
97
|
-
|
|
97
|
+
when :my_tasks_upcoming
|
|
98
98
|
tasks_by_section_for_project_and_assignee_status(project, 'upcoming')
|
|
99
99
|
else
|
|
100
100
|
tasks_by_section_for_project(project)
|
data/lib/checkoff/tasks.rb
CHANGED
|
@@ -15,7 +15,7 @@ module Checkoff
|
|
|
15
15
|
SHORT_CACHE_TIME = MINUTE * 5
|
|
16
16
|
|
|
17
17
|
def initialize(config: Checkoff::ConfigLoader.load(:asana),
|
|
18
|
-
sections: Checkoff::Sections.new,
|
|
18
|
+
sections: Checkoff::Sections.new(config: config),
|
|
19
19
|
asana_task: Asana::Resources::Task)
|
|
20
20
|
@config = config
|
|
21
21
|
@sections = sections
|
data/lib/checkoff/version.rb
CHANGED
data/lib/tasks/quality.rake
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require 'quality/rake/task'
|
|
4
4
|
|
|
5
5
|
Quality::Rake::Task.new do |task|
|
|
6
|
-
task.skip_tools = [
|
|
6
|
+
task.skip_tools = %w[reek cane eslint jscs pycodestyle rails_best_practices flake8]
|
|
7
7
|
task.output_dir = 'metrics'
|
|
8
|
-
task.exclude_files = ['docs/example_project.png']
|
|
8
|
+
task.exclude_files = ['docs/example_project.png', '.rubocop.yml']
|
|
9
9
|
end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
414
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4
|
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.5.
|
|
4
|
+
version: 0.5.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vince Broz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -28,16 +28,16 @@ dependencies:
|
|
|
28
28
|
name: asana
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 0.10.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - ">"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: 0.10.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: cache_method
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,14 +114,14 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
117
|
+
version: '38'
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
124
|
+
version: '38'
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
126
|
name: rake
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -235,7 +235,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
235
235
|
requirements:
|
|
236
236
|
- - ">="
|
|
237
237
|
- !ruby/object:Gem::Version
|
|
238
|
-
version: '
|
|
238
|
+
version: '2.6'
|
|
239
239
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
240
|
requirements:
|
|
241
241
|
- - ">="
|