Class: SyntaxTree::CLI::Write

Inherits:
Action
  • Object
show all
Defined in:
lib/syntax_tree/cli.rb

Overview

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

Instance Attribute Summary

Attributes inherited from Action

#options

Instance Method Summary collapse

Methods inherited from Action

#failure, #initialize, #success

Constructor Details

This class inherits a constructor from SyntaxTree::CLI::Action

Instance Method Details

#run(item) ⇒ Object



382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
# 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