aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/compiler.rb
blob: 7cf71525296c69f9c74e71a7fc7c2d1904185611 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Compiler < ApplicationRecord
  def _run!(snippet)
    raise NotImplementedError
  end

  if Rails.env.development?
    require "shellwords"
    def run!(snippet)
      if self.language == "ruby" && self.version == "!!unsafe!!"
        out = `ruby -e #{Shellwords.escape(snippet.code)}`
        Result.create(snippet: snippet, compiler: self, output: out)
      else
        _run!(snippet)
      end
    end
  else
    alias run! _run!
  end
end