Sha256: 0578ada8be9bf3c3d845177b37433cebc09e8e890f9ced7121d9370fbb997ead
Contents?: true
Size: 1.75 KB
Versions: 1
Compression:
Stored size: 1.75 KB
Contents
module Danger # A danger plugin to check Swift formatting using SwiftFormat. # # @example Check that the added and modified files are properly formatted: # # swiftformat.check_format # # @see garriguv/danger-swiftformat # @tags swiftformat # class DangerSwiftformat < Plugin # The path to SwiftFormat's executable # # @return [String] attr_accessor :binary_path # Runs swiftformat # # @param [Boolean] fail_on_error # # @return [void] # def check_format(fail_on_error: false) # Check if SwiftFormat is installed raise "Could not find SwiftFormat executable" unless swiftformat.installed? # Find Swift files swift_files = find_swift_files # Run swiftformat results = swiftformat.check_format(swift_files) # Stop processing if the errors array is empty return if results[:errors].empty? # Process the errors message = "### SwiftFormat found issues:\n\n" message << "| File | Rules |\n" message << "| ---- | ----- |\n" results[:errors].each do |error| message << "| #{error[:file]} | #{error[:rules].join(', ')} |\n" end markdown message if fail_on_error fail "SwiftFormat found issues" end end # Find the files on which SwiftFormat should be run # # @return [Array<String] def find_swift_files files = (git.modified_files - git.deleted_files) + git.added_files files .select { |file| file.end_with?(".swift") } .map { |file| Shellwords.escape(file) } .uniq .sort end # Constructs the SwiftFormat class # # @return [SwiftFormat] def swiftformat @swiftformat ||= SwiftFormat.new(binary_path) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
danger-swiftformat-0.0.1 | lib/swiftformat/plugin.rb |