この前の記事ではRubyとOpal両方で動くgemの作り方を書きましたが、ついでなので「Opal専用gemの作り方」についても書いておきます。
Opal専用gemといっても中身は普通のRubyGemsですが、慣習的に、Opal用のコードはlib/ではなくopal/以下に置くことが多いようです。
ファイル構成
opal-barというライブラリを作るとします。
- opal-bar.gemspec
- 普通に書く
- opal/opal-bar.rb
- Opalのコードを書く
- Opal上で
require 'opal-bar'
とすると、このファイルが読み込まれる
- lib/opal-bar.rb
- Ruby用のコードを書く(後述)
Opal.append_path File.expand_path('../opal', File.dirname(__FILE__))
使い方
このopal-barを使うプロジェクトでは、まずGemfileにこのgemを指定します。
gem 'opal-bar'
次に、Opalコード内にrequire 'opal-bar'
を書きます。
ただしこれだけだとOpalのロードパスにopal-bar.rbが見つからないため、エラーになります。ここで登場するのが前述のlib/opal-bar.rbです。
opal-barを使うプロジェクトのRuby部分(例えばconfig.ru)に
require 'opal-bar'
という1行を追加します。これによってopal-bar gemのlib/以下がOpalのロードパスに登録されるので、Opal内でrequire 'opal-bar'
できるようになります。
余談
ではopal/opal-bar.rbにはどのようなコードを書けばいいのか…という話はまた別途書きます。気になる人はQiitaのopalタグをフォローしておいてください。