class KnitrRuby::Knitr

Public Instance Methods

knit(content) click to toggle source
# File lib/knitr-ruby/knitr.rb, line 7
def knit(content)
  dir = File.expand_path File.dirname(__FILE__)
  command = "./knitrscript.R --args #{options}"
  Open3::popen3(command, chdir: dir) do |stdin, stdout, stderr, wait_thr|
    stdin.puts content
    stdin.close

    raise StandardError, "Error knitting: #{stderr.read}" if wait_thr.value.exitstatus > 0
    content = stdout.read
  end
end
options() click to toggle source
# File lib/knitr-ruby/knitr.rb, line 19
def options
  opts = chunk_options || {}
  opts.map {|k,v| "#{k}=#{v}" }.join(" ")
end