Class: DiffResource::Cli

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.add_resx_format(settings) ⇒ Object



50
51
52
53
# File 'lib/diff_resource/cli.rb', line 50

def self.add_resx_format settings
	settings.types["resx"] = { "format" => "resx", "root" => "data", "key" => "name", "value" => "value" }
	return settings
end

.load_settings(file_name) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/diff_resource/cli.rb', line 40

def self.load_settings file_name
	begin
		open file_name do |file|
			return DiffResource::Settings.new file
		end
	rescue
		return DiffResource::Settings.new ""
	end
end

.make_options(options, type) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/diff_resource/cli.rb', line 55

def self.make_options options, type
	ret = {}

	settings = DiffResource::Cli.load_settings options[:setting]
	settings = DiffResource::Cli.add_resx_format settings

	ret[:type] = settings.types[type]
	ret[:comparison] = options[:comparison] || settings.comparison || "dir"
	ret[:output] = options[:output] || settings.output || "./diffs.csv"

	return ret
end

Instance Method Details

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



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/diff_resource/cli.rb', line 18

def create target_dir = nil, comparison_target = nil, target_file = nil, target_type = nil
	p target_type
	option = DiffResource::Cli.make_options options, target_type

	parser = DiffResource::ParserFactory.create option[:type]
	inputer = DiffResource::InputerFactory.create "dir"
	comparison_inputer = DiffResource::InputerFactory.create option[:comparison]

	# in git mode, comparison dir is same to new resources and comprison_target is git object
	if option[:comparison] == "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, option[:output]
end