The engine function has one argument options: the source code of the
current chunk is in options$code. Usually we can call external
programs to run the code via system2. Other chunk options are
also contained in this argument, e.g. options$echo and
options$eval, etc.
In most cases, options$engine can be directly used in command line to
execute the code, e.g. python or ruby, but sometimes we may
want to specify the path of the engine program, in which case we can pass it
through the engine.path option. For example, engine='ruby',
engine.path='/usr/bin/ruby1.9.1'. Additional command line arguments can be
passed through options$engine.opts, e.g. engine='ruby',
engine.opts='-v'.
See str(knitr::knit_engines$get()) for a list of built-in language
engines.