Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

require

akiray03 edited this page Oct 16, 2012 · 3 revisions

Kernel#require 仕様

  • 特徴

    • ロードパスからファイルを探す
    • 拡張子 .rb / .mrb を省略できる (.rb が優先)
    • 同じファイルは二度以上ロードしない
  • CRubyと異なる点

    • 拡張ライブラリ (.so) はロードできない
  • 注意点

    • 拡張子 .rb のロードには、 mrbc が必要
    • tools/mruby, tools/mirb の実行環境・実行方法によっては、ロードパスが設定されない
      • mruby の -I オプション、または MRBLIB環境変数で指定してください

Kernel#load 仕様

  • 特徴

    • 同じファイルを複数回ロードできる
    • 他は require と同様
  • CRubyと異なる点

    • 拡張ライブラリ (.so) はロードできない
    • 拡張子 .rb / .mrb が補われる
  • 注意点

    • require と同様

実装メモ

  • mrbcのパス
    • tools/mruby, tools/mirb を相対パスで起動した場合には、各バイナリと同じディレクトリに mrbc が存在することを仮定します
    • その他の場合は、環境変数 PATH を順に探索します
  • .rbファイルのコンパイル
    • .rb ファイルを読み込む場合には、 mrbc を使って mrb 形式にコンパイルを行います
    • コンパイル結果(.mrbファイル)は /tmp 配下に出力され、 require / load が成功すると削除されます
  • ロードパス
    • tools/mruby は、 -I オプションで指定できます (ロードパスの先頭に追加されます)
    • 環境変数 MRBLIB で指定できます
    • tools/mruby, tools/mirb を相対パスで起動した場合には、ひとつ上位階層のディレクトリの ext に対するロードパスが追加されます
mruby_repo/bin/mruby
 /ext <---
  • requireで読み込んだファイル一覧
    • require で読み込みに成功したファイルは $" に配列で格納されます
    • require で読み込もうとしたファイルは $"_ に配列で格納されます (mruby独自)

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /