class SyntaxTree::CLI::Write

An action of the CLI that formats the input source and writes the formatted output back to the file.

Public Instance Methods

run(item) click to toggle source
# File lib/syntax_tree/cli.rb, line 382
def run(item)
  filepath = item.filepath
  start = Time.now

  source = item.source
  formatted =
    item.handler.format(
      source,
      options.print_width,
      options: options.formatter_options
    )
  changed = source != formatted

  File.write(filepath, formatted) if item.writable? && changed

  color = changed ? filepath : Color.gray(filepath)
  delta = ((Time.now - start) * 1000).round

  puts "#{color} #{delta}ms"
rescue StandardError
  puts filepath
  raise
end