Rubyをインストールすると、「標準添付ライブラリ」としてjsonとかerbとかoptparseとかが付いてきます。
Opalにも同様に標準添付ライブラリがあり、requireすることでいろいろな機能が使えます。
一覧は以下にありますが、簡単に分類してみたので貼っておきます。
https://github.com/opal/opal/tree/master/stdlib
Rubyにも存在するもの
一部のメソッドのみ移植されていることが多いようです。
- base64.rb
-
Base64.encode64(str)
など
-
- date.rb
-
Date.today
など
-
- delegate.rb
-
SimpleDelegator
など
-
- erb.rb
- forwardable.rb
-
def_delegators
など
-
- json.rb
-
JSON.parse
など
-
- observer.rb
- ostruct.rb
- pathname.rb
- pp.rb
- racc/parser.rb
- securerandom.rb
SecureRandom.uuid
- Math.random()を使ってそれっぽいものを生成する
- set.rb
- singleton.rb
- rbconfig.rb
-
RbConfig::CONFIG
など - ちなみにOpalかどうか検出したいだけなら
RUBY_ENGINE == 'opal'
でいけます
-
- stringio.rb
- strscan.rb
- thread.rb
- 未実装?
- time.rb
-
Time.parse(str)
,Time#iso8601
-
Rubyでは組み込みクラスであるもの
- encoding.rb
- UTF-8やUTF-16が扱えるっぽい?
- file.rb
-
File.join
など
-
- math.rb
-
Math.sin
など
-
- process.rb
-
Process.pid
,Signal.trap
のスタブ
-
Opal独自のもの
- opal-parser.rb
-
Kernel#eval
(コンパイル時ではなく、ランタイムにOpalコードを実行する)
-
- opal-source-maps.rb
- template.rb
- promise.rb
- buffer.rb
- ArrayBufferへのインターフェイス
- nodejs.rb
- Node用の関数?(opal-nodeとは違うのかな)
- phantomjs.rb
- Phantomjsから使う用かな。Kernel.exitが定義してある
- native.rb
- JSライブラリのバインディングを書くときの補助ライブラリ