def initialize(args=[], options={}, config={})
args = Thor::Arguments.parse(self.class.arguments, args)
args.each { |key, value| send("#{key}=", value) }
parse_options = self.class.class_options
if options.is_a?(Array)
task_options = config.delete(:task_options)
parse_options = parse_options.merge(task_options) if task_options
array_options, hash_options = options, {}
else
array_options, hash_options = [], options
end
opts = Thor::Options.new(parse_options, hash_options)
self.options = opts.parse(array_options)
opts.check_unknown! if self.class.check_unknown_options?
end