Method: QuiversTaskrunner::SettingsHelper.get_cli_settings

Defined in:
lib/quiverstaskrunner/helpers/settingshelper.rb

.get_cli_settings(options = {}) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/quiverstaskrunner/helpers/settingshelper.rb', line 45

def get_cli_settings(options={})
	# Returns a Hash
	verbose = (defined? ARGV) && (!ARGV.nil?) && (!ARGV.empty?) && (ARGV.detect { |x| x == "-v" })
	if verbose
		puts "ARGV:".colorize(:yellow)
		puts ARGV
	end
	separator = options[:sep] || "="
	ignore_keys = options[:cli_params_black_list]
	if defined? ARGV && !ARGV.empty?
		ignore_keys_exist = (defined? ignore_keys) && (!ignore_keys.nil?) && (ignore_keys.is_a?(Array)) && (!ignore_keys.empty?)
		filtered_args = 
			if (ignore_keys_exist)
				formatted_ignore_keys = ignore_keys.map { |x| "#{x}#{separator}" }
				ARGV.slice(1..-1).reject { |arg| arg.index(separator).nil? || formatted_ignore_keys.detect { |x| arg.index(x) == 0 } }
			else
				ARGV.slice(1..-1).reject { |arg| arg.index(separator).nil? }
			end

		if verbose
			puts "Filtered ARGV:".colorize(:yellow)
			puts filtered_args
		end

		return Hash[*filtered_args.map { |arg| SettingsHelper.deserialize_string_key_value_pair(arg.gsub("=>", @@escape_hash_connector).split(separator)) }.flatten]
	else
		return {}
	end
end