Class: DiffResource::Cli

Inherits:
Thor
  • Object
show all
Defined in:
lib/diff_resource/cli.rb

Instance Method Summary collapse

Instance Method Details

#create(target_dir = nil, comparison_target = nil, target_file = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/diff_resource/cli.rb', line 16

def create target_dir = nil, comparison_target = nil, target_file = nil
  parser = DiffResource::ParserFactory.create options[:type]
  inputer = DiffResource::InputerFactory.create "dir"
  comparison_inputer = DiffResource::InputerFactory.create options[:compare]

  # when git pattern, comparison target is same to new resources and comprison_target is git object
  if options[:compare] == "git"
    comparison_inputer.reference = comparison_target
    comparison_target = target_dir
  end

  new_resources = inputer.parse_files target_dir, target_file, parser
  old_resources = comparison_inputer.parse_files comparison_target, target_file, parser

  comparer = DiffResource::Comparer.new new_resources, old_resources
  outputer = DiffResource::Outputer.new
  outputer.output comparer.diffs, options[:output]
end