danger-swiftlint 0.10.1 → 0.10.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/danger-swiftlint +2 -0
- data/ext/swiftlint/Rakefile +7 -7
- data/ext/swiftlint/swiftlint.rb +10 -10
- data/lib/danger_plugin.rb +58 -55
- data/lib/version.rb +4 -2
- data/spec/danger_plugin_spec.rb +58 -46
- data/spec/spec_helper.rb +12 -10
- data/spec/swiftlint_spec.rb +12 -12
- metadata +2 -24
- data/.gitignore +0 -53
- data/.ruby-version +0 -1
- data/Changelog.md +0 -74
- data/Gemfile +0 -10
- data/Gemfile.lock +0 -130
- data/Guardfile +0 -21
- data/LICENSE +0 -21
- data/README.md +0 -61
- data/Rakefile +0 -14
- data/danger-swiftlint.gemspec +0 -45
- data/spec/fixtures/SwiftFile.swift +0 -1
- data/spec/fixtures/empty_excluded.yml +0 -7
- data/spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift +0 -1
- data/spec/fixtures/excluded_dir/SwiftFileThatShouldNotBeIncluded.swift +0 -1
- data/spec/fixtures/some_config.yml +0 -8
- data/spec/fixtures/some_dir/SwiftFile.swift +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18a143487b60e3af2f374acebf0f22493b1906a8
|
4
|
+
data.tar.gz: 80dbc5a826284cc2b73f30c0356974247532a597
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb8c96ef07981c6db9a5b879adfc6a9c51f1fd4bf30ab1f4826d786149fcbfb89e170f3870b50b8447dadf1d868b003d206c80e670890ae8fa5c25771b5e77af
|
7
|
+
data.tar.gz: ca3faab2254f588ddf10cf0e4c939c81c5d3f096ea59b0f17ac1b0cfe886a3da531b7276b27cb4b4bcec483bf3f26bb74d3647422e843c2b5145917ac5a85e79
|
data/bin/danger-swiftlint
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
if $PROGRAM_NAME == __FILE__
|
4
5
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
@@ -6,6 +7,7 @@ end
|
|
6
7
|
require 'thor'
|
7
8
|
require 'version'
|
8
9
|
|
10
|
+
# The class defining the CLI interface of the plugin.
|
9
11
|
class DangerSwiftlintCLI < Thor
|
10
12
|
desc 'version', 'The version of the installed danger-swiftlint plugin'
|
11
13
|
def version
|
data/ext/swiftlint/Rakefile
CHANGED
@@ -1,12 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../lib/version'
|
2
4
|
|
3
5
|
namespace :swiftlint do
|
4
|
-
|
5
|
-
desc "Download and install swiftlint tool"
|
6
|
+
desc 'Download and install swiftlint tool'
|
6
7
|
task :install do
|
7
|
-
REPO =
|
8
|
-
VERSION = ENV[
|
9
|
-
ASSET =
|
8
|
+
REPO = 'https://github.com/realm/SwiftLint'
|
9
|
+
VERSION = ENV['SWIFTLINT_VERSION'] || DangerSwiftlint::SWIFTLINT_VERSION
|
10
|
+
ASSET = 'portable_swiftlint.zip'
|
10
11
|
URL = "#{REPO}/releases/download/#{VERSION}/#{ASSET}"
|
11
12
|
DESTINATION = File.expand_path(File.join(File.dirname(__FILE__), 'bin'))
|
12
13
|
|
@@ -16,9 +17,8 @@ namespace :swiftlint do
|
|
16
17
|
"curl -s -L #{URL} -o #{ASSET}",
|
17
18
|
"unzip -q #{ASSET} -d #{DESTINATION}",
|
18
19
|
"rm #{ASSET}"
|
19
|
-
].join(
|
20
|
+
].join(' && ')
|
20
21
|
end
|
21
|
-
|
22
22
|
end
|
23
23
|
|
24
24
|
task default: 'swiftlint:install'
|
data/ext/swiftlint/swiftlint.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
3
|
+
# A wrapper to use SwiftLint via a Ruby API.
|
2
4
|
class Swiftlint
|
3
|
-
def initialize(swiftlint_path=nil)
|
5
|
+
def initialize(swiftlint_path = nil)
|
4
6
|
@swiftlint_path = swiftlint_path
|
5
7
|
end
|
6
8
|
|
7
9
|
# Runs swiftlint
|
8
|
-
def run(cmd='lint', additional_swiftlint_args='', options={})
|
10
|
+
def run(cmd = 'lint', additional_swiftlint_args = '', options = {})
|
9
11
|
# change pwd before run swiftlint
|
10
|
-
if options.
|
11
|
-
Dir.chdir options.delete(:pwd)
|
12
|
-
end
|
12
|
+
Dir.chdir options.delete(:pwd) if options.key? :pwd
|
13
13
|
|
14
14
|
# run swiftlint with provided options
|
15
15
|
`#{swiftlint_path} #{cmd} #{swiftlint_arguments(options, additional_swiftlint_args)}`
|
@@ -21,13 +21,13 @@ class Swiftlint
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Return true if swiftlint is installed or false otherwise
|
24
|
-
def
|
24
|
+
def installed?
|
25
25
|
File.exist?(swiftlint_path)
|
26
26
|
end
|
27
27
|
|
28
28
|
# Return swiftlint execution path
|
29
29
|
def swiftlint_path
|
30
|
-
@swiftlint_path
|
30
|
+
@swiftlint_path || default_swiftlint_path
|
31
31
|
end
|
32
32
|
|
33
33
|
private
|
@@ -35,10 +35,10 @@ class Swiftlint
|
|
35
35
|
# Parse options into shell arguments how swift expect it to be
|
36
36
|
# more information: https://github.com/Carthage/Commandant
|
37
37
|
# @param options (Hash) hash containing swiftlint options
|
38
|
-
def swiftlint_arguments
|
38
|
+
def swiftlint_arguments(options, additional_swiftlint_args)
|
39
39
|
(options.
|
40
40
|
# filter not null
|
41
|
-
|
41
|
+
reject { |_key, value| value.nil? }.
|
42
42
|
# map booleans arguments equal true
|
43
43
|
map { |key, value| value.is_a?(TrueClass) ? [key, ''] : [key, value] }.
|
44
44
|
# map booleans arguments equal false
|
@@ -48,7 +48,7 @@ class Swiftlint
|
|
48
48
|
# prepend '--' into the argument
|
49
49
|
map { |key, value| ["--#{key}", value] }.
|
50
50
|
# reduce everything into a single string
|
51
|
-
reduce('') { |args, option| "#{args} #{option[0]} #{option[1]}"} +
|
51
|
+
reduce('') { |args, option| "#{args} #{option[0]} #{option[1]}" } +
|
52
52
|
" #{additional_swiftlint_args}").
|
53
53
|
# strip leading spaces
|
54
54
|
strip
|
data/lib/danger_plugin.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'find'
|
2
4
|
require 'yaml'
|
3
5
|
require 'shellwords'
|
4
6
|
require_relative '../ext/swiftlint/swiftlint'
|
5
7
|
|
6
8
|
module Danger
|
7
|
-
|
8
9
|
# Lint Swift files inside your projects.
|
9
10
|
# This is done using the [SwiftLint](https://github.com/realm/SwiftLint) tool.
|
10
11
|
# Results are passed out as a table in markdown.
|
@@ -32,34 +33,34 @@ module Danger
|
|
32
33
|
attr_accessor :verbose
|
33
34
|
|
34
35
|
# Lints Swift files. Will fail if `swiftlint` cannot be installed correctly.
|
35
|
-
# Generates a `markdown` list of warnings for the prose in a corpus of
|
36
|
+
# Generates a `markdown` list of warnings for the prose in a corpus of
|
37
|
+
# .markdown and .md files.
|
36
38
|
#
|
37
39
|
# @param [String] files
|
38
|
-
# A globbed string which should return the files that you want to
|
40
|
+
# A globbed string which should return the files that you want to
|
41
|
+
# lint, defaults to nil.
|
39
42
|
# if nil, modified and added files from the diff will be used.
|
40
43
|
# @return [void]
|
41
44
|
#
|
42
|
-
def lint_files(files=nil, inline_mode: false, fail_on_error: false, additional_swiftlint_args:
|
45
|
+
def lint_files(files = nil, inline_mode: false, fail_on_error: false, additional_swiftlint_args: '')
|
43
46
|
# Fails if swiftlint isn't installed
|
44
|
-
raise
|
47
|
+
raise 'swiftlint is not installed' unless swiftlint.installed?
|
45
48
|
|
46
49
|
config = if config_file
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
nil
|
52
|
-
end
|
50
|
+
File.expand_path(config_file)
|
51
|
+
elsif File.file?('.swiftlint.yml')
|
52
|
+
File.expand_path('.swiftlint.yml')
|
53
|
+
end
|
53
54
|
log "Using config file: #{config}"
|
54
|
-
|
55
|
-
dir_selected = directory ? File.expand_path(directory) : Dir.pwd
|
55
|
+
|
56
|
+
dir_selected = directory ? File.expand_path(directory) : Shellwords.escape(Dir.pwd)
|
56
57
|
log "Swiftlint will be run from #{dir_selected}"
|
57
58
|
|
58
59
|
# Extract excluded paths
|
59
60
|
excluded_paths = excluded_files_from_config(config)
|
60
61
|
|
61
62
|
# Extract swift files (ignoring excluded ones)
|
62
|
-
files = find_swift_files(files, excluded_paths
|
63
|
+
files = find_swift_files(dir_selected, files, excluded_paths)
|
63
64
|
log "Swiftlint will lint the following files: #{files.join(', ')}"
|
64
65
|
|
65
66
|
# Prepare swiftlint options
|
@@ -80,21 +81,19 @@ module Danger
|
|
80
81
|
errors = issues.select { |issue| issue['severity'] == 'Error' }
|
81
82
|
|
82
83
|
if inline_mode
|
83
|
-
#
|
84
|
-
send_inline_comment(warnings,
|
85
|
-
send_inline_comment(errors,
|
86
|
-
|
84
|
+
# Report with inline comment
|
85
|
+
send_inline_comment(warnings, 'warn')
|
86
|
+
send_inline_comment(errors, 'fail')
|
87
|
+
elsif warnings.count.positive? || errors.count.positive?
|
87
88
|
# Report if any warning or error
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
fail "Failed due to SwiftLint errors"
|
97
|
-
end
|
89
|
+
message = +"### SwiftLint found issues\n\n"
|
90
|
+
message << markdown_issues(warnings, 'Warnings') unless warnings.empty?
|
91
|
+
message << markdown_issues(errors, 'Errors') unless errors.empty?
|
92
|
+
markdown message
|
93
|
+
|
94
|
+
# Fail Danger on errors
|
95
|
+
if fail_on_error && errors.count.positive?
|
96
|
+
raise 'Failed due to SwiftLint errors'
|
98
97
|
end
|
99
98
|
end
|
100
99
|
end
|
@@ -104,8 +103,8 @@ module Danger
|
|
104
103
|
# @return [Array] swiftlint issues
|
105
104
|
def run_swiftlint(files, options, additional_swiftlint_args)
|
106
105
|
files
|
107
|
-
.map { |file| options.merge(
|
108
|
-
.map { |full_options| swiftlint.lint(full_options, additional_swiftlint_args)}
|
106
|
+
.map { |file| options.merge(path: file) }
|
107
|
+
.map { |full_options| swiftlint.lint(full_options, additional_swiftlint_args) }
|
109
108
|
.reject { |s| s == '' }
|
110
109
|
.map { |s| JSON.parse(s).flatten }
|
111
110
|
.flatten
|
@@ -115,29 +114,33 @@ module Danger
|
|
115
114
|
# If files are not provided it will use git modifield and added files
|
116
115
|
#
|
117
116
|
# @return [Array] swift files
|
118
|
-
def find_swift_files(files=nil, excluded_paths=[]
|
117
|
+
def find_swift_files(dir_selected, files = nil, excluded_paths = [])
|
119
118
|
# Assign files to lint
|
120
|
-
files =
|
119
|
+
files = if files.nil?
|
120
|
+
(git.modified_files - git.deleted_files) + git.added_files
|
121
|
+
else
|
122
|
+
Dir.glob(files)
|
123
|
+
end
|
121
124
|
|
122
125
|
# Filter files to lint
|
123
|
-
|
126
|
+
files.
|
124
127
|
# Ensure only swift files are selected
|
125
128
|
select { |file| file.end_with?('.swift') }.
|
126
129
|
# Make sure we don't fail when paths have spaces
|
127
130
|
map { |file| Shellwords.escape(file) }.
|
128
131
|
# Remove dups
|
129
|
-
uniq
|
130
|
-
|
132
|
+
uniq
|
133
|
+
.map { |file| File.expand_path(file) }.
|
131
134
|
# Ensure only files in the selected directory
|
132
135
|
select { |file| file.start_with?(dir_selected) }.
|
133
136
|
# Reject files excluded on configuration
|
134
|
-
reject
|
135
|
-
|
136
|
-
|
137
|
-
map { |excluded_file| Shellwords.escape(excluded_file) }
|
138
|
-
include?(file)
|
139
|
-
|
140
|
-
|
137
|
+
reject do |file|
|
138
|
+
excluded_paths.any? do |excluded_path|
|
139
|
+
Find.find(excluded_path)
|
140
|
+
.map { |excluded_file| Shellwords.escape(excluded_file) }
|
141
|
+
.include?(file)
|
142
|
+
end
|
143
|
+
end
|
141
144
|
end
|
142
145
|
|
143
146
|
# Parses the configuration file and return the excluded files
|
@@ -145,25 +148,25 @@ module Danger
|
|
145
148
|
# @return [Array] list of files excluded
|
146
149
|
def excluded_files_from_config(filepath)
|
147
150
|
config = if filepath
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
151
|
+
YAML.load_file(filepath)
|
152
|
+
else
|
153
|
+
{ 'excluded' => [] }
|
154
|
+
end
|
152
155
|
|
153
156
|
excluded_paths = config['excluded'] || []
|
154
157
|
|
155
158
|
# Extract excluded paths
|
156
|
-
|
157
|
-
map { |path| File.join(File.dirname(filepath), path) }
|
158
|
-
map { |path| File.expand_path(path) }
|
159
|
-
select { |path| File.
|
159
|
+
excluded_paths
|
160
|
+
.map { |path| File.join(File.dirname(filepath), path) }
|
161
|
+
.map { |path| File.expand_path(path) }
|
162
|
+
.select { |path| File.exist?(path) || Dir.exist?(path) }
|
160
163
|
end
|
161
164
|
|
162
165
|
# Create a markdown table from swiftlint issues
|
163
166
|
#
|
164
167
|
# @return [String]
|
165
|
-
def markdown_issues
|
166
|
-
message = "#### #{heading}\n\n"
|
168
|
+
def markdown_issues(results, heading)
|
169
|
+
message = +"#### #{heading}\n\n"
|
167
170
|
|
168
171
|
message << "File | Line | Reason |\n"
|
169
172
|
message << "| --- | ----- | ----- |\n"
|
@@ -182,11 +185,11 @@ module Danger
|
|
182
185
|
# Send inline comment with danger's warn or fail method
|
183
186
|
#
|
184
187
|
# @return [void]
|
185
|
-
def send_inline_comment
|
188
|
+
def send_inline_comment(results, method)
|
186
189
|
dir = "#{Dir.pwd}/"
|
187
190
|
results.each do |r|
|
188
|
-
|
189
|
-
|
191
|
+
filename = r['file'].gsub(dir, '')
|
192
|
+
send(method, r['reason'], file: filename, line: r['line'])
|
190
193
|
end
|
191
194
|
end
|
192
195
|
|
data/lib/version.rb
CHANGED
data/spec/danger_plugin_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require File.expand_path('../spec_helper', __FILE__)
|
2
4
|
|
3
5
|
module Danger
|
@@ -12,9 +14,9 @@ module Danger
|
|
12
14
|
allow(@swiftlint.git).to receive(:deleted_files).and_return([])
|
13
15
|
end
|
14
16
|
|
15
|
-
it
|
16
|
-
allow_any_instance_of(Swiftlint).to receive(:
|
17
|
-
expect { @swiftlint.lint_files }.to raise_error(
|
17
|
+
it 'handles swiftlint not being installed' do
|
18
|
+
allow_any_instance_of(Swiftlint).to receive(:installed?).and_return(false)
|
19
|
+
expect { @swiftlint.lint_files }.to raise_error('swiftlint is not installed')
|
18
20
|
end
|
19
21
|
|
20
22
|
it 'does not markdown an empty message' do
|
@@ -35,7 +37,7 @@ module Danger
|
|
35
37
|
|
36
38
|
describe :lint_files do
|
37
39
|
before do
|
38
|
-
allow_any_instance_of(Swiftlint).to receive(:
|
40
|
+
allow_any_instance_of(Swiftlint).to receive(:installed?).and_return(true)
|
39
41
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
40
42
|
allow(@swiftlint.git).to receive(:modified_files).and_return([])
|
41
43
|
|
@@ -44,29 +46,29 @@ module Danger
|
|
44
46
|
|
45
47
|
it 'accept files as arguments' do
|
46
48
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
47
|
-
.with(hash_including(:
|
49
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
48
50
|
.and_return(@swiftlint_response)
|
49
51
|
|
50
|
-
@swiftlint.lint_files(
|
52
|
+
@swiftlint.lint_files('spec/fixtures/*.swift')
|
51
53
|
|
52
54
|
output = @swiftlint.status_report[:markdowns].first.to_s
|
53
|
-
expect(output).to include(
|
54
|
-
expect(output).to include(
|
55
|
+
expect(output).to include('SwiftLint found issues')
|
56
|
+
expect(output).to include('SwiftFile.swift | 13 | Force casts should be avoided.')
|
55
57
|
end
|
56
58
|
|
57
59
|
it 'accepts additional cli arguments' do
|
58
60
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
59
|
-
.with(hash_including(:
|
61
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '--lenient')
|
60
62
|
.and_return(@swiftlint_response)
|
61
63
|
|
62
|
-
@swiftlint.lint_files(
|
64
|
+
@swiftlint.lint_files('spec/fixtures/*.swift', additional_swiftlint_args: '--lenient')
|
63
65
|
end
|
64
66
|
|
65
67
|
it 'uses git diff when files are not provided' do
|
66
68
|
allow(@swiftlint.git).to receive(:modified_files).and_return(['spec/fixtures/SwiftFile.swift'])
|
67
69
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
68
70
|
allow_any_instance_of(Swiftlint).to receive(:lint)
|
69
|
-
.with(hash_including(:
|
71
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
70
72
|
.and_return(@swiftlint_response)
|
71
73
|
|
72
74
|
@swiftlint.lint_files
|
@@ -79,29 +81,39 @@ module Danger
|
|
79
81
|
@swiftlint.directory = 'spec/fixtures/some_dir'
|
80
82
|
|
81
83
|
allow_any_instance_of(Swiftlint).to receive(:lint)
|
82
|
-
.with(hash_including(:
|
84
|
+
.with(hash_including(pwd: File.expand_path(@swiftlint.directory)), '')
|
85
|
+
.and_return(@swiftlint_response)
|
86
|
+
|
87
|
+
@swiftlint.lint_files(['spec/fixtures/some_dir/SwiftFile.swift'])
|
88
|
+
|
89
|
+
output = @swiftlint.status_report[:markdowns].first.to_s
|
90
|
+
expect(output).to_not be_empty
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'uses escaped pwd when directory is not set' do
|
94
|
+
allow_any_instance_of(Swiftlint).to receive(:lint)
|
95
|
+
.with(hash_including(pwd: File.expand_path('.')), '')
|
83
96
|
.and_return(@swiftlint_response)
|
84
97
|
|
85
|
-
@swiftlint.lint_files([
|
98
|
+
@swiftlint.lint_files(['spec/fixtures/some\ dir/SwiftFile.swift'])
|
86
99
|
|
87
100
|
output = @swiftlint.status_report[:markdowns].first.to_s
|
88
101
|
expect(output).to_not be_empty
|
89
|
-
|
90
102
|
end
|
91
103
|
|
92
104
|
it 'only lint files specified in custom dir' do
|
93
105
|
@swiftlint.directory = 'spec/fixtures/some_dir'
|
94
|
-
|
106
|
+
|
95
107
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
96
108
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
97
|
-
|
98
|
-
|
99
|
-
|
109
|
+
'spec/fixtures/some_dir/SwiftFile.swift',
|
110
|
+
'spec/fixtures/SwiftFile.swift'
|
111
|
+
])
|
100
112
|
|
101
113
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
102
|
-
|
103
|
-
|
104
|
-
|
114
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/some_dir/SwiftFile.swift')), '')
|
115
|
+
.once
|
116
|
+
.and_return(@swiftlint_response)
|
105
117
|
|
106
118
|
@swiftlint.lint_files
|
107
119
|
end
|
@@ -127,13 +139,13 @@ module Danger
|
|
127
139
|
it 'does not lint files in the excluded paths' do
|
128
140
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
129
141
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
142
|
+
'spec/fixtures/SwiftFile.swift',
|
143
|
+
'spec/fixtures/excluded_dir/SwiftFileThatShouldNotBeIncluded.swift',
|
144
|
+
'spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift'
|
145
|
+
])
|
134
146
|
|
135
147
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
136
|
-
.with(hash_including(:
|
148
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
137
149
|
.once
|
138
150
|
.and_return(@swiftlint_response)
|
139
151
|
|
@@ -144,11 +156,11 @@ module Danger
|
|
144
156
|
it 'does not crash when excluded is nil' do
|
145
157
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
146
158
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
147
|
-
|
148
|
-
|
159
|
+
'spec/fixtures/SwiftFile.swift'
|
160
|
+
])
|
149
161
|
|
150
162
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
151
|
-
.with(hash_including(:
|
163
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
152
164
|
.once
|
153
165
|
.and_return(@swiftlint_response)
|
154
166
|
|
@@ -159,11 +171,11 @@ module Danger
|
|
159
171
|
it 'default config is nil, unspecified' do
|
160
172
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
161
173
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
162
|
-
|
163
|
-
|
174
|
+
'spec/fixtures/SwiftFile.swift'
|
175
|
+
])
|
164
176
|
|
165
177
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
166
|
-
.with(hash_including(:
|
178
|
+
.with(hash_including(config: nil), '')
|
167
179
|
.once
|
168
180
|
.and_return(@swiftlint_response)
|
169
181
|
|
@@ -173,13 +185,13 @@ module Danger
|
|
173
185
|
it 'expands default config file (if present) to absolute path' do
|
174
186
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
175
187
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
176
|
-
|
177
|
-
|
188
|
+
'spec/fixtures/SwiftFile.swift'
|
189
|
+
])
|
178
190
|
expect(File).to receive(:file?).and_return(true)
|
179
191
|
expect(YAML).to receive(:load_file).and_return({})
|
180
192
|
|
181
193
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
182
|
-
.with(hash_including(:
|
194
|
+
.with(hash_including(config: File.expand_path('.swiftlint.yml')), '')
|
183
195
|
.once
|
184
196
|
.and_return(@swiftlint_response)
|
185
197
|
|
@@ -189,11 +201,11 @@ module Danger
|
|
189
201
|
it 'expands specified config file to absolute path' do
|
190
202
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
191
203
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
192
|
-
|
193
|
-
|
204
|
+
'spec/fixtures/SwiftFile.swift'
|
205
|
+
])
|
194
206
|
|
195
207
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
196
|
-
.with(hash_including(:
|
208
|
+
.with(hash_including(config: File.expand_path('spec/fixtures/some_config.yml')), '')
|
197
209
|
.once
|
198
210
|
.and_return(@swiftlint_response)
|
199
211
|
|
@@ -208,15 +220,15 @@ module Danger
|
|
208
220
|
# they'd result in file not found errors.
|
209
221
|
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
210
222
|
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
211
|
-
|
212
|
-
|
213
|
-
|
223
|
+
'spec/fixtures/SwiftFile.swift',
|
224
|
+
'spec/fixtures/DeletedFile.swift'
|
225
|
+
])
|
214
226
|
allow(@swiftlint.git).to receive(:deleted_files).and_return([
|
215
|
-
|
216
|
-
|
227
|
+
'spec/fixtures/DeletedFile.swift'
|
228
|
+
])
|
217
229
|
|
218
230
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
219
|
-
.with(hash_including(:
|
231
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
220
232
|
.once
|
221
233
|
.and_return(@swiftlint_response)
|
222
234
|
|
@@ -225,10 +237,10 @@ module Danger
|
|
225
237
|
|
226
238
|
it 'generates errors instead of markdown when use inline mode' do
|
227
239
|
allow_any_instance_of(Swiftlint).to receive(:lint)
|
228
|
-
.with(hash_including(:
|
240
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
229
241
|
.and_return(@swiftlint_response)
|
230
242
|
|
231
|
-
@swiftlint.lint_files(
|
243
|
+
@swiftlint.lint_files('spec/fixtures/*.swift', inline_mode: true, fail_on_error: false, additional_swiftlint_args: '')
|
232
244
|
|
233
245
|
status = @swiftlint.status_report
|
234
246
|
expect(status[:errors]).to_not be_empty
|
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'pathname'
|
2
4
|
|
3
5
|
ROOT = Pathname.new(File.expand_path('../../', __FILE__))
|
4
|
-
|
5
|
-
|
6
|
+
$LOAD_PATH.unshift((ROOT + 'lib').to_s)
|
7
|
+
$LOAD_PATH.unshift((ROOT + 'spec').to_s)
|
6
8
|
|
7
9
|
RSpec.configure do |config|
|
8
|
-
|
10
|
+
# Use color in STDOUT
|
9
11
|
config.color = true
|
10
12
|
end
|
11
13
|
|
12
14
|
RSpec::Matchers.define :including do |x|
|
13
|
-
match { |actual| actual.include? x
|
15
|
+
match { |actual| actual.include? x }
|
14
16
|
end
|
15
17
|
|
16
18
|
require 'bundler/setup'
|
@@ -32,11 +34,11 @@ end
|
|
32
34
|
# running a PR on TravisCI
|
33
35
|
def testing_env
|
34
36
|
{
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
'HAS_JOSH_K_SEAL_OF_APPROVAL' => 'true',
|
38
|
+
'TRAVIS_PULL_REQUEST' => '800',
|
39
|
+
'TRAVIS_REPO_SLUG' => 'artsy/eigen',
|
40
|
+
'TRAVIS_COMMIT_RANGE' => '759adcbd0d8f...13c4dc8bb61d',
|
41
|
+
'DANGER_GITHUB_API_TOKEN' => '123sbdq54erfsd3422gdfio'
|
40
42
|
}
|
41
43
|
end
|
42
44
|
|
@@ -44,4 +46,4 @@ end
|
|
44
46
|
def testing_dangerfile
|
45
47
|
env = Danger::EnvironmentManager.new(testing_env)
|
46
48
|
Danger::Dangerfile.new(env, testing_ui)
|
47
|
-
end
|
49
|
+
end
|
data/spec/swiftlint_spec.rb
CHANGED
@@ -1,31 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require File.expand_path('../spec_helper', __FILE__)
|
2
4
|
require_relative '../ext/swiftlint/swiftlint'
|
3
5
|
|
4
6
|
describe Swiftlint do
|
5
7
|
let(:swiftlint) { Swiftlint.new }
|
6
|
-
it '
|
7
|
-
expect(File).to receive(:exist?).with(/bin\/swiftlint
|
8
|
-
expect(swiftlint.
|
8
|
+
it 'installed? works based on bin/swiftlint file' do
|
9
|
+
expect(File).to receive(:exist?).with(%r{/bin\/swiftlint}).and_return(true)
|
10
|
+
expect(swiftlint.installed?).to be_truthy
|
9
11
|
|
10
|
-
expect(File).to receive(:exist?).with(
|
11
|
-
expect(swiftlint.
|
12
|
+
expect(File).to receive(:exist?).with(%r{bin\/swiftlint}).and_return(false)
|
13
|
+
expect(swiftlint.installed?).to be_falsy
|
12
14
|
end
|
13
15
|
|
14
16
|
context 'with binary_path' do
|
15
17
|
let(:binary_path) { '/path/to/swiftlint' }
|
16
18
|
let(:swiftlint) { Swiftlint.new(binary_path) }
|
17
|
-
it '
|
19
|
+
it 'installed? works based on specific path' do
|
18
20
|
expect(File).to receive(:exist?).with(binary_path).and_return(true)
|
19
|
-
expect(swiftlint.
|
21
|
+
expect(swiftlint.installed?).to be_truthy
|
20
22
|
|
21
23
|
expect(File).to receive(:exist?).with(binary_path).and_return(false)
|
22
|
-
expect(swiftlint.
|
24
|
+
expect(swiftlint.installed?).to be_falsy
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
28
|
it 'runs lint by default with options being optional' do
|
27
29
|
expect(swiftlint).to receive(:`).with(including('swiftlint lint'))
|
28
|
-
swiftlint.run
|
30
|
+
swiftlint.run
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'runs accepting symbolized options' do
|
@@ -36,8 +38,6 @@ describe Swiftlint do
|
|
36
38
|
'',
|
37
39
|
use_stdin: false,
|
38
40
|
cache_path: '/path',
|
39
|
-
enable_all_rules: true
|
40
|
-
)
|
41
|
+
enable_all_rules: true)
|
41
42
|
end
|
42
43
|
end
|
43
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-swiftlint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ash Furrow
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-10-
|
15
|
+
date: 2017-10-25 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: danger
|
@@ -153,28 +153,12 @@ extensions:
|
|
153
153
|
- ext/swiftlint/Rakefile
|
154
154
|
extra_rdoc_files: []
|
155
155
|
files:
|
156
|
-
- ".gitignore"
|
157
|
-
- ".ruby-version"
|
158
|
-
- Changelog.md
|
159
|
-
- Gemfile
|
160
|
-
- Gemfile.lock
|
161
|
-
- Guardfile
|
162
|
-
- LICENSE
|
163
|
-
- README.md
|
164
|
-
- Rakefile
|
165
156
|
- bin/danger-swiftlint
|
166
|
-
- danger-swiftlint.gemspec
|
167
157
|
- ext/swiftlint/Rakefile
|
168
158
|
- ext/swiftlint/swiftlint.rb
|
169
159
|
- lib/danger_plugin.rb
|
170
160
|
- lib/version.rb
|
171
161
|
- spec/danger_plugin_spec.rb
|
172
|
-
- spec/fixtures/SwiftFile.swift
|
173
|
-
- spec/fixtures/empty_excluded.yml
|
174
|
-
- spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift
|
175
|
-
- spec/fixtures/excluded_dir/SwiftFileThatShouldNotBeIncluded.swift
|
176
|
-
- spec/fixtures/some_config.yml
|
177
|
-
- spec/fixtures/some_dir/SwiftFile.swift
|
178
162
|
- spec/spec_helper.rb
|
179
163
|
- spec/swiftlint_spec.rb
|
180
164
|
homepage: https://github.com/ashfurrow/danger-swiftlint
|
@@ -203,11 +187,5 @@ specification_version: 4
|
|
203
187
|
summary: A Danger plugin for linting Swift with SwiftLint.
|
204
188
|
test_files:
|
205
189
|
- spec/danger_plugin_spec.rb
|
206
|
-
- spec/fixtures/SwiftFile.swift
|
207
|
-
- spec/fixtures/empty_excluded.yml
|
208
|
-
- spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift
|
209
|
-
- spec/fixtures/excluded_dir/SwiftFileThatShouldNotBeIncluded.swift
|
210
|
-
- spec/fixtures/some_config.yml
|
211
|
-
- spec/fixtures/some_dir/SwiftFile.swift
|
212
190
|
- spec/spec_helper.rb
|
213
191
|
- spec/swiftlint_spec.rb
|
data/.gitignore
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
# Swiftlint extension binary but keep the bin folder
|
2
|
-
ext/swiftlint/bin
|
3
|
-
|
4
|
-
*.gem
|
5
|
-
*.rbc
|
6
|
-
/.config
|
7
|
-
/coverage/
|
8
|
-
/InstalledFiles
|
9
|
-
/pkg/
|
10
|
-
/spec/reports/
|
11
|
-
/spec/examples.txt
|
12
|
-
/test/tmp/
|
13
|
-
/test/version_tmp/
|
14
|
-
/tmp/
|
15
|
-
|
16
|
-
# Used by dotenv library to load environment variables.
|
17
|
-
# .env
|
18
|
-
|
19
|
-
## Specific to RubyMotion:
|
20
|
-
.dat*
|
21
|
-
.repl_history
|
22
|
-
build/
|
23
|
-
*.bridgesupport
|
24
|
-
build-iPhoneOS/
|
25
|
-
build-iPhoneSimulator/
|
26
|
-
|
27
|
-
## Specific to RubyMotion (use of CocoaPods):
|
28
|
-
#
|
29
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
30
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
31
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
32
|
-
#
|
33
|
-
# vendor/Pods/
|
34
|
-
|
35
|
-
## Documentation cache and generated files:
|
36
|
-
/.yardoc/
|
37
|
-
/_yardoc/
|
38
|
-
/doc/
|
39
|
-
/rdoc/
|
40
|
-
|
41
|
-
## Environment normalization:
|
42
|
-
/.bundle/
|
43
|
-
/vendor/bundle
|
44
|
-
/lib/bundler/man/
|
45
|
-
|
46
|
-
# for a library or gem, you might want to ignore these files since the code is
|
47
|
-
# intended to run in multiple environments; otherwise, check them in:
|
48
|
-
# Gemfile.lock
|
49
|
-
# .ruby-version
|
50
|
-
# .ruby-gemset
|
51
|
-
|
52
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
53
|
-
.rvmrc
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.4.1
|
data/Changelog.md
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# Changelog
|
2
|
-
|
3
|
-
## Current Master
|
4
|
-
|
5
|
-
- Nothing yet!
|
6
|
-
|
7
|
-
## 0.10.1
|
8
|
-
|
9
|
-
- Expands config paths to be absolute when passed to `swiftlint`.
|
10
|
-
- Adds verbose logging option.
|
11
|
-
|
12
|
-
## 0.10.0
|
13
|
-
|
14
|
-
- Adds `additional_swiftlint_args` option. See[#57](https://github.com/ashfurrow/danger-swiftlint/issues/57).
|
15
|
-
|
16
|
-
## 0.9.0
|
17
|
-
|
18
|
-
- Fixes linting of superfluous files in subdirectories. See [#53](https://github.com/ashfurrow/danger-swiftlint/pull/53).
|
19
|
-
|
20
|
-
## 0.8.0
|
21
|
-
|
22
|
-
- Fixes Directory not found error. See [#51](https://github.com/ashfurrow/danger-swiftlint/pull/51).
|
23
|
-
- Fixes issue with missing `.swiftlint.yml` file. See [#52](https://github.com/ashfurrow/danger-swiftlint/pull/52).
|
24
|
-
- Adds `fail_on_error` option. See [#55](https://github.com/ashfurrow/danger-swiftlint/pull/55)
|
25
|
-
|
26
|
-
## 0.7.0
|
27
|
-
|
28
|
-
- Bump managed SwiftLint version to 0.20.1
|
29
|
-
|
30
|
-
## 0.6.0
|
31
|
-
|
32
|
-
- Fixes problem with differing swiftlint paths. See [#44](https://github.com/ashfurrow/danger-swiftlint/issues/44).
|
33
|
-
|
34
|
-
## 0.5.1
|
35
|
-
|
36
|
-
- Fixed excluded files containing characters that need escaping. See [#40](https://github.com/ashfurrow/danger-swiftlint/pull/40).
|
37
|
-
|
38
|
-
## 0.5.0
|
39
|
-
|
40
|
-
- Bump managed SwiftLint version to 0.18.1
|
41
|
-
|
42
|
-
## 0.4.1
|
43
|
-
|
44
|
-
- Fixes deleted files being added to the list of files to lint. See [#34](https://github.com/ashfurrow/danger-swiftlint/pull/34).
|
45
|
-
|
46
|
-
## 0.4.0
|
47
|
-
|
48
|
-
- Support for inline comments. See [#29](https://github.com/ashfurrow/danger-swiftlint/issues/28)
|
49
|
-
|
50
|
-
- Adds SwiftLint installation as part of the gem install process, should make
|
51
|
-
it easier to track which upstream fixes should or shouldn't be done by
|
52
|
-
danger-swiftlint. See [#25](https://github.com/ashfurrow/danger-swiftlint/issues/25)
|
53
|
-
|
54
|
-
- Add `danger-swiftlint` CLI, with `swiftlint_version` command to print the version of the SwiftLint binary installed by the plugin. See [#32](https://github.com/ashfurrow/danger-swiftlint/pull/32)
|
55
|
-
|
56
|
-
## 0.3.0
|
57
|
-
|
58
|
-
- Adds selective linting, now SwiftLint will only run on the PR added and modified files. See [#23](https://github.com/ashfurrow/danger-swiftlint/pull/23)
|
59
|
-
|
60
|
-
## 0.2.1
|
61
|
-
|
62
|
-
- Adds support for specifying a directory in which to run SwiftLint. See [#19](https://github.com/ashfurrow/danger-swiftlint/pull/19).
|
63
|
-
|
64
|
-
## 0.1.2
|
65
|
-
|
66
|
-
- Adds support for files with spaces in their names. See [#9](https://github.com/ashfurrow/danger-swiftlint/issues/9).
|
67
|
-
|
68
|
-
## 0.1.1
|
69
|
-
|
70
|
-
- Fixes double-escaped newline characters. See [#11](https://github.com/ashfurrow/danger-swiftlint/issues/11).
|
71
|
-
|
72
|
-
## 0.1.0
|
73
|
-
|
74
|
-
- Initial release.
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
danger-swiftlint (0.10.0)
|
5
|
-
danger
|
6
|
-
rake (> 10)
|
7
|
-
thor (~> 0.19)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
addressable (2.5.2)
|
13
|
-
public_suffix (>= 2.0.2, < 4.0)
|
14
|
-
bacon (1.2.0)
|
15
|
-
claide (1.0.2)
|
16
|
-
claide-plugins (0.9.2)
|
17
|
-
cork
|
18
|
-
nap
|
19
|
-
open4 (~> 1.3)
|
20
|
-
coderay (1.1.1)
|
21
|
-
colored2 (3.1.2)
|
22
|
-
cork (0.3.0)
|
23
|
-
colored2 (~> 3.1)
|
24
|
-
danger (5.5.3)
|
25
|
-
claide (~> 1.0)
|
26
|
-
claide-plugins (>= 0.9.2)
|
27
|
-
colored2 (~> 3.1)
|
28
|
-
cork (~> 0.1)
|
29
|
-
faraday (~> 0.9)
|
30
|
-
faraday-http-cache (~> 1.0)
|
31
|
-
git (~> 1)
|
32
|
-
kramdown (~> 1.5)
|
33
|
-
no_proxy_fix
|
34
|
-
octokit (~> 4.7)
|
35
|
-
terminal-table (~> 1)
|
36
|
-
diff-lcs (1.3)
|
37
|
-
faraday (0.13.1)
|
38
|
-
multipart-post (>= 1.2, < 3)
|
39
|
-
faraday-http-cache (1.3.1)
|
40
|
-
faraday (~> 0.8)
|
41
|
-
ffi (1.9.18)
|
42
|
-
formatador (0.2.5)
|
43
|
-
git (1.3.0)
|
44
|
-
guard (2.14.1)
|
45
|
-
formatador (>= 0.2.4)
|
46
|
-
listen (>= 2.7, < 4.0)
|
47
|
-
lumberjack (~> 1.0)
|
48
|
-
nenv (~> 0.1)
|
49
|
-
notiffany (~> 0.0)
|
50
|
-
pry (>= 0.9.12)
|
51
|
-
shellany (~> 0.0)
|
52
|
-
thor (>= 0.18.1)
|
53
|
-
guard-compat (1.2.1)
|
54
|
-
guard-rspec (4.7.3)
|
55
|
-
guard (~> 2.1)
|
56
|
-
guard-compat (~> 1.1)
|
57
|
-
rspec (>= 2.99.0, < 4.0)
|
58
|
-
kramdown (1.15.0)
|
59
|
-
listen (3.0.7)
|
60
|
-
rb-fsevent (>= 0.9.3)
|
61
|
-
rb-inotify (>= 0.9.7)
|
62
|
-
lumberjack (1.0.11)
|
63
|
-
metaclass (0.0.4)
|
64
|
-
method_source (0.8.2)
|
65
|
-
mocha (1.2.1)
|
66
|
-
metaclass (~> 0.0.1)
|
67
|
-
mocha-on-bacon (0.2.3)
|
68
|
-
mocha (>= 0.13.0)
|
69
|
-
multipart-post (2.0.0)
|
70
|
-
nap (1.1.0)
|
71
|
-
nenv (0.3.0)
|
72
|
-
no_proxy_fix (0.1.1)
|
73
|
-
notiffany (0.1.1)
|
74
|
-
nenv (~> 0.1)
|
75
|
-
shellany (~> 0.0)
|
76
|
-
octokit (4.7.0)
|
77
|
-
sawyer (~> 0.8.0, >= 0.5.3)
|
78
|
-
open4 (1.3.4)
|
79
|
-
prettybacon (0.0.2)
|
80
|
-
bacon (~> 1.2)
|
81
|
-
pry (0.10.4)
|
82
|
-
coderay (~> 1.1.0)
|
83
|
-
method_source (~> 0.8.1)
|
84
|
-
slop (~> 3.4)
|
85
|
-
public_suffix (3.0.0)
|
86
|
-
rake (12.1.0)
|
87
|
-
rb-fsevent (0.9.8)
|
88
|
-
rb-inotify (0.9.8)
|
89
|
-
ffi (>= 0.5.0)
|
90
|
-
rspec (3.5.0)
|
91
|
-
rspec-core (~> 3.5.0)
|
92
|
-
rspec-expectations (~> 3.5.0)
|
93
|
-
rspec-mocks (~> 3.5.0)
|
94
|
-
rspec-core (3.5.4)
|
95
|
-
rspec-support (~> 3.5.0)
|
96
|
-
rspec-expectations (3.5.0)
|
97
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
98
|
-
rspec-support (~> 3.5.0)
|
99
|
-
rspec-mocks (3.5.0)
|
100
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
101
|
-
rspec-support (~> 3.5.0)
|
102
|
-
rspec-support (3.5.0)
|
103
|
-
sawyer (0.8.1)
|
104
|
-
addressable (>= 2.3.5, < 2.6)
|
105
|
-
faraday (~> 0.8, < 1.0)
|
106
|
-
shellany (0.0.1)
|
107
|
-
slop (3.6.0)
|
108
|
-
terminal-table (1.8.0)
|
109
|
-
unicode-display_width (~> 1.1, >= 1.1.1)
|
110
|
-
thor (0.19.4)
|
111
|
-
unicode-display_width (1.3.0)
|
112
|
-
|
113
|
-
PLATFORMS
|
114
|
-
ruby
|
115
|
-
|
116
|
-
DEPENDENCIES
|
117
|
-
bacon
|
118
|
-
bundler (~> 1.3)
|
119
|
-
danger-swiftlint!
|
120
|
-
guard (~> 2.14)
|
121
|
-
guard-rspec (~> 4.7)
|
122
|
-
listen (= 3.0.7)
|
123
|
-
mocha
|
124
|
-
mocha-on-bacon
|
125
|
-
prettybacon
|
126
|
-
pry
|
127
|
-
rspec (~> 3.4)
|
128
|
-
|
129
|
-
BUNDLED WITH
|
130
|
-
1.15.1
|
data/Guardfile
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# A guardfile for making Danger Plugins
|
2
|
-
# For more info see https://github.com/guard/guard#readme
|
3
|
-
|
4
|
-
# To run, use `bundle exec guard`.
|
5
|
-
|
6
|
-
guard :rspec, cmd: "bundle exec rspec" do
|
7
|
-
require "guard/rspec/dsl"
|
8
|
-
dsl = Guard::RSpec::Dsl.new(self)
|
9
|
-
|
10
|
-
# Feel free to open issues for suggestions and improvements
|
11
|
-
|
12
|
-
# RSpec files
|
13
|
-
rspec = dsl.rspec
|
14
|
-
watch(rspec.spec_helper) { rspec.spec_dir }
|
15
|
-
watch(rspec.spec_support) { rspec.spec_dir }
|
16
|
-
watch(rspec.spec_files)
|
17
|
-
|
18
|
-
# Ruby files
|
19
|
-
ruby = dsl.ruby
|
20
|
-
dsl.watch_spec_files_for(ruby.lib_files)
|
21
|
-
end
|
data/LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2016 Ash Furrow
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
data/README.md
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
[![CircleCI](https://circleci.com/gh/ashfurrow/danger-swiftlint.svg?style=svg)](https://circleci.com/gh/ashfurrow/danger-swiftlint)
|
2
|
-
|
3
|
-
# Danger SwiftLint
|
4
|
-
|
5
|
-
A [Danger](https://github.com/danger/danger) plugin for [SwiftLint](https://github.com/realm/SwiftLint) that runs on macOS.
|
6
|
-
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
Add this line to your Gemfile:
|
10
|
-
|
11
|
-
```rb
|
12
|
-
gem 'danger-swiftlint'
|
13
|
-
```
|
14
|
-
|
15
|
-
SwiftLint also needs to be installed before you run Danger, which you can do [via Homebrew](https://github.com/realm/SwiftLint#installation) or a [Brewfile](https://github.com/Homebrew/homebrew-bundle).
|
16
|
-
|
17
|
-
## Usage
|
18
|
-
|
19
|
-
The easiest way to use is just add this to your Dangerfile:
|
20
|
-
|
21
|
-
```rb
|
22
|
-
swiftlint.lint_files
|
23
|
-
```
|
24
|
-
|
25
|
-
That's going to lint all your Swift files. It would be better to only lint the changed or added ones, which is complicated due. Check out [this issue](https://github.com/ashfurrow/danger-swiftlint/issues/16) for more details.
|
26
|
-
|
27
|
-
```rb
|
28
|
-
swiftlint.config_file = '.swiftlint.yml'
|
29
|
-
swiftlint.binary_path = '/path/to/swiftlint'
|
30
|
-
swiftlint.lint_files
|
31
|
-
```
|
32
|
-
|
33
|
-
If you want the lint result shows in diff instead of comment, you can use `inline_mode` option. Violations that out of the diff will show in danger's fail or warn section.
|
34
|
-
|
35
|
-
```rb
|
36
|
-
swiftlint.lint_files inline_mode: true
|
37
|
-
```
|
38
|
-
|
39
|
-
If you want lint errors to fail Danger, you can use `fail_on_error` option.
|
40
|
-
|
41
|
-
```rb
|
42
|
-
swiftlint.lint_files fail_on_error: true
|
43
|
-
```
|
44
|
-
|
45
|
-
If you need to specify options for `swiftlint` that can _only_ be specified by command line arguments, use the `additional_swiftlint_args` option.
|
46
|
-
|
47
|
-
```rb
|
48
|
-
swiftlint.lint_files additional_swiftlint_args: '--lenient'
|
49
|
-
```
|
50
|
-
|
51
|
-
You can use the `SWIFTLINT_VERSION` environment variable to override the default version installed via the `rake install` task.
|
52
|
-
|
53
|
-
Finally, if something's not working correctly, you can debug this plugin by using setting `swiftlint.verbose = true`.
|
54
|
-
|
55
|
-
## Attribution
|
56
|
-
|
57
|
-
Original structure, sequence, and organization of repo taken from [danger-prose](https://github.com/dbgrandi/danger-prose) by [David Grandinetti](https://github.com/dbgrandi/).
|
58
|
-
|
59
|
-
## License
|
60
|
-
|
61
|
-
MIT
|
data/Rakefile
DELETED
data/danger-swiftlint.gemspec
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = 'danger-swiftlint'
|
8
|
-
spec.version = DangerSwiftlint::VERSION
|
9
|
-
spec.authors = ['Ash Furrow', 'David Grandinetti', 'Orta Therox', 'Thiago Felix', 'Giovanni Lodi']
|
10
|
-
spec.email = ['ash@ashfurrow.com', 'dbgrandi@gmail.com', 'orta.therox@gmail.com', 'thiago@thiagofelix.com', 'gio@mokacoding.com']
|
11
|
-
spec.description = %q{A Danger plugin for linting Swift with SwiftLint.}
|
12
|
-
spec.summary = %q{A Danger plugin for linting Swift with SwiftLint.}
|
13
|
-
spec.homepage = 'https://github.com/ashfurrow/danger-swiftlint'
|
14
|
-
spec.license = 'MIT'
|
15
|
-
|
16
|
-
spec.files = `git ls-files`.split($/)
|
17
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
-
spec.require_paths = ['lib']
|
19
|
-
spec.extensions = %w(ext/swiftlint/Rakefile)
|
20
|
-
spec.executables = ['danger-swiftlint']
|
21
|
-
|
22
|
-
spec.add_dependency 'danger'
|
23
|
-
spec.add_dependency 'thor', '~> 0.19'
|
24
|
-
spec.add_dependency 'rake', '> 10'
|
25
|
-
|
26
|
-
# General ruby development
|
27
|
-
spec.add_development_dependency 'bundler', '~> 1.3'
|
28
|
-
|
29
|
-
# Testing support
|
30
|
-
spec.add_development_dependency "rspec", '~> 3.4'
|
31
|
-
|
32
|
-
# Makes testing easy via `bundle exec guard`
|
33
|
-
spec.add_development_dependency "guard", '~> 2.14'
|
34
|
-
spec.add_development_dependency "guard-rspec", '~> 4.7'
|
35
|
-
|
36
|
-
# If you want to work on older builds of ruby
|
37
|
-
spec.add_development_dependency "listen", '3.0.7'
|
38
|
-
|
39
|
-
# This gives you the chance to run a REPL inside your test
|
40
|
-
# via
|
41
|
-
# binding.pry
|
42
|
-
# This will stop test execution and let you inspect the results
|
43
|
-
spec.add_development_dependency "pry"
|
44
|
-
|
45
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
// This file intentional left blank-ish.
|
data/spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
// This file intentionally left blank-ish.
|
@@ -1 +0,0 @@
|
|
1
|
-
// This file intentionally left blank-ish.
|
@@ -1 +0,0 @@
|
|
1
|
-
// This file intentional left blank-ish.
|