Opal

Opalの標準添付ライブラリ

More than 5 years have passed since last update.

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ライブラリのバインディングを書くときの補助ライブラリ