def self.parse(argv)
opts = {
:formatter => 'terminal256',
:theme => 'thankful_eyes',
:css_class => 'codehilite',
:input_file => '-',
:lexer_opts => {},
:formatter_opts => {},
:requires => [],
}
until argv.empty?
arg = argv.shift
case arg
when '-r', '--require'
opts[:requires] << argv.shift
when '--input-file', '-i'
opts[:input_file] = argv.shift
when '--mimetype', '-m'
opts[:mimetype] = argv.shift
when '--lexer', '-l'
opts[:lexer] = argv.shift
when '--formatter-preset', '-f'
opts[:formatter] = argv.shift
when '--theme', '-t'
opts[:theme] = argv.shift
when '--css-class', '-c'
opts[:css_class] = argv.shift
when '--lexer-opts', '-L'
opts[:lexer_opts] = parse_cgi(argv.shift)
when /^--/
error! "unknown option #{arg.inspect}"
else
opts[:input_file] = arg
end
end
new(opts)
end