LoginSignup
11
4

UnloosenでGoogleChromeの拡張機能「Try Ruby Now」を作成

Last updated at Posted at 2023-05-16

Unloosenとは

RubyKaigi2022でRuby3.2がWeb Assembly対応をしたという発表がありました。
つまり、RubyがJSのようにブラウザ上で動くのです。
ただ、Ruby Wasmには以下の問題があります。

  • 新機能で普及が進んでない
  • 素のWasmだとRubyの書きやすさが損なわれる(JSコードを呼び出すようなコードを書かないといけないのです)

そこで、yuma sawaiさんが、Rubykaigi2023 にて上記の問題を解決するためにUnloosenというGoogle Chromeの拡張機能を作成するためのフレームワークを作成したという発表をしました。

Unloosenを使って何をしたの?

Unloosenを使ってTry Ruby Nowという拡張機能を作成しました。

オブジェクト指向スクリプト言語 Ruby リファレンスマニュアルのページ内でRubyコードをすぐに試すことができる拡張機能です。
左のフォームにコードを入れて実行すると右にreturn値が表示されます。

拡張機能.png

コードはgithubで公開しています、簡単なコードですのでよかったら覗いてみてください。
https://github.com/NaotoCoding/try-ruby-now

どうやって作ったの?

Unloosenに関しては、とにかく以下の3つの記事を参考しました!!! 以上です。

manifest.jsonの書き方は以下を参考にしてみてください。

え? eval?

入力されたRubyスクリプトを実行するのにevalメソッドを使用しています。

evalは「入力者から任意のRubyコードをサーバー上で実行される」点がよくないという認識を持っています。ただ、Wasmで、つまりブラウザ上での実行なのでサーバー側に何か悪さをされることはないのではと考え、今回は簡単にevalでRubyコードを実行しています。

PCの持ち主以外がブラウザを操作できる場合、他人がそのPCに悪意のあるRubyコードを入力することは確かに可能です。その点は反論できません。

11
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4