cli_runners/compiler.rb を参考にしました。Opal のバージョンは v1.5.0 です。
require "opal"
builder = Opal::Builder.new
builder.build("./sample.rb")
compiled_source = builder.to_s
compiled_source += "\n" + builder.source_map.to_data_uri_comment
File.write("sample.js", compiled_source)
ちなみに、 opal コマンドを使って opal -c sample.rb
のようにコンパイルした場合はデフォルトで source map を生成してくれます( --no-source-map
オプションで無効化できる)。
参考