LoginSignup
7
6

More than 5 years have passed since last update.

Opalの標準添付ライブラリ

Posted at

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