ci-syntax-tool 0.1.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/.gitignore +3 -0
- data/LICENSE +27 -0
- data/README.md +109 -0
- data/Rakefile +43 -0
- data/bin/ci-syntax-tool +12 -0
- data/ci-syntax-tool.gemspec +27 -0
- data/lib/ci-syntax-tool.rb +6 -0
- data/lib/ci-syntax-tool/checker.rb +63 -0
- data/lib/ci-syntax-tool/command_line.rb +229 -0
- data/lib/ci-syntax-tool/format/base.rb +50 -0
- data/lib/ci-syntax-tool/format/junit.rb +54 -0
- data/lib/ci-syntax-tool/format/progress.rb +60 -0
- data/lib/ci-syntax-tool/format_factory.rb +55 -0
- data/lib/ci-syntax-tool/language/base.rb +56 -0
- data/lib/ci-syntax-tool/language/yaml.rb +41 -0
- data/lib/ci-syntax-tool/language_factory.rb +41 -0
- data/lib/ci-syntax-tool/result.rb +134 -0
- data/lib/ci-syntax-tool/version.rb +10 -0
- data/rubocop.yml +11 -0
- data/test/features/.keep +0 -0
- data/test/features/command-line-help.feature +15 -0
- data/test/features/format-junit.feature +29 -0
- data/test/features/language-yaml.feature +34 -0
- data/test/features/pluggable-formatters.feature +42 -0
- data/test/features/pluggable-languages.feature +15 -0
- data/test/features/require-ruby.feature +38 -0
- data/test/features/step_definitions/cli_steps.rb +46 -0
- data/test/features/step_definitions/format_steps.rb +63 -0
- data/test/features/step_definitions/junit_steps.rb +57 -0
- data/test/features/step_definitions/language_steps.rb +39 -0
- data/test/features/step_definitions/require_steps.rb +38 -0
- data/test/features/support/feature_helper.rb +142 -0
- data/test/fixtures/.keep +0 -0
- data/test/fixtures/files/clean/README.md +6 -0
- data/test/fixtures/files/clean/ansiblish.yaml +12 -0
- data/test/fixtures/files/clean/kitchenish.yml +17 -0
- data/test/fixtures/files/clean/rubocopish.yaml +11 -0
- data/test/fixtures/files/error/bad-indentation.yaml +5 -0
- data/test/fixtures/files/error/missing-array-element.yaml +5 -0
- data/test/fixtures/files/error/unquoted-jinja-template.yaml +3 -0
- data/test/fixtures/files/error/very-high-yaml-version.yaml +3 -0
- data/test/fixtures/require/invalid.rb +6 -0
- data/test/fixtures/require/mock_format.rb +10 -0
- data/test/fixtures/require/second.rb +10 -0
- data/test/fixtures/require/valid.rb +10 -0
- data/test/unit/.keep +0 -0
- data/test/unit/format_factory_spec.rb +46 -0
- data/test/unit/language_factory_spec.rb +46 -0
- data/test/unit/result_spec.rb +18 -0
- data/test/unit/spec_helper.rb +31 -0
- metadata +201 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
require_relative '../../../lib/ci-syntax-tool'
|
2
|
+
require 'minitest'
|
3
|
+
|
4
|
+
require 'byebug'
|
5
|
+
|
6
|
+
module CI
|
7
|
+
module Syntax
|
8
|
+
module Tool
|
9
|
+
module FeatureHelpers
|
10
|
+
|
11
|
+
include MiniTest::Assertions
|
12
|
+
|
13
|
+
attr_writer :assertions
|
14
|
+
def assertions
|
15
|
+
@assertions ||= 0
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_check(command_line_args)
|
19
|
+
|
20
|
+
# puts "RAW CLI: " + command_line_args.inspect # DEBUG
|
21
|
+
|
22
|
+
# Capture any stdout and stderr
|
23
|
+
sio_out = StringIO.new
|
24
|
+
old_stdout = $stdout
|
25
|
+
$stdout = sio_out
|
26
|
+
sio_err = StringIO.new
|
27
|
+
old_stderr = $stderr
|
28
|
+
$stderr = sio_err
|
29
|
+
|
30
|
+
overall_result = nil
|
31
|
+
cli_opts = CI::Syntax::Tool::CommandLine.new(command_line_args)
|
32
|
+
# puts "COOKED CLI: " + cli_opts.options.inspect # DEBUG
|
33
|
+
if cli_opts.runnable?
|
34
|
+
checker = CI::Syntax::Tool::Checker.new(cli_opts)
|
35
|
+
exit_status = checker.run()
|
36
|
+
overall_result = checker.overall_result
|
37
|
+
else
|
38
|
+
exit_status = cli_opts.non_runnable_exit_status
|
39
|
+
end
|
40
|
+
|
41
|
+
$stdout = old_stdout
|
42
|
+
$stderr = old_stderr
|
43
|
+
|
44
|
+
result = {
|
45
|
+
stdout: sio_out.string,
|
46
|
+
stderr: sio_err.string,
|
47
|
+
exit_status: exit_status,
|
48
|
+
overall_result: overall_result,
|
49
|
+
}
|
50
|
+
# puts "Results: " + result.inspect # DEBUG
|
51
|
+
return result
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
def list_cli_opts
|
56
|
+
return [
|
57
|
+
{s: 'V', l: 'version', d: 'Show ci-syntax-tool version'},
|
58
|
+
{s: 'h', l: 'help', d: 'Show this help message'},
|
59
|
+
{s: 'l', l: 'lang LANG', d: 'Select this language for checking. Repeatable. Default, all languages.'},
|
60
|
+
{ l: 'list-languages', d: 'List available languages and exit.'},
|
61
|
+
{s: 'f', l: 'format FORMAT', d: 'Use this format for output. Repeatable, but if repeated, must have an equal number of --output options.'},
|
62
|
+
{s: 'o', l: 'output PATH', d: 'Write formatted output to this location. Use "-" to represent STDOUT. Defaults to STDOUT if zero or one --format option used. Repeatable with an equal number of --format options.'},
|
63
|
+
{ l: 'list-formats', d: 'List available formats and exit.'},
|
64
|
+
{s: 'r', l: 'require RUBYFILE', d: 'Load additional Ruby code, perhaps for a custom language or format. Repeatable.'},
|
65
|
+
{s: 'd', l: 'debug', d: 'Provide debug-level output to STDOUT.'},
|
66
|
+
]
|
67
|
+
end
|
68
|
+
|
69
|
+
def list_core_languages
|
70
|
+
return [
|
71
|
+
'YAML',
|
72
|
+
]
|
73
|
+
end
|
74
|
+
|
75
|
+
def list_core_formats
|
76
|
+
return [
|
77
|
+
'JUnit',
|
78
|
+
'Progress',
|
79
|
+
]
|
80
|
+
end
|
81
|
+
|
82
|
+
def assert_usage_message
|
83
|
+
list_cli_opts.each do |opt|
|
84
|
+
re = '\s+'
|
85
|
+
re += '-' if opt[:s]
|
86
|
+
re += opt[:s] if opt[:s]
|
87
|
+
re += ',' if opt[:s]
|
88
|
+
re += '\s+'
|
89
|
+
re += '--' + opt[:l]
|
90
|
+
re += '\s+'
|
91
|
+
re += opt[:d]
|
92
|
+
re += '\s+'
|
93
|
+
assert_match(Regexp.new(re), @run_result[:stdout], "The '#{opt[:l]}' option should be present")
|
94
|
+
end
|
95
|
+
# TODO - check for spurious options?
|
96
|
+
end
|
97
|
+
|
98
|
+
def assert_language_list
|
99
|
+
seen = @run_result[:stdout].split("\n").sort
|
100
|
+
expected = list_core_languages.sort
|
101
|
+
assert_equal(expected, seen, 'The list of supported languages should match')
|
102
|
+
end
|
103
|
+
|
104
|
+
def assert_format_list
|
105
|
+
seen = @run_result[:stdout].split("\n").sort
|
106
|
+
expected = list_core_formats.sort
|
107
|
+
assert_equal(expected, seen, 'The list of supported formats should match')
|
108
|
+
end
|
109
|
+
|
110
|
+
def assert_class_loaded(klass)
|
111
|
+
begin
|
112
|
+
Kernel.const_get(klass)
|
113
|
+
rescue NameError => e
|
114
|
+
flunk("Expected Class #{klass} to have been loaded")
|
115
|
+
rescue StandardError => e
|
116
|
+
raise
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def files_matching_language(files, lang_name)
|
121
|
+
globs = LanguageFactory.create(lang_name).combined_globs
|
122
|
+
matches = []
|
123
|
+
globs.each do |glob|
|
124
|
+
re = glob.gsub('.', '\.')
|
125
|
+
re = glob.gsub('**/', '.+')
|
126
|
+
re = re.gsub('*', '.+')
|
127
|
+
re += '$'
|
128
|
+
re = Regexp.new(re)
|
129
|
+
files.select {|fn1| fn1.match(re) }.each do |fn2|
|
130
|
+
matches << fn2
|
131
|
+
end
|
132
|
+
end
|
133
|
+
matches
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
|
142
|
+
World(CI::Syntax::Tool::FeatureHelpers)
|
data/test/fixtures/.keep
ADDED
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
driver:
|
3
|
+
name: vagrant
|
4
|
+
|
5
|
+
provisioner:
|
6
|
+
name: chef_zero
|
7
|
+
|
8
|
+
platforms:
|
9
|
+
- name: ubuntu-14.04
|
10
|
+
driver_config:
|
11
|
+
network:
|
12
|
+
- ["forwarded_port", {guest: 80, host: 8080, auto_correct: true}]
|
13
|
+
|
14
|
+
suites:
|
15
|
+
- name: default
|
16
|
+
run_list:
|
17
|
+
- recipe[awesomesauce::default]
|
data/test/unit/.keep
ADDED
File without changes
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative './spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe CI::Syntax::Tool::FormatFactory, "#all_format_classes" do
|
4
|
+
|
5
|
+
it "should return a list of Classes" do
|
6
|
+
langs = CI::Syntax::Tool::FormatFactory.all_format_classes
|
7
|
+
langs.each do |lang|
|
8
|
+
expect(lang).to be_kind_of(Class)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.describe CI::Syntax::Tool::FormatFactory, "#all_format_names" do
|
15
|
+
|
16
|
+
it "should return a list of Strings" do
|
17
|
+
lang_names = CI::Syntax::Tool::FormatFactory.all_format_names
|
18
|
+
lang_names.each do |lang|
|
19
|
+
expect(lang).to be_kind_of(String)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not return Base among the format names" do
|
24
|
+
lang_names = CI::Syntax::Tool::FormatFactory.all_format_names
|
25
|
+
expect(lang_names).not_to include('Base')
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should include the expected format names" do
|
29
|
+
lang_names = CI::Syntax::Tool::FormatFactory.all_format_names
|
30
|
+
[
|
31
|
+
'Progress',
|
32
|
+
].each do |lang|
|
33
|
+
expect(lang_names).to include(lang)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
RSpec.describe CI::Syntax::Tool::FormatFactory, "#create" do
|
40
|
+
it "should be able to create one of each format with a single arg" do
|
41
|
+
CI::Syntax::Tool::FormatFactory.all_format_names.each do |fmt_name|
|
42
|
+
lang_obj = CI::Syntax::Tool::FormatFactory.create(fmt_name, 'test/tmp/dest-unit-0')
|
43
|
+
expect(lang_obj).to be_kind_of CI::Syntax::Tool::Format::Base
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative './spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe CI::Syntax::Tool::LanguageFactory, "#all_language_classes" do
|
4
|
+
|
5
|
+
it "should return a list of Classes" do
|
6
|
+
langs = CI::Syntax::Tool::LanguageFactory.all_language_classes
|
7
|
+
langs.each do |lang|
|
8
|
+
expect(lang).to be_kind_of(Class)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.describe CI::Syntax::Tool::LanguageFactory, "#all_language_names" do
|
15
|
+
|
16
|
+
it "should return a list of Strings" do
|
17
|
+
lang_names = CI::Syntax::Tool::LanguageFactory.all_language_names
|
18
|
+
lang_names.each do |lang|
|
19
|
+
expect(lang).to be_kind_of(String)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not return Base among the language names" do
|
24
|
+
lang_names = CI::Syntax::Tool::LanguageFactory.all_language_names
|
25
|
+
expect(lang_names).not_to include('Base')
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should include the expected language names" do
|
29
|
+
lang_names = CI::Syntax::Tool::LanguageFactory.all_language_names
|
30
|
+
[
|
31
|
+
'YAML',
|
32
|
+
].each do |lang|
|
33
|
+
expect(lang_names).to include(lang)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
RSpec.describe CI::Syntax::Tool::LanguageFactory, "#create" do
|
40
|
+
it "should be able to create one of each language with no args" do
|
41
|
+
CI::Syntax::Tool::LanguageFactory.all_language_names.each do |lang_name|
|
42
|
+
lang_obj = CI::Syntax::Tool::LanguageFactory.create(lang_name)
|
43
|
+
expect(lang_obj).to be_kind_of CI::Syntax::Tool::Language::Base
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative './spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe CI::Syntax::Tool::Issue, "#constructor" do
|
4
|
+
|
5
|
+
it "should be an error-level issue by default" do
|
6
|
+
issue = CI::Syntax::Tool::Issue.new
|
7
|
+
expect(issue.level).to be :error
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.describe CI::Syntax::Tool::Result::FileResult, "#issue counting" do
|
13
|
+
it "should have zero issues by default" do
|
14
|
+
fr = CI::Syntax::Tool::Result::FileResult.new('fake.yaml')
|
15
|
+
expect(fr.warning_count).to eq 0
|
16
|
+
expect(fr.error_count).to eq 0
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../../lib/ci-syntax-tool'
|
2
|
+
|
3
|
+
require 'rspec'
|
4
|
+
require 'rspec/core'
|
5
|
+
|
6
|
+
RSpec.configure do |config|
|
7
|
+
|
8
|
+
config.expect_with :rspec do |expectations|
|
9
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
10
|
+
end
|
11
|
+
|
12
|
+
config.mock_with :rspec do |mocks|
|
13
|
+
mocks.verify_partial_doubles = true
|
14
|
+
end
|
15
|
+
|
16
|
+
config.disable_monkey_patching!
|
17
|
+
|
18
|
+
config.warnings = true
|
19
|
+
|
20
|
+
|
21
|
+
if config.files_to_run.one?
|
22
|
+
config.default_formatter = 'doc'
|
23
|
+
end
|
24
|
+
|
25
|
+
config.profile_examples = 10
|
26
|
+
|
27
|
+
config.order = :random
|
28
|
+
|
29
|
+
Kernel.srand config.seed
|
30
|
+
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,201 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ci-syntax-tool
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Clinton Wolfe
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cucumber
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.28'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.28'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.6'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.6'
|
83
|
+
description: Checks YAML, JSON, Ruby, ERB, and other syntaxes, then reports errors
|
84
|
+
and OKs in a nice way for your CI system.
|
85
|
+
email:
|
86
|
+
- clinton@omniti.com
|
87
|
+
executables:
|
88
|
+
- ci-syntax-tool
|
89
|
+
extensions: []
|
90
|
+
extra_rdoc_files: []
|
91
|
+
files:
|
92
|
+
- ".gitignore"
|
93
|
+
- LICENSE
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- bin/ci-syntax-tool
|
97
|
+
- ci-syntax-tool.gemspec
|
98
|
+
- lib/ci-syntax-tool.rb
|
99
|
+
- lib/ci-syntax-tool/checker.rb
|
100
|
+
- lib/ci-syntax-tool/command_line.rb
|
101
|
+
- lib/ci-syntax-tool/format/base.rb
|
102
|
+
- lib/ci-syntax-tool/format/junit.rb
|
103
|
+
- lib/ci-syntax-tool/format/progress.rb
|
104
|
+
- lib/ci-syntax-tool/format_factory.rb
|
105
|
+
- lib/ci-syntax-tool/language/base.rb
|
106
|
+
- lib/ci-syntax-tool/language/yaml.rb
|
107
|
+
- lib/ci-syntax-tool/language_factory.rb
|
108
|
+
- lib/ci-syntax-tool/result.rb
|
109
|
+
- lib/ci-syntax-tool/version.rb
|
110
|
+
- rubocop.yml
|
111
|
+
- test/features/.keep
|
112
|
+
- test/features/command-line-help.feature
|
113
|
+
- test/features/format-junit.feature
|
114
|
+
- test/features/language-yaml.feature
|
115
|
+
- test/features/pluggable-formatters.feature
|
116
|
+
- test/features/pluggable-languages.feature
|
117
|
+
- test/features/require-ruby.feature
|
118
|
+
- test/features/step_definitions/cli_steps.rb
|
119
|
+
- test/features/step_definitions/format_steps.rb
|
120
|
+
- test/features/step_definitions/junit_steps.rb
|
121
|
+
- test/features/step_definitions/language_steps.rb
|
122
|
+
- test/features/step_definitions/require_steps.rb
|
123
|
+
- test/features/support/feature_helper.rb
|
124
|
+
- test/fixtures/.keep
|
125
|
+
- test/fixtures/files/clean/README.md
|
126
|
+
- test/fixtures/files/clean/ansiblish.yaml
|
127
|
+
- test/fixtures/files/clean/kitchenish.yml
|
128
|
+
- test/fixtures/files/clean/rubocopish.yaml
|
129
|
+
- test/fixtures/files/error/bad-indentation.yaml
|
130
|
+
- test/fixtures/files/error/missing-array-element.yaml
|
131
|
+
- test/fixtures/files/error/unquoted-jinja-template.yaml
|
132
|
+
- test/fixtures/files/error/very-high-yaml-version.yaml
|
133
|
+
- test/fixtures/require/invalid.rb
|
134
|
+
- test/fixtures/require/mock_format.rb
|
135
|
+
- test/fixtures/require/second.rb
|
136
|
+
- test/fixtures/require/valid.rb
|
137
|
+
- test/tmp/.keep
|
138
|
+
- test/unit/.keep
|
139
|
+
- test/unit/format_factory_spec.rb
|
140
|
+
- test/unit/language_factory_spec.rb
|
141
|
+
- test/unit/result_spec.rb
|
142
|
+
- test/unit/spec_helper.rb
|
143
|
+
homepage: https://github.com/clintoncwolfe/ci-syntax-tool
|
144
|
+
licenses:
|
145
|
+
- BSD (3-clause)
|
146
|
+
metadata: {}
|
147
|
+
post_install_message:
|
148
|
+
rdoc_options: []
|
149
|
+
require_paths:
|
150
|
+
- lib
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
requirements: []
|
162
|
+
rubyforge_project:
|
163
|
+
rubygems_version: 2.4.8
|
164
|
+
signing_key:
|
165
|
+
specification_version: 4
|
166
|
+
summary: A Rubygem implementing a suite of source code syntax checkers, with well-behaved
|
167
|
+
output fo use with CI engines.
|
168
|
+
test_files:
|
169
|
+
- test/features/.keep
|
170
|
+
- test/features/command-line-help.feature
|
171
|
+
- test/features/format-junit.feature
|
172
|
+
- test/features/language-yaml.feature
|
173
|
+
- test/features/pluggable-formatters.feature
|
174
|
+
- test/features/pluggable-languages.feature
|
175
|
+
- test/features/require-ruby.feature
|
176
|
+
- test/features/step_definitions/cli_steps.rb
|
177
|
+
- test/features/step_definitions/format_steps.rb
|
178
|
+
- test/features/step_definitions/junit_steps.rb
|
179
|
+
- test/features/step_definitions/language_steps.rb
|
180
|
+
- test/features/step_definitions/require_steps.rb
|
181
|
+
- test/features/support/feature_helper.rb
|
182
|
+
- test/fixtures/.keep
|
183
|
+
- test/fixtures/files/clean/README.md
|
184
|
+
- test/fixtures/files/clean/ansiblish.yaml
|
185
|
+
- test/fixtures/files/clean/kitchenish.yml
|
186
|
+
- test/fixtures/files/clean/rubocopish.yaml
|
187
|
+
- test/fixtures/files/error/bad-indentation.yaml
|
188
|
+
- test/fixtures/files/error/missing-array-element.yaml
|
189
|
+
- test/fixtures/files/error/unquoted-jinja-template.yaml
|
190
|
+
- test/fixtures/files/error/very-high-yaml-version.yaml
|
191
|
+
- test/fixtures/require/invalid.rb
|
192
|
+
- test/fixtures/require/mock_format.rb
|
193
|
+
- test/fixtures/require/second.rb
|
194
|
+
- test/fixtures/require/valid.rb
|
195
|
+
- test/tmp/.keep
|
196
|
+
- test/unit/.keep
|
197
|
+
- test/unit/format_factory_spec.rb
|
198
|
+
- test/unit/language_factory_spec.rb
|
199
|
+
- test/unit/result_spec.rb
|
200
|
+
- test/unit/spec_helper.rb
|
201
|
+
has_rdoc:
|