def initialize(args=[], options={}, config={})
Thor::Arguments.parse(self.class.arguments, args).each do |key, value|
send("#{key}=", value)
end
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
options = Thor::Options.parse(parse_options, array_options)
self.options = Thor::CoreExt::HashWithIndifferentAccess.new(options).merge!(hash_options)
self.options.freeze
end