ace-lint 0.25.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 +7 -0
- data/.ace-defaults/lint/config.yml +5 -0
- data/.ace-defaults/lint/kramdown.yml +23 -0
- data/.ace-defaults/lint/markdown.yml +16 -0
- data/.ace-defaults/lint/ruby.yml +67 -0
- data/.ace-defaults/lint/skills.yml +138 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-lint.yml +11 -0
- data/CHANGELOG.md +584 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +14 -0
- data/exe/ace-lint +14 -0
- data/handbook/skills/as-lint-fix-issue-from/SKILL.md +34 -0
- data/handbook/skills/as-lint-process-report/SKILL.md +29 -0
- data/handbook/skills/as-lint-run/SKILL.md +27 -0
- data/handbook/workflow-instructions/lint/process-report.wf.md +175 -0
- data/handbook/workflow-instructions/lint/run.wf.md +145 -0
- data/lib/ace/lint/atoms/allowed_tools_validator.rb +100 -0
- data/lib/ace/lint/atoms/base_runner.rb +239 -0
- data/lib/ace/lint/atoms/comment_validator.rb +63 -0
- data/lib/ace/lint/atoms/config_locator.rb +162 -0
- data/lib/ace/lint/atoms/frontmatter_extractor.rb +74 -0
- data/lib/ace/lint/atoms/kramdown_parser.rb +81 -0
- data/lib/ace/lint/atoms/pattern_matcher.rb +96 -0
- data/lib/ace/lint/atoms/rubocop_runner.rb +67 -0
- data/lib/ace/lint/atoms/skill_schema_loader.rb +83 -0
- data/lib/ace/lint/atoms/standardrb_runner.rb +45 -0
- data/lib/ace/lint/atoms/type_detector.rb +121 -0
- data/lib/ace/lint/atoms/validator_registry.rb +113 -0
- data/lib/ace/lint/atoms/yaml_parser.rb +11 -0
- data/lib/ace/lint/atoms/yaml_validator.rb +69 -0
- data/lib/ace/lint/cli/commands/lint.rb +318 -0
- data/lib/ace/lint/cli.rb +25 -0
- data/lib/ace/lint/models/lint_result.rb +87 -0
- data/lib/ace/lint/models/validation_error.rb +31 -0
- data/lib/ace/lint/molecules/frontmatter_validator.rb +131 -0
- data/lib/ace/lint/molecules/group_resolver.rb +122 -0
- data/lib/ace/lint/molecules/kramdown_formatter.rb +66 -0
- data/lib/ace/lint/molecules/markdown_linter.rb +249 -0
- data/lib/ace/lint/molecules/offense_deduplicator.rb +65 -0
- data/lib/ace/lint/molecules/ruby_linter.rb +205 -0
- data/lib/ace/lint/molecules/skill_validator.rb +462 -0
- data/lib/ace/lint/molecules/validator_chain.rb +150 -0
- data/lib/ace/lint/molecules/yaml_linter.rb +53 -0
- data/lib/ace/lint/organisms/lint_doctor.rb +289 -0
- data/lib/ace/lint/organisms/lint_orchestrator.rb +294 -0
- data/lib/ace/lint/organisms/report_generator.rb +213 -0
- data/lib/ace/lint/organisms/result_reporter.rb +130 -0
- data/lib/ace/lint/version.rb +7 -0
- data/lib/ace/lint.rb +141 -0
- metadata +248 -0
data/lib/ace/lint.rb
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lint/version"
|
|
4
|
+
|
|
5
|
+
# Load ace-config for configuration cascade management
|
|
6
|
+
require "ace/support/config"
|
|
7
|
+
|
|
8
|
+
# Load ace-b36ts for compact ID generation
|
|
9
|
+
require "ace/b36ts"
|
|
10
|
+
|
|
11
|
+
# Models
|
|
12
|
+
require_relative "lint/models/validation_error"
|
|
13
|
+
require_relative "lint/models/lint_result"
|
|
14
|
+
|
|
15
|
+
# Atoms
|
|
16
|
+
require_relative "lint/atoms/type_detector"
|
|
17
|
+
require_relative "lint/atoms/kramdown_parser"
|
|
18
|
+
require_relative "lint/atoms/yaml_validator"
|
|
19
|
+
require_relative "lint/atoms/frontmatter_extractor"
|
|
20
|
+
require_relative "lint/atoms/pattern_matcher"
|
|
21
|
+
require_relative "lint/atoms/validator_registry"
|
|
22
|
+
require_relative "lint/atoms/config_locator"
|
|
23
|
+
require_relative "lint/atoms/skill_schema_loader"
|
|
24
|
+
require_relative "lint/atoms/allowed_tools_validator"
|
|
25
|
+
require_relative "lint/atoms/comment_validator"
|
|
26
|
+
|
|
27
|
+
# Molecules
|
|
28
|
+
require_relative "lint/molecules/markdown_linter"
|
|
29
|
+
require_relative "lint/molecules/yaml_linter"
|
|
30
|
+
require_relative "lint/molecules/frontmatter_validator"
|
|
31
|
+
require_relative "lint/molecules/kramdown_formatter"
|
|
32
|
+
require_relative "lint/molecules/group_resolver"
|
|
33
|
+
require_relative "lint/molecules/validator_chain"
|
|
34
|
+
require_relative "lint/molecules/skill_validator"
|
|
35
|
+
|
|
36
|
+
# Organisms
|
|
37
|
+
require_relative "lint/organisms/lint_orchestrator"
|
|
38
|
+
require_relative "lint/organisms/result_reporter"
|
|
39
|
+
require_relative "lint/organisms/report_generator"
|
|
40
|
+
require_relative "lint/organisms/lint_doctor"
|
|
41
|
+
|
|
42
|
+
# Commands
|
|
43
|
+
require_relative "lint/cli/commands/lint"
|
|
44
|
+
|
|
45
|
+
# CLI
|
|
46
|
+
require_relative "lint/cli"
|
|
47
|
+
|
|
48
|
+
module Ace
|
|
49
|
+
module Lint
|
|
50
|
+
class Error < StandardError; end
|
|
51
|
+
|
|
52
|
+
# Check if debug mode is enabled
|
|
53
|
+
# @return [Boolean] True if debug mode is enabled
|
|
54
|
+
def self.debug?
|
|
55
|
+
ENV["ACE_DEBUG"] == "1" || ENV["DEBUG"] == "1"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Load general ace-lint configuration using ace-config cascade
|
|
59
|
+
# Follows ADR-022: Configuration Default and Override Pattern
|
|
60
|
+
# @return [Hash] Configuration hash with defaults merged
|
|
61
|
+
def self.config
|
|
62
|
+
@config ||= resolve_lint_config(nil, "config.yml")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Load kramdown-specific configuration using ace-config cascade
|
|
66
|
+
# Config location: .ace/lint/kramdown.yml
|
|
67
|
+
# @return [Hash] Kramdown configuration hash with defaults merged
|
|
68
|
+
def self.kramdown_config
|
|
69
|
+
@kramdown_config ||= resolve_lint_config("kramdown", "kramdown.yml")
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Load Ruby-specific configuration using ace-config cascade
|
|
73
|
+
# Config location: .ace/lint/ruby.yml
|
|
74
|
+
# @return [Hash] Ruby configuration hash with defaults merged
|
|
75
|
+
def self.ruby_config
|
|
76
|
+
@ruby_config ||= resolve_lint_config("ruby", "ruby.yml")
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Load Markdown-specific configuration using ace-config cascade
|
|
80
|
+
# Config location: .ace/lint/markdown.yml
|
|
81
|
+
# @return [Hash] Markdown configuration hash with defaults merged
|
|
82
|
+
def self.markdown_config
|
|
83
|
+
@markdown_config ||= resolve_lint_config("markdown", "markdown.yml")
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Reset config cache (useful for testing)
|
|
87
|
+
def self.reset_config!
|
|
88
|
+
@config = nil
|
|
89
|
+
@kramdown_config = nil
|
|
90
|
+
@ruby_config = nil
|
|
91
|
+
@markdown_config = nil
|
|
92
|
+
Atoms::SkillSchemaLoader.reset_cache!
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Resolve lint configuration using ace-config cascade
|
|
96
|
+
# Follows ADR-022: Configuration Default and Override Pattern
|
|
97
|
+
# @param filename_base [String, nil] Config filename without extension (nil for default config)
|
|
98
|
+
# @param fallback_filename [String] Fallback filename for gem defaults
|
|
99
|
+
# @return [Hash] Configuration hash with defaults merged
|
|
100
|
+
def self.resolve_lint_config(filename_base, fallback_filename)
|
|
101
|
+
gem_root = Gem.loaded_specs["ace-lint"]&.gem_dir ||
|
|
102
|
+
File.expand_path("../..", __dir__)
|
|
103
|
+
|
|
104
|
+
resolver = Ace::Support::Config.create(
|
|
105
|
+
config_dir: ".ace",
|
|
106
|
+
defaults_dir: ".ace-defaults",
|
|
107
|
+
gem_path: gem_root
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
config = if filename_base
|
|
111
|
+
resolver.resolve_namespace("lint", filename: filename_base)
|
|
112
|
+
else
|
|
113
|
+
resolver.resolve_namespace("lint")
|
|
114
|
+
end
|
|
115
|
+
config.data
|
|
116
|
+
rescue => e
|
|
117
|
+
warn "Warning: Could not load #{fallback_filename} config: #{e.message}" if debug?
|
|
118
|
+
load_gem_defaults_fallback("lint", fallback_filename)
|
|
119
|
+
end
|
|
120
|
+
private_class_method :resolve_lint_config
|
|
121
|
+
|
|
122
|
+
# Load gem defaults directly as fallback when cascade resolution fails
|
|
123
|
+
# This ensures configuration is never silently erased due to YAML errors
|
|
124
|
+
# or user config issues
|
|
125
|
+
# @param namespace [String] Config namespace (e.g., "lint")
|
|
126
|
+
# @param filename [String] Config filename (e.g., "config.yml", "kramdown.yml")
|
|
127
|
+
# @return [Hash] Defaults hash or empty hash if defaults also fail
|
|
128
|
+
def self.load_gem_defaults_fallback(namespace, filename)
|
|
129
|
+
gem_root = Gem.loaded_specs["ace-lint"]&.gem_dir ||
|
|
130
|
+
File.expand_path("../..", __dir__)
|
|
131
|
+
defaults_path = File.join(gem_root, ".ace-defaults", namespace, filename)
|
|
132
|
+
|
|
133
|
+
return {} unless File.exist?(defaults_path)
|
|
134
|
+
|
|
135
|
+
YAML.safe_load_file(defaults_path, permitted_classes: [Date], aliases: true) || {}
|
|
136
|
+
rescue
|
|
137
|
+
{} # Only return empty hash if even defaults fail to load
|
|
138
|
+
end
|
|
139
|
+
private_class_method :load_gem_defaults_fallback
|
|
140
|
+
end
|
|
141
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: ace-lint
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.25.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Michal Czyz
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: ace-support-config
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.8'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0.8'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: ace-support-core
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0.25'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0.25'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: ace-b36ts
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0.7'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0.7'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: ace-support-cli
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0.3'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0.3'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: kramdown
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '2.4'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '2.4'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: kramdown-parser-gfm
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - "~>"
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '1.1'
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - "~>"
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '1.1'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: colorize
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - "~>"
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '1.1'
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '1.1'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: minitest
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - "~>"
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: '5.19'
|
|
117
|
+
type: :development
|
|
118
|
+
prerelease: false
|
|
119
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '5.19'
|
|
124
|
+
- !ruby/object:Gem::Dependency
|
|
125
|
+
name: rake
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '13.0'
|
|
131
|
+
type: :development
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - "~>"
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '13.0'
|
|
138
|
+
- !ruby/object:Gem::Dependency
|
|
139
|
+
name: rubocop
|
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '1.57'
|
|
145
|
+
type: :development
|
|
146
|
+
prerelease: false
|
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - "~>"
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '1.57'
|
|
152
|
+
- !ruby/object:Gem::Dependency
|
|
153
|
+
name: simplecov
|
|
154
|
+
requirement: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - "~>"
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: '0.22'
|
|
159
|
+
type: :development
|
|
160
|
+
prerelease: false
|
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
162
|
+
requirements:
|
|
163
|
+
- - "~>"
|
|
164
|
+
- !ruby/object:Gem::Version
|
|
165
|
+
version: '0.22'
|
|
166
|
+
description: ace-lint provides Ruby-native linting for markdown (kramdown), YAML (Psych),
|
|
167
|
+
Ruby files (StandardRB/RuboCop), and frontmatter without Node.js or Python dependencies.
|
|
168
|
+
email:
|
|
169
|
+
- mc@cs3b.com
|
|
170
|
+
executables:
|
|
171
|
+
- ace-lint
|
|
172
|
+
extensions: []
|
|
173
|
+
extra_rdoc_files: []
|
|
174
|
+
files:
|
|
175
|
+
- ".ace-defaults/lint/config.yml"
|
|
176
|
+
- ".ace-defaults/lint/kramdown.yml"
|
|
177
|
+
- ".ace-defaults/lint/markdown.yml"
|
|
178
|
+
- ".ace-defaults/lint/ruby.yml"
|
|
179
|
+
- ".ace-defaults/lint/skills.yml"
|
|
180
|
+
- ".ace-defaults/nav/protocols/wfi-sources/ace-lint.yml"
|
|
181
|
+
- CHANGELOG.md
|
|
182
|
+
- LICENSE
|
|
183
|
+
- README.md
|
|
184
|
+
- Rakefile
|
|
185
|
+
- exe/ace-lint
|
|
186
|
+
- handbook/skills/as-lint-fix-issue-from/SKILL.md
|
|
187
|
+
- handbook/skills/as-lint-process-report/SKILL.md
|
|
188
|
+
- handbook/skills/as-lint-run/SKILL.md
|
|
189
|
+
- handbook/workflow-instructions/lint/process-report.wf.md
|
|
190
|
+
- handbook/workflow-instructions/lint/run.wf.md
|
|
191
|
+
- lib/ace/lint.rb
|
|
192
|
+
- lib/ace/lint/atoms/allowed_tools_validator.rb
|
|
193
|
+
- lib/ace/lint/atoms/base_runner.rb
|
|
194
|
+
- lib/ace/lint/atoms/comment_validator.rb
|
|
195
|
+
- lib/ace/lint/atoms/config_locator.rb
|
|
196
|
+
- lib/ace/lint/atoms/frontmatter_extractor.rb
|
|
197
|
+
- lib/ace/lint/atoms/kramdown_parser.rb
|
|
198
|
+
- lib/ace/lint/atoms/pattern_matcher.rb
|
|
199
|
+
- lib/ace/lint/atoms/rubocop_runner.rb
|
|
200
|
+
- lib/ace/lint/atoms/skill_schema_loader.rb
|
|
201
|
+
- lib/ace/lint/atoms/standardrb_runner.rb
|
|
202
|
+
- lib/ace/lint/atoms/type_detector.rb
|
|
203
|
+
- lib/ace/lint/atoms/validator_registry.rb
|
|
204
|
+
- lib/ace/lint/atoms/yaml_parser.rb
|
|
205
|
+
- lib/ace/lint/atoms/yaml_validator.rb
|
|
206
|
+
- lib/ace/lint/cli.rb
|
|
207
|
+
- lib/ace/lint/cli/commands/lint.rb
|
|
208
|
+
- lib/ace/lint/models/lint_result.rb
|
|
209
|
+
- lib/ace/lint/models/validation_error.rb
|
|
210
|
+
- lib/ace/lint/molecules/frontmatter_validator.rb
|
|
211
|
+
- lib/ace/lint/molecules/group_resolver.rb
|
|
212
|
+
- lib/ace/lint/molecules/kramdown_formatter.rb
|
|
213
|
+
- lib/ace/lint/molecules/markdown_linter.rb
|
|
214
|
+
- lib/ace/lint/molecules/offense_deduplicator.rb
|
|
215
|
+
- lib/ace/lint/molecules/ruby_linter.rb
|
|
216
|
+
- lib/ace/lint/molecules/skill_validator.rb
|
|
217
|
+
- lib/ace/lint/molecules/validator_chain.rb
|
|
218
|
+
- lib/ace/lint/molecules/yaml_linter.rb
|
|
219
|
+
- lib/ace/lint/organisms/lint_doctor.rb
|
|
220
|
+
- lib/ace/lint/organisms/lint_orchestrator.rb
|
|
221
|
+
- lib/ace/lint/organisms/report_generator.rb
|
|
222
|
+
- lib/ace/lint/organisms/result_reporter.rb
|
|
223
|
+
- lib/ace/lint/version.rb
|
|
224
|
+
homepage: https://github.com/cs3b/ace
|
|
225
|
+
licenses:
|
|
226
|
+
- MIT
|
|
227
|
+
metadata:
|
|
228
|
+
homepage_uri: https://github.com/cs3b/ace
|
|
229
|
+
source_code_uri: https://github.com/cs3b/ace/tree/main/ace-lint/
|
|
230
|
+
changelog_uri: https://github.com/cs3b/ace/blob/main/ace-lint/CHANGELOG.md
|
|
231
|
+
rdoc_options: []
|
|
232
|
+
require_paths:
|
|
233
|
+
- lib
|
|
234
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
235
|
+
requirements:
|
|
236
|
+
- - ">="
|
|
237
|
+
- !ruby/object:Gem::Version
|
|
238
|
+
version: 3.2.0
|
|
239
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
240
|
+
requirements:
|
|
241
|
+
- - ">="
|
|
242
|
+
- !ruby/object:Gem::Version
|
|
243
|
+
version: '0'
|
|
244
|
+
requirements: []
|
|
245
|
+
rubygems_version: 3.6.9
|
|
246
|
+
specification_version: 4
|
|
247
|
+
summary: Ruby-native linting for markdown, YAML, and Ruby with no Node.js or Python
|
|
248
|
+
test_files: []
|