danger-swiftlint 0.9.0 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6dbb13219873521a9e81041978b5800a85229b02
4
- data.tar.gz: 6386a741dfb3e982e21374514e019b5b13fee35b
3
+ metadata.gz: b690ceed1ab30f9d77d77b4381819f85873324a4
4
+ data.tar.gz: f74150df221117b74ff2a12d968e9ef1b9593027
5
5
  SHA512:
6
- metadata.gz: 426c76446fd6ca7f595dfd4f99e97e3f33897e281b0dc983c1f0dc704be1a67950621071bacf643a84eb1907506d59872a0d1117a12a30921c43cf6dfeae3a63
7
- data.tar.gz: 68fda7d7df9f604994f0451534fb96d9c686b4e9503bf4ca58c8a97cb68af049a69566be52cbb1940433c3db7b1eb3c8a89d8d709794ba5ec75ea20cf107f400
6
+ metadata.gz: 9f0a240500772bd1c3b92b4a92baabf663222ba7c6f85ccdcb9ee6412d55a056f8c2a9a4198f513c5f3a252675ad12c68b4cdc7cae86adb56f42629d6f89ec61
7
+ data.tar.gz: 5490dcabc7c0a31355c1bb0cb5083b0293a03d2a52658e9f74ec9193586d7a11b0a3ec7b8a4600f4c5dcd3f3455fcb0004dbe85e1492d95cf82f85b052064181
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.4
1
+ 2.4.1
data/Changelog.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  - Nothing yet!
6
6
 
7
+ ## 0.10.0
8
+
9
+ - Adds `additional_swiftlint_args` option. See[#57](https://github.com/ashfurrow/danger-swiftlint/issues/57).
10
+
7
11
  ## 0.9.0
8
12
 
9
13
  - Fixes linting of superfluous files in subdirectories. See [#53](https://github.com/ashfurrow/danger-swiftlint/pull/53).
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-swiftlint (0.7.0)
4
+ danger-swiftlint (0.9.0)
5
5
  danger
6
6
  rake (> 10)
7
7
  thor (~> 0.19)
@@ -9,8 +9,8 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.5.1)
13
- public_suffix (~> 2.0, >= 2.0.2)
12
+ addressable (2.5.2)
13
+ public_suffix (>= 2.0.2, < 4.0)
14
14
  bacon (1.2.0)
15
15
  claide (1.0.2)
16
16
  claide-plugins (0.9.2)
@@ -21,7 +21,7 @@ GEM
21
21
  colored2 (3.1.2)
22
22
  cork (0.3.0)
23
23
  colored2 (~> 3.1)
24
- danger (5.3.3)
24
+ danger (5.5.1)
25
25
  claide (~> 1.0)
26
26
  claide-plugins (>= 0.9.2)
27
27
  colored2 (~> 3.1)
@@ -30,10 +30,11 @@ GEM
30
30
  faraday-http-cache (~> 1.0)
31
31
  git (~> 1)
32
32
  kramdown (~> 1.5)
33
+ no_proxy_fix
33
34
  octokit (~> 4.7)
34
35
  terminal-table (~> 1)
35
36
  diff-lcs (1.3)
36
- faraday (0.12.1)
37
+ faraday (0.13.1)
37
38
  multipart-post (>= 1.2, < 3)
38
39
  faraday-http-cache (1.3.1)
39
40
  faraday (~> 0.8)
@@ -54,7 +55,7 @@ GEM
54
55
  guard (~> 2.1)
55
56
  guard-compat (~> 1.1)
56
57
  rspec (>= 2.99.0, < 4.0)
57
- kramdown (1.14.0)
58
+ kramdown (1.15.0)
58
59
  listen (3.0.7)
59
60
  rb-fsevent (>= 0.9.3)
60
61
  rb-inotify (>= 0.9.7)
@@ -68,6 +69,7 @@ GEM
68
69
  multipart-post (2.0.0)
69
70
  nap (1.1.0)
70
71
  nenv (0.3.0)
72
+ no_proxy_fix (0.1.1)
71
73
  notiffany (0.1.1)
72
74
  nenv (~> 0.1)
73
75
  shellany (~> 0.0)
@@ -80,8 +82,8 @@ GEM
80
82
  coderay (~> 1.1.0)
81
83
  method_source (~> 0.8.1)
82
84
  slop (~> 3.4)
83
- public_suffix (2.0.5)
84
- rake (12.0.0)
85
+ public_suffix (3.0.0)
86
+ rake (12.1.0)
85
87
  rb-fsevent (0.9.8)
86
88
  rb-inotify (0.9.8)
87
89
  ffi (>= 0.5.0)
@@ -125,4 +127,4 @@ DEPENDENCIES
125
127
  rspec (~> 3.4)
126
128
 
127
129
  BUNDLED WITH
128
- 1.15.0
130
+ 1.15.1
data/README.md CHANGED
@@ -42,6 +42,12 @@ If you want lint errors to fail Danger, you can use `fail_on_error` option.
42
42
  swiftlint.lint_files fail_on_error: true
43
43
  ```
44
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
+
45
51
  You can use the `SWIFTLINT_VERSION` environment variable to override the default version installed via the `rake install` task.
46
52
 
47
53
  ## Attribution
@@ -5,19 +5,19 @@ class Swiftlint
5
5
  end
6
6
 
7
7
  # Runs swiftlint
8
- def run(cmd='lint', options={})
8
+ def run(cmd='lint', additional_swiftlint_args='', options={})
9
9
  # change pwd before run swiftlint
10
10
  if options.has_key? :pwd
11
11
  Dir.chdir options.delete(:pwd)
12
12
  end
13
13
 
14
14
  # run swiftlint with provided options
15
- `#{swiftlint_path} #{cmd} #{swiftlint_arguments(options)}`
15
+ `#{swiftlint_path} #{cmd} #{swiftlint_arguments(options, additional_swiftlint_args)}`
16
16
  end
17
17
 
18
18
  # Shortcut for running the lint command
19
- def lint(options)
20
- run('lint', options)
19
+ def lint(options, additional_swiftlint_args)
20
+ run('lint', additional_swiftlint_args, options)
21
21
  end
22
22
 
23
23
  # Return true if swiftlint is installed or false otherwise
@@ -35,8 +35,8 @@ 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 options
39
- options.
38
+ def swiftlint_arguments (options, additional_swiftlint_args)
39
+ (options.
40
40
  # filter not null
41
41
  select {|key, value| !value.nil?}.
42
42
  # map booleans arguments equal true
@@ -48,7 +48,8 @@ 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
+ " #{additional_swiftlint_args}").
52
53
  # strip leading spaces
53
54
  strip
54
55
  end
data/lib/danger_plugin.rb CHANGED
@@ -36,7 +36,7 @@ module Danger
36
36
  # if nil, modified and added files from the diff will be used.
37
37
  # @return [void]
38
38
  #
39
- def lint_files(files=nil, inline_mode: false, fail_on_error: false)
39
+ def lint_files(files=nil, inline_mode: false, fail_on_error: false, additional_swiftlint_args: "")
40
40
  # Fails if swiftlint isn't installed
41
41
  raise "swiftlint is not installed" unless swiftlint.is_installed?
42
42
 
@@ -65,7 +65,7 @@ module Danger
65
65
  }
66
66
 
67
67
  # Lint each file and collect the results
68
- issues = run_swiftlint(files, options)
68
+ issues = run_swiftlint(files, options, additional_swiftlint_args)
69
69
 
70
70
  # Filter warnings and errors
71
71
  warnings = issues.select { |issue| issue['severity'] == 'Warning' }
@@ -94,10 +94,10 @@ module Danger
94
94
  # Run swiftlint on each file and aggregate collect the issues
95
95
  #
96
96
  # @return [Array] swiftlint issues
97
- def run_swiftlint(files, options)
97
+ def run_swiftlint(files, options, additional_swiftlint_args)
98
98
  files
99
99
  .map { |file| options.merge({path: file})}
100
- .map { |full_options| swiftlint.lint(full_options)}
100
+ .map { |full_options| swiftlint.lint(full_options, additional_swiftlint_args)}
101
101
  .reject { |s| s == '' }
102
102
  .map { |s| JSON.parse(s).flatten }
103
103
  .flatten
data/lib/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module DangerSwiftlint
2
- VERSION = "0.9.0".freeze
2
+ VERSION = "0.10.0".freeze
3
3
  SWIFTLINT_VERSION = "0.20.1".freeze
4
4
  end
@@ -44,7 +44,7 @@ module Danger
44
44
 
45
45
  it 'accept files as arguments' do
46
46
  expect_any_instance_of(Swiftlint).to receive(:lint)
47
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
47
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
48
48
  .and_return(@swiftlint_response)
49
49
 
50
50
  @swiftlint.lint_files("spec/fixtures/*.swift")
@@ -54,11 +54,19 @@ module Danger
54
54
  expect(output).to include("SwiftFile.swift | 13 | Force casts should be avoided.")
55
55
  end
56
56
 
57
+ it 'accepts additional cli arguments' do
58
+ expect_any_instance_of(Swiftlint).to receive(:lint)
59
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '--lenient')
60
+ .and_return(@swiftlint_response)
61
+
62
+ @swiftlint.lint_files("spec/fixtures/*.swift", additional_swiftlint_args: '--lenient')
63
+ end
64
+
57
65
  it 'uses git diff when files are not provided' do
58
66
  allow(@swiftlint.git).to receive(:modified_files).and_return(['spec/fixtures/SwiftFile.swift'])
59
67
  allow(@swiftlint.git).to receive(:added_files).and_return([])
60
68
  allow_any_instance_of(Swiftlint).to receive(:lint)
61
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
69
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
62
70
  .and_return(@swiftlint_response)
63
71
 
64
72
  @swiftlint.lint_files
@@ -71,7 +79,7 @@ module Danger
71
79
  @swiftlint.directory = 'spec/fixtures/some_dir'
72
80
 
73
81
  allow_any_instance_of(Swiftlint).to receive(:lint)
74
- .with(hash_including(:pwd => File.expand_path(@swiftlint.directory)))
82
+ .with(hash_including(:pwd => File.expand_path(@swiftlint.directory)), '')
75
83
  .and_return(@swiftlint_response)
76
84
 
77
85
  @swiftlint.lint_files(["spec/fixtures/some_dir/SwiftFile.swift"])
@@ -91,7 +99,7 @@ module Danger
91
99
  ])
92
100
 
93
101
  expect_any_instance_of(Swiftlint).to receive(:lint)
94
- .with(hash_including(:path => File.expand_path('spec/fixtures/some_dir/SwiftFile.swift')))
102
+ .with(hash_including(:path => File.expand_path('spec/fixtures/some_dir/SwiftFile.swift')), '')
95
103
  .once
96
104
  .and_return(@swiftlint_response)
97
105
 
@@ -125,7 +133,7 @@ module Danger
125
133
  ])
126
134
 
127
135
  expect_any_instance_of(Swiftlint).to receive(:lint)
128
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
136
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
129
137
  .once
130
138
  .and_return(@swiftlint_response)
131
139
 
@@ -140,7 +148,7 @@ module Danger
140
148
  ])
141
149
 
142
150
  expect_any_instance_of(Swiftlint).to receive(:lint)
143
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
151
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
144
152
  .once
145
153
  .and_return(@swiftlint_response)
146
154
 
@@ -163,7 +171,7 @@ module Danger
163
171
  ])
164
172
 
165
173
  expect_any_instance_of(Swiftlint).to receive(:lint)
166
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
174
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
167
175
  .once
168
176
  .and_return(@swiftlint_response)
169
177
 
@@ -172,10 +180,10 @@ module Danger
172
180
 
173
181
  it 'generates errors instead of markdown when use inline mode' do
174
182
  allow_any_instance_of(Swiftlint).to receive(:lint)
175
- .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')))
183
+ .with(hash_including(:path => File.expand_path('spec/fixtures/SwiftFile.swift')), '')
176
184
  .and_return(@swiftlint_response)
177
185
 
178
- @swiftlint.lint_files("spec/fixtures/*.swift", inline_mode: true, fail_on_error: false)
186
+ @swiftlint.lint_files("spec/fixtures/*.swift", inline_mode: true, fail_on_error: false, additional_swiftlint_args: '')
179
187
 
180
188
  status = @swiftlint.status_report
181
189
  expect(status[:errors]).to_not be_empty
@@ -33,9 +33,11 @@ describe Swiftlint do
33
33
  expect(swiftlint).to receive(:`).with(including(cmd))
34
34
 
35
35
  swiftlint.run('lint',
36
+ '',
36
37
  use_stdin: false,
37
38
  cache_path: '/path',
38
- enable_all_rules: true)
39
+ enable_all_rules: true
40
+ )
39
41
  end
40
42
  end
41
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.9.0
4
+ version: 0.10.0
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-09-08 00:00:00.000000000 Z
15
+ date: 2017-10-04 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: danger