checkoff 0.35.1 → 0.36.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.git-hooks/pre_commit/circle_ci.rb +3 -0
- data/.git-hooks/pre_commit/punchlist.rb +49 -0
- data/.git-hooks/pre_commit/solargraph_typecheck.rb +57 -0
- data/.overcommit.yml +13 -8
- data/.solargraph.yml +25 -0
- data/Gemfile.lock +7 -1
- data/Makefile +1 -0
- data/bin/solargraph +27 -0
- data/bin/yard +27 -0
- data/checkoff.gemspec +3 -0
- data/fix.sh +2 -12
- data/lib/checkoff/clients.rb +1 -0
- data/lib/checkoff/projects.rb +2 -0
- data/lib/checkoff/tags.rb +1 -0
- data/lib/checkoff/task_searches.rb +5 -1
- data/lib/checkoff/task_selectors.rb +5 -0
- data/lib/checkoff/tasks.rb +12 -2
- data/lib/checkoff/version.rb +1 -1
- data/lib/checkoff.rb +1 -0
- data/package.json +9 -0
- metadata +36 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1695c4a845c22ee1bbdb6ffb62eb1c78b119867b06c1a004e713eab663f315f6
|
4
|
+
data.tar.gz: f55d3aeaf99ff74dba23349ff6b8bd388c92236236fcbc51f34416812b1c5a83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b24d4ebc9fb9d6f82eaf53ea5fa7cbc949dcf9d0df84e93e547c09d364bfe291c90e86222cd092eea0b68a3acae3943cde8225980ce9c4ae5eafd4719685605
|
7
|
+
data.tar.gz: b49d2c7e82b74159b0eec2105d27f91be60e58ecabc4c5074ca14d09f52381baec100d96a88f02eacaefb26447fab43e5df108c848d28c4598aab5f9b23320d3
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'overcommit'
|
4
|
+
require 'overcommit/hook/pre_commit/base'
|
5
|
+
|
6
|
+
# Overcommit configuration
|
7
|
+
module Overcommit
|
8
|
+
module Hook
|
9
|
+
module PreCommit
|
10
|
+
# Runs `punchlist` against any modified Ruby files.
|
11
|
+
class Punchlist < Base
|
12
|
+
# @param stdout [String]
|
13
|
+
# @return [Array<Overcommit::Hook::Message]
|
14
|
+
def parse_output(stdout)
|
15
|
+
stdout.split("\n").map do |line|
|
16
|
+
# @sg-ignore
|
17
|
+
file, line_no, _message = line.split(':', 3)
|
18
|
+
Overcommit::Hook::Message.new(:warning, file, line_no.to_i, line)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def files_glob
|
23
|
+
"{" \
|
24
|
+
"#{applicable_files.join(',')}" \
|
25
|
+
"}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def run
|
29
|
+
# @sg-ignore
|
30
|
+
# @type [Overcommit::Subprocess::Result]
|
31
|
+
result = execute([*command, '-g', files_glob])
|
32
|
+
|
33
|
+
warn result.stderr
|
34
|
+
|
35
|
+
# If the command exited with a non-zero status or produced any output, treat it as a failure
|
36
|
+
if result.status.nonzero? || !result.stdout.empty? || !result.stderr.empty?
|
37
|
+
# Parse the output to create Message objects
|
38
|
+
stdout = result.stdout
|
39
|
+
messages = parse_output(stdout)
|
40
|
+
|
41
|
+
return messages
|
42
|
+
end
|
43
|
+
|
44
|
+
:pass
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'overcommit'
|
4
|
+
require 'overcommit/hook/pre_commit/base'
|
5
|
+
|
6
|
+
# @!override Overcommit::Hook::Base#execute
|
7
|
+
# @return [Overcommit::Subprocess::Result]
|
8
|
+
|
9
|
+
module Overcommit
|
10
|
+
module Hook
|
11
|
+
module PreCommit
|
12
|
+
# Runs `solargraph typecheck` against any modified Ruby files.
|
13
|
+
class SolargraphTypecheck < Base
|
14
|
+
def run
|
15
|
+
errors = []
|
16
|
+
|
17
|
+
applicable_files.each do |file|
|
18
|
+
generate_errors_for_file(file, errors)
|
19
|
+
end
|
20
|
+
|
21
|
+
# output message to stderr
|
22
|
+
errors
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def generate_errors_for_file(file, errors)
|
28
|
+
result = execute(['bundle', 'exec', 'solargraph', 'typecheck', '--level', 'strict', file])
|
29
|
+
return if result.success?
|
30
|
+
|
31
|
+
# @type [String]
|
32
|
+
stdout = result.stdout
|
33
|
+
|
34
|
+
stdout.split("\n").each do |error|
|
35
|
+
error = parse_error(file, error)
|
36
|
+
errors << error unless error.nil?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def parse_error(file, error)
|
41
|
+
# Parse the result for the line number # @type [MatchData]
|
42
|
+
match = error.match(/^(.+?):(\d+)/)
|
43
|
+
return nil unless match
|
44
|
+
|
45
|
+
# @!override MatchData.captures
|
46
|
+
# @return [Array]
|
47
|
+
# @sg-ignore
|
48
|
+
file_path, lineno = match.captures
|
49
|
+
message = error.sub("#{file_path}:#{lineno} - ",
|
50
|
+
"#{file_path}:#{lineno}: ")
|
51
|
+
# Emit the errors in the specified format
|
52
|
+
Overcommit::Hook::Message.new(:error, file, lineno, message)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/.overcommit.yml
CHANGED
@@ -17,15 +17,12 @@
|
|
17
17
|
# Uncomment the following lines to make the configuration take effect.
|
18
18
|
|
19
19
|
PreCommit:
|
20
|
-
# Extend default config at
|
20
|
+
# Extend default config at
|
21
|
+
# https://github.com/sds/overcommit/blob/master/config/default.yml
|
21
22
|
BrokenSymlinks:
|
22
23
|
enabled: true
|
23
24
|
description: 'Check for broken symlinks'
|
24
25
|
quiet: true
|
25
|
-
exclude:
|
26
|
-
# This is a symlink to sibling checkout of vincelifedaily, used
|
27
|
-
# only in local development
|
28
|
-
- config/env.1p
|
29
26
|
RuboCop:
|
30
27
|
enabled: true
|
31
28
|
on_warn: fail # Treat all warnings as failures
|
@@ -38,7 +35,7 @@ PreCommit:
|
|
38
35
|
- '**/Gemfile'
|
39
36
|
- '**/Rakefile'
|
40
37
|
- 'bin/*'
|
41
|
-
- '
|
38
|
+
- 'exe/*'
|
42
39
|
exclude:
|
43
40
|
- db/migrate/*.rb
|
44
41
|
- db/schema.rb
|
@@ -53,6 +50,7 @@ PreCommit:
|
|
53
50
|
- '**/*.sh'
|
54
51
|
YamlLint:
|
55
52
|
enabled: true
|
53
|
+
flags: ['-c', '.yamllint.yml']
|
56
54
|
on_warn: fail
|
57
55
|
CircleCi:
|
58
56
|
required_executable: 'circleci'
|
@@ -60,12 +58,19 @@ PreCommit:
|
|
60
58
|
include:
|
61
59
|
- '.circleci/config.yml'
|
62
60
|
enabled: true
|
61
|
+
SolargraphTypecheck:
|
62
|
+
enabled: true
|
63
|
+
on_warn: fail
|
64
|
+
include:
|
65
|
+
- '**/*.rb'
|
66
|
+
Punchlist:
|
67
|
+
on_warn: fail
|
68
|
+
command: ['bundle', 'exec', 'punchlist']
|
69
|
+
enabled: true
|
63
70
|
|
64
71
|
PrePush:
|
65
72
|
Minitest:
|
66
73
|
command: ['ruby', '-Ilib:test/unit:lib/checkoff', '-rbundler/setup', '-rminitest', "-e 'exit! Minitest.run'"]
|
67
|
-
include:
|
68
|
-
- 'test/unit/**/test*.rb'
|
69
74
|
enabled: true
|
70
75
|
|
71
76
|
#PostCheckout:
|
data/.solargraph.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
include:
|
3
|
+
- "**/*.rb"
|
4
|
+
- ".git-hooks/**/*.rb"
|
5
|
+
exclude:
|
6
|
+
- spec/**/*
|
7
|
+
- test/**/*
|
8
|
+
- vendor/**/*
|
9
|
+
- ".bundle/**/*"
|
10
|
+
require: []
|
11
|
+
domains: []
|
12
|
+
reporters:
|
13
|
+
- rubocop
|
14
|
+
- require_not_found
|
15
|
+
- typecheck:strict
|
16
|
+
- update_errors
|
17
|
+
formatter:
|
18
|
+
rubocop:
|
19
|
+
cops: safe
|
20
|
+
except: []
|
21
|
+
only: []
|
22
|
+
extra_args: []
|
23
|
+
require_paths: []
|
24
|
+
plugins: []
|
25
|
+
max_files: 5000
|
data/Gemfile.lock
CHANGED
@@ -12,7 +12,7 @@ GIT
|
|
12
12
|
PATH
|
13
13
|
remote: .
|
14
14
|
specs:
|
15
|
-
checkoff (0.
|
15
|
+
checkoff (0.36.1)
|
16
16
|
activesupport
|
17
17
|
asana (> 0.10.0)
|
18
18
|
cache_method
|
@@ -134,10 +134,13 @@ GEM
|
|
134
134
|
coderay (~> 1.1)
|
135
135
|
method_source (~> 1.0)
|
136
136
|
public_suffix (5.0.0)
|
137
|
+
punchlist (1.3.0)
|
138
|
+
source_finder (>= 2)
|
137
139
|
racc (1.6.2)
|
138
140
|
rack (3.0.6.1)
|
139
141
|
rainbow (3.1.1)
|
140
142
|
rake (13.0.3)
|
143
|
+
rbs (3.1.0)
|
141
144
|
regexp_parser (2.6.0)
|
142
145
|
reverse_markdown (2.1.1)
|
143
146
|
nokogiri
|
@@ -196,6 +199,7 @@ GEM
|
|
196
199
|
thor (~> 1.0)
|
197
200
|
tilt (~> 2.0)
|
198
201
|
yard (~> 0.9, >= 0.9.24)
|
202
|
+
source_finder (3.2.1)
|
199
203
|
thor (1.2.1)
|
200
204
|
tilt (2.1.0)
|
201
205
|
tomlrb (2.0.3)
|
@@ -232,7 +236,9 @@ DEPENDENCIES
|
|
232
236
|
mocha (~> 2.0.0.alpha.1)
|
233
237
|
overcommit (>= 0.60.0, < 0.61.0)
|
234
238
|
pry
|
239
|
+
punchlist
|
235
240
|
rake (~> 13.0)
|
241
|
+
rbs (> 3.0.3)
|
236
242
|
rspec (>= 3.4)
|
237
243
|
rubocop (~> 1.36, < 1.44)
|
238
244
|
rubocop-minitest
|
data/Makefile
CHANGED
@@ -78,6 +78,7 @@ cicoverage: coverage ## check code coverage
|
|
78
78
|
|
79
79
|
update_from_cookiecutter: ## Bring in changes from template project used to create this repo
|
80
80
|
bundle exec overcommit --uninstall
|
81
|
+
cookiecutter_project_upgrader --help >/dev/null
|
81
82
|
IN_COOKIECUTTER_PROJECT_UPGRADER=1 cookiecutter_project_upgrader || true
|
82
83
|
git checkout cookiecutter-template && git push && git checkout main
|
83
84
|
git checkout main && git pull && git checkout -b update-from-cookiecutter-$$(date +%Y-%m-%d-%H%M)
|
data/bin/solargraph
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'solargraph' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("solargraph", "solargraph")
|
data/bin/yard
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'yard' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("yard", "yard")
|
data/checkoff.gemspec
CHANGED
@@ -42,7 +42,10 @@ Gem::Specification.new do |spec|
|
|
42
42
|
# so let's favor the more recent version...
|
43
43
|
spec.add_development_dependency 'overcommit', ['>=0.60.0', '<0.61.0']
|
44
44
|
spec.add_development_dependency 'pry'
|
45
|
+
spec.add_development_dependency 'punchlist'
|
45
46
|
spec.add_development_dependency 'rake', '~> 13.0'
|
47
|
+
# ensure recent definitions
|
48
|
+
spec.add_development_dependency 'rbs', ['>3.0.3']
|
46
49
|
spec.add_development_dependency 'rspec', '>=3.4'
|
47
50
|
# I haven't adapted things to Gemspec/DevelopmentDependencies yet,
|
48
51
|
# which arrives in 1.44
|
data/fix.sh
CHANGED
@@ -124,18 +124,8 @@ ensure_ruby_versions() {
|
|
124
124
|
|
125
125
|
for ver in $ruby_versions
|
126
126
|
do
|
127
|
-
|
128
|
-
#
|
129
|
-
# https://github.com/rbenv/ruby-build/issues/1747
|
130
|
-
# https://github.com/rbenv/ruby-build/issues/1489
|
131
|
-
# https://bugs.ruby-lang.org/issues/17777
|
132
|
-
if [ "${ver}" == 2.6.7 ]
|
133
|
-
then
|
134
|
-
CFLAGS="-Wno-error=implicit-function-declaration" rbenv install -s "${ver}"
|
135
|
-
else
|
136
|
-
rbenv install -s "${ver}"
|
137
|
-
hash -r # ensure we are seeing latest bundler etc
|
138
|
-
fi
|
127
|
+
rbenv install -s "${ver}"
|
128
|
+
hash -r # ensure we are seeing latest bundler etc
|
139
129
|
done
|
140
130
|
}
|
141
131
|
|
data/lib/checkoff/clients.rb
CHANGED
data/lib/checkoff/projects.rb
CHANGED
@@ -33,6 +33,7 @@ module Checkoff
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# Default options used in Asana API to pull taskso
|
36
|
+
# @return [Hash]
|
36
37
|
def task_options
|
37
38
|
{
|
38
39
|
per_page: 100,
|
@@ -56,6 +57,7 @@ module Checkoff
|
|
56
57
|
end
|
57
58
|
cache_method :project, LONG_CACHE_TIME
|
58
59
|
|
60
|
+
# @return [Asana::Project]
|
59
61
|
def project_or_raise(workspace_name, project_name)
|
60
62
|
project = project(workspace_name, project_name)
|
61
63
|
raise "Could not find project #{project_name} under workspace #{workspace_name}." if project.nil?
|
data/lib/checkoff/tags.rb
CHANGED
@@ -14,7 +14,7 @@ require 'asana/resource_includes/response_helper'
|
|
14
14
|
|
15
15
|
require 'checkoff/internal/search_url'
|
16
16
|
|
17
|
-
# https://developers.asana.com/
|
17
|
+
# https://developers.asana.com/reference/searchtasksforworkspace
|
18
18
|
module Checkoff
|
19
19
|
# Run task searches against the Asana API
|
20
20
|
class TaskSearches
|
@@ -43,6 +43,10 @@ module Checkoff
|
|
43
43
|
@asana_resources_collection_class = asana_resources_collection_class
|
44
44
|
end
|
45
45
|
|
46
|
+
# @param [String] workspace_name
|
47
|
+
# @param [String] url
|
48
|
+
# @param [Array<String>] extra_fields
|
49
|
+
# @return [Array<Asana::Resources::Task>]
|
46
50
|
def task_search(workspace_name, url, extra_fields: [])
|
47
51
|
workspace = workspaces.workspace_or_raise(workspace_name)
|
48
52
|
api_params, task_selector = @search_url_parser.convert_params(url)
|
@@ -7,12 +7,14 @@ require 'cache_method'
|
|
7
7
|
require 'json'
|
8
8
|
require_relative 'internal/config_loader'
|
9
9
|
require_relative 'internal/task_selector_evaluator'
|
10
|
+
require_relative 'tasks'
|
10
11
|
|
11
12
|
# https://developers.asana.com/docs/task-selectors
|
12
13
|
|
13
14
|
module Checkoff
|
14
15
|
# Filter lists of tasks using declarative selectors.
|
15
16
|
class TaskSelectors
|
17
|
+
# @type [Integer]
|
16
18
|
MINUTE = 60
|
17
19
|
HOUR = MINUTE * 60
|
18
20
|
DAY = 24 * HOUR
|
@@ -42,14 +44,17 @@ module Checkoff
|
|
42
44
|
# bundle exec ./task_selectors.rb
|
43
45
|
# :nocov:
|
44
46
|
class << self
|
47
|
+
# @return [String]
|
45
48
|
def project_name
|
46
49
|
ARGV[1] || raise('Please pass project name to pull tasks from as first argument')
|
47
50
|
end
|
48
51
|
|
52
|
+
# @return [String]
|
49
53
|
def workspace_name
|
50
54
|
ARGV[0] || raise('Please pass workspace name as first argument')
|
51
55
|
end
|
52
56
|
|
57
|
+
# @return [Array]
|
53
58
|
def task_selector
|
54
59
|
task_selector_json = ARGV[2] || raise('Please pass task_selector in JSON form as third argument')
|
55
60
|
JSON.parse(task_selector_json)
|
data/lib/checkoff/tasks.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
5
|
require_relative 'sections'
|
6
|
+
require 'asana'
|
6
7
|
|
7
8
|
module Checkoff
|
8
9
|
# Pull tasks from Asana
|
@@ -14,6 +15,7 @@ module Checkoff
|
|
14
15
|
LONG_CACHE_TIME = MINUTE * 15
|
15
16
|
SHORT_CACHE_TIME = MINUTE * 5
|
16
17
|
|
18
|
+
# @param sections [Checkoff::Sections]
|
17
19
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana),
|
18
20
|
client: Checkoff::Clients.new(config: config).client,
|
19
21
|
sections: Checkoff::Sections.new(config: config,
|
@@ -38,6 +40,7 @@ module Checkoff
|
|
38
40
|
end
|
39
41
|
|
40
42
|
# Pull a specific task by name
|
43
|
+
# @return [Asana::Resources::Task, nil]
|
41
44
|
def task(workspace_name, project_name, task_name,
|
42
45
|
section_name: :unspecified,
|
43
46
|
only_uncompleted: true,
|
@@ -50,6 +53,7 @@ module Checkoff
|
|
50
53
|
tasks.find { |task| task.name == task_name }
|
51
54
|
end
|
52
55
|
|
56
|
+
# @return [Asana::Resources::Task]
|
53
57
|
def add_task(name,
|
54
58
|
workspace_gid: default_workspace_gid,
|
55
59
|
assignee_gid: default_assignee_gid)
|
@@ -65,12 +69,13 @@ module Checkoff
|
|
65
69
|
|
66
70
|
private
|
67
71
|
|
72
|
+
# @return [Array<Asana::Resources::Task>]
|
68
73
|
def tasks_from_section(workspace_name, project_name,
|
69
74
|
section_name:,
|
70
75
|
only_uncompleted:,
|
71
76
|
extra_fields:)
|
72
77
|
if section_name == :unspecified
|
73
|
-
project = projects.
|
78
|
+
project = projects.project_or_raise(workspace_name, project_name)
|
74
79
|
projects.tasks_from_project(project,
|
75
80
|
only_uncompleted: only_uncompleted,
|
76
81
|
extra_fields: extra_fields)
|
@@ -83,10 +88,12 @@ module Checkoff
|
|
83
88
|
|
84
89
|
attr_reader :client
|
85
90
|
|
91
|
+
# @return [Checkoff::Projects]
|
86
92
|
def projects
|
87
93
|
@projects ||= @sections.projects
|
88
94
|
end
|
89
95
|
|
96
|
+
# @return [String]
|
90
97
|
def default_assignee_gid
|
91
98
|
@config.fetch(:default_assignee_gid)
|
92
99
|
end
|
@@ -99,13 +106,16 @@ module Checkoff
|
|
99
106
|
end
|
100
107
|
|
101
108
|
def incomplete_dependencies?(task)
|
102
|
-
# Avoid a
|
109
|
+
# Avoid a redundant fetch. Unfortunately, Ruby SDK allows
|
103
110
|
# dependencies to be fetched along with other attributes--but
|
104
111
|
# then doesn't use it and does another HTTP GET! At least this
|
105
112
|
# way we can skip the extra HTTP GET in the common case when
|
106
113
|
# there are no dependencies.
|
107
114
|
#
|
108
115
|
# https://github.com/Asana/ruby-asana/issues/125
|
116
|
+
|
117
|
+
# @sg-ignore
|
118
|
+
# @type [Array<Asana::Resources::Task>, nil]
|
109
119
|
already_fetched_dependencies = task.instance_variable_get(:@dependencies)
|
110
120
|
return false unless already_fetched_dependencies.nil? || already_fetched_dependencies.size.positive?
|
111
121
|
|
data/lib/checkoff/version.rb
CHANGED
data/lib/checkoff.rb
CHANGED
data/package.json
ADDED
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.36.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: 2023-05-
|
11
|
+
date: 2023-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -212,6 +212,20 @@ dependencies:
|
|
212
212
|
- - ">="
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: punchlist
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - ">="
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '0'
|
215
229
|
- !ruby/object:Gem::Dependency
|
216
230
|
name: rake
|
217
231
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,6 +240,20 @@ dependencies:
|
|
226
240
|
- - "~>"
|
227
241
|
- !ruby/object:Gem::Version
|
228
242
|
version: '13.0'
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
name: rbs
|
245
|
+
requirement: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - ">"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: 3.0.3
|
250
|
+
type: :development
|
251
|
+
prerelease: false
|
252
|
+
version_requirements: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - ">"
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: 3.0.3
|
229
257
|
- !ruby/object:Gem::Dependency
|
230
258
|
name: rspec
|
231
259
|
requirement: !ruby/object:Gem::Requirement
|
@@ -368,12 +396,15 @@ extra_rdoc_files: []
|
|
368
396
|
files:
|
369
397
|
- ".circleci/config.yml"
|
370
398
|
- ".git-hooks/pre_commit/circle_ci.rb"
|
399
|
+
- ".git-hooks/pre_commit/punchlist.rb"
|
400
|
+
- ".git-hooks/pre_commit/solargraph_typecheck.rb"
|
371
401
|
- ".gitattributes"
|
372
402
|
- ".gitignore"
|
373
403
|
- ".markdownlint_style.rb"
|
374
404
|
- ".mdlrc"
|
375
405
|
- ".overcommit.yml"
|
376
406
|
- ".rubocop.yml"
|
407
|
+
- ".solargraph.yml"
|
377
408
|
- ".yamllint.yml"
|
378
409
|
- CODE_OF_CONDUCT.md
|
379
410
|
- CONTRIBUTING.rst
|
@@ -391,6 +422,8 @@ files:
|
|
391
422
|
- bin/rake
|
392
423
|
- bin/rubocop
|
393
424
|
- bin/setup
|
425
|
+
- bin/solargraph
|
426
|
+
- bin/yard
|
394
427
|
- checkoff.gemspec
|
395
428
|
- docs/cookiecutter_input.json
|
396
429
|
- docs/example_project.png
|
@@ -436,6 +469,7 @@ files:
|
|
436
469
|
- metrics/rubocop_high_water_mark
|
437
470
|
- metrics/scalastyle_high_water_mark
|
438
471
|
- metrics/shellcheck_high_water_mark
|
472
|
+
- package.json
|
439
473
|
- rakelib/citest.rake
|
440
474
|
- rakelib/clear_metrics.rake
|
441
475
|
- rakelib/console.rake
|