class Danger::DangerSwiftFormat

Run swift-format. This is using github.com/apple/swift-format

@example Run swift-format format

swift_format.binary_path = ".build/x86_64-apple-macosx/release/swift-format"
swift_format.configuration = "swift-format.json"
swift_format.format("Sources/*.swift", true)

@see marumemomo/danger-swift_format @tags swift-format

Attributes

binary_path[RW]

swift-format binary path

@return [Array<String>]

configuration[RW]

swift-format configuration file path

@return [Array<String>]

Public Instance Methods

format(files) click to toggle source

run swift-format format @return [Array<String>]

# File lib/swift_format/plugin.rb, line 43
def format(files)
  target = target_file(files)
  return if target.empty?

  `#{binary_path} format -r  -i --configuration #{configuration} #{target}`
  o, e, s = Open3.capture3("git diff #{target}")
  return if o == ''
  warn o
end
lint(files) click to toggle source

run swift-format lint @return [Array<String>]

# File lib/swift_format/plugin.rb, line 31
def lint(files)
  target = target_file(files)
  return if target.empty?

  o, e, s = Open3.capture3("#{binary_path} lint -r --configuration #{configuration} #{target}")
  return if e == ''
  warn e
end
target_file(files) click to toggle source
# File lib/swift_format/plugin.rb, line 53
def target_file(files)
  target_files = []
  
  if files.instance_of?(String)
    target_files = files.split(' ')
  else
    target_files = files
  end

  target_files.select { |f| f.include? '.swift' } .join(' ')
end