danger-swiftlint 0.15.0 → 0.16.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 +5 -5
- data/lib/danger_plugin.rb +22 -2
- data/lib/version.rb +1 -1
- data/spec/danger_plugin_spec.rb +26 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ffd9d0b59c7ecad82f6881f19861fcd96b0516a1
|
4
|
+
data.tar.gz: fde0df1341996eb7ed3336f27e19130502397ad9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aab7ab1a826a81b8b71d1bba2a982c35b12a1e5b03521bc190592386faeecf8c0c3605ce6eeb00f4a1b523847d769c0354673b946b0299c98bad4f2f61030ba6
|
7
|
+
data.tar.gz: e5f9f91d254bf2a73e59a366bd63a2e1e8c83798d4d2d82f83f14d8d2cbd1b310c3b3a592a208dd6b5090f6b5aca9adb455b7040571b501bbc5e440569daad68
|
data/lib/danger_plugin.rb
CHANGED
@@ -65,12 +65,15 @@ module Danger
|
|
65
65
|
# Extract excluded paths
|
66
66
|
excluded_paths = format_paths(config['excluded'] || [], config_file_path)
|
67
67
|
|
68
|
+
log "Swiftlint will exclude the following paths: #{excluded_paths}"
|
69
|
+
|
68
70
|
# Extract included paths
|
69
71
|
included_paths = format_paths(config['included'] || [], config_file_path)
|
70
72
|
|
73
|
+
log "Swiftlint includes the following paths: #{included_paths}"
|
74
|
+
|
71
75
|
# Extract swift files (ignoring excluded ones)
|
72
76
|
files = find_swift_files(dir_selected, files, excluded_paths, included_paths)
|
73
|
-
log files
|
74
77
|
log "Swiftlint will lint the following files: #{files.join(', ')}"
|
75
78
|
|
76
79
|
# Prepare swiftlint options
|
@@ -163,7 +166,24 @@ module Danger
|
|
163
166
|
|
164
167
|
# Get the configuration file
|
165
168
|
def load_config(filepath)
|
166
|
-
filepath
|
169
|
+
return {} if filepath.nil? || !File.exist?(filepath)
|
170
|
+
|
171
|
+
config_file = File.open(filepath).read
|
172
|
+
|
173
|
+
# Replace environment variables
|
174
|
+
config_file = parse_environment_variables(config_file)
|
175
|
+
|
176
|
+
YAML.safe_load(config_file)
|
177
|
+
end
|
178
|
+
|
179
|
+
# Find all requested environment variables in the given string and replace them with the correct values.
|
180
|
+
def parse_environment_variables(file_contents)
|
181
|
+
# Matches the file contents for environment variables defined like ${VAR_NAME}.
|
182
|
+
# Replaces them with the environment variable value if it exists.
|
183
|
+
file_contents.gsub(/\$\{([^{}]+)\}/) do |env_var|
|
184
|
+
return env_var if ENV[Regexp.last_match[1]].nil?
|
185
|
+
ENV[Regexp.last_match[1]]
|
186
|
+
end
|
167
187
|
end
|
168
188
|
|
169
189
|
# Return whether the file exists within a specified collection of paths
|
data/lib/version.rb
CHANGED
data/spec/danger_plugin_spec.rb
CHANGED
@@ -44,6 +44,10 @@ module Danger
|
|
44
44
|
@swiftlint_response = '[{ "rule_id" : "force_cast", "reason" : "Force casts should be avoided.", "character" : 19, "file" : "/Users/me/this_repo/spec//fixtures/SwiftFile.swift", "severity" : "Error", "type" : "Force Cast", "line" : 13 }]'
|
45
45
|
end
|
46
46
|
|
47
|
+
after(:each) do
|
48
|
+
ENV['ENVIRONMENT_EXAMPLE'] = nil
|
49
|
+
end
|
50
|
+
|
47
51
|
it 'accept files as arguments' do
|
48
52
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
49
53
|
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
@@ -235,7 +239,9 @@ module Danger
|
|
235
239
|
'spec/fixtures/SwiftFile.swift'
|
236
240
|
])
|
237
241
|
expect(File).to receive(:file?).and_return(true)
|
238
|
-
expect(
|
242
|
+
expect(File).to receive(:exist?).and_return(true)
|
243
|
+
expect(File).to receive(:open).and_return(StringIO.new)
|
244
|
+
expect(YAML).to receive(:safe_load).and_return({})
|
239
245
|
|
240
246
|
expect_any_instance_of(Swiftlint).to receive(:lint)
|
241
247
|
.with(hash_including(config: File.expand_path('.swiftlint.yml')), '')
|
@@ -316,6 +322,25 @@ module Danger
|
|
316
322
|
expect(status[:warnings]).to_not be_empty
|
317
323
|
expect(status[:errors]).to be_empty
|
318
324
|
end
|
325
|
+
|
326
|
+
it 'parses environment variables set within the swiftlint config' do
|
327
|
+
ENV['ENVIRONMENT_EXAMPLE'] = 'excluded_dir'
|
328
|
+
|
329
|
+
allow(@swiftlint.git).to receive(:added_files).and_return([])
|
330
|
+
allow(@swiftlint.git).to receive(:modified_files).and_return([
|
331
|
+
'spec/fixtures/SwiftFile.swift',
|
332
|
+
'spec/fixtures/excluded_dir/SwiftFileThatShouldNotBeIncluded.swift',
|
333
|
+
'spec/fixtures/excluded_dir/SwiftFile WithEscaped+CharactersThatShouldNotBeIncluded.swift'
|
334
|
+
])
|
335
|
+
|
336
|
+
expect_any_instance_of(Swiftlint).to receive(:lint)
|
337
|
+
.with(hash_including(path: File.expand_path('spec/fixtures/SwiftFile.swift')), '')
|
338
|
+
.once
|
339
|
+
.and_return(@swiftlint_response)
|
340
|
+
|
341
|
+
@swiftlint.config_file = 'spec/fixtures/environment_variable_config.yml'
|
342
|
+
@swiftlint.lint_files
|
343
|
+
end
|
319
344
|
end
|
320
345
|
end
|
321
346
|
end
|
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.
|
4
|
+
version: 0.16.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: 2018-03-
|
15
|
+
date: 2018-03-28 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: danger
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project:
|
184
|
-
rubygems_version: 2.
|
184
|
+
rubygems_version: 2.6.10
|
185
185
|
signing_key:
|
186
186
|
specification_version: 4
|
187
187
|
summary: A Danger plugin for linting Swift with SwiftLint.
|