danger-swiftlint 0.10.1 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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
|
-
[](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.
|