5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mrubyAdvent Calendar 2015

Day 17

Electronでmrubyを動かす

Last updated at Posted at 2015-12-24

はじめに

Electronのレンダラーサイドでもmrubyが動きます。
ということを紹介する簡単な記事になります。

Emscriptenの準備

HomebrewでもEmscriptenが用意されているようなので、
そちらを使う向きには、全く不要の作業。

古ければ新しくしておく

cd $(EMSDK_HOME)
./emsdk update
./emsdk install latest
./emsdk activate latest

Emscripten SDKの環境変数設定

source ./emsdk_env.sh

webrubyを入れる

ここからが本題、WebRubyにはGemが用意されているので、それを
インストールします。

gem install webruby
rbenv rehash  

webrubyを使う

webruby newコマンドで
指定したプロジェクト名のフォルダが作成され。
app/app.rbに以下のようなコードが生成されます。
これを書き換えて、Electronで実行したいコードにします。

# This is the entrypoint file for webruby

5.times { puts 'Ruby is awesome!' }

その後、rakeコマンドでビルドすれば、
Emscripten SDKが使われて、c => js変換が行われ、
build/webruby.jsが作成されます。

webruby new ElectronMeetsMruby
cd ElectronMeetsMruby
rake

Electronでmrubyを動かす

rakeコマンドで生成されるwebruby.jsは以下の様にブラウザで使うことが
前提のコードになっています

<script src="./webruby.js"></script>
<script>
  const w = WEBRUBY();
 
  /* Runs embedded source code in mruby.js file. */
  w.run();
 
  w.close();
</script>

コマンドラインでElectronを動かして、確認するには

以下の様にすることで、ElectronをNode.jsとしてコマンドラインで動かして、
そこで、mrubyを動かすことが可能になります。

cp build/webruby.js .
echo "(function (){const w = WEBRUBY();w.run();})();" >> webruby.js                            
ELECTRON_RUN_AS_NODE=1 electron webruby.js

mrbgemをつかうには

以下の自分が書いた記事があります。通常のmrubyのbuild_config.rbに
記述する要領で、Rakefileを編集すれば良いようになっています。

当然ながら、Emscriptenでビルド可能なモジュールでないと、webrubyのビルドが出来ません。

関連記事

5
5
0

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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?