よくある質問

(1)動作環境などに関すること
rbCanvas/p5を使うには、Rubyのインストールなどが必要ですか?
いいえ。
ブラウザとインターネット接続ができる環境さえあれば、
すぐに rbCanvas/p5を使いはじめることができます。

rbCanvas/p5はどのような仕組みで動いていますか?
Opalや p5.jsといった JavaScriptのライブラリを利用し、
Rubyのコードを JavaScriptに変換したうえでプログラムを実行させています。
(基本的に、クライアント側だけで処理をおこなっています)
→「【参考】rbCanvas/p5のモジュール構成(概略)」

(2)仕様などに関すること
一般的な Rubyの仕様との違いはありますか?
はい。
rbCanvas/p5では、Rubyのコードは Opalによって JavaScriptに変換して実行されるため、
一般的な Rubyの仕様との違いとして下記のような点が挙げられます。
  • 数値はすべて倍精度の浮動小数点となるため、Integer型として扱うことはできません
  • 文字列に対して gsub!upcase! などの破壊的なメソッドを使うことはできません。
  • シンボルは String型として扱われます。
  • ブラウザ上では非同期での処理がおこなわれるため、
    ひとつの処理が終わるのを待たずに次の処理に進むケースが発生します。
  • 正規表現に関する処理で違いが生じるケースがあります。
  • 外部ファイルの入出力に関する処理はできません。

基本的な文法(構文)は Rubyのどのバージョンに相当しますか?
Ruby 3.1に相当します。
rbCanvas/p5 のバージョン0.3.0までは内部で Opal 0.11.4 (Ruby 2.3に準拠)を使用していましたが、
rbCanvas/p5 のバージョン0.4.0からは Opal 1.4.1 (Ruby 3.1に準拠)が使用されています。

グラフィック関連の処理など、rbCanvas/p5ではどのようなメソッドが使えますか?
「APIリファレンス」に詳細が記載されていますので、下記のリンクからご覧ください。
→「APIリファレンス」


コンソール(テキスト)ベースのアプリケーションも作成できますか?
はい。
エディタに初期表示されているテンプレートのコードを削除すると
キャンバスが表示されなくなりグラフィック関連の処理が抑止されますので、
その状態からコードを記述すればコンソールベースのアプリケーションを作成することができます。
実例として、サンプルページの最下段のサンプルなどをご覧ください。

putsや pなどのメソッドの挙動はどうなりますか?
それぞれ下記のようになります。
puts … ブラウザの画面上に値を表示します。
p     … ブラウザのデベロッパーツール上に値を出力します。
その他、コンソール系のメソッドの留意事項などについては、
APIリファレンスの「Console」の内容をご覧ください。

(3)操作などに関すること
画像ファイルや音声ファイルをプログラムで使うことはできますか?
はい。
使いたい画像ファイルや音声ファイルを選び、
rbCanvas/p5エディタ上にドラッグ・アンド・ドロップすると
エディタ内にデータが取り込まれ、画面の下部にサムネイルとして表示されます。
あとは、画像や音声を扱うメソッドを使ってプログラム内で自由に処理してください。
作ったプログラムは保存できますか?
はい。
作ったプログラムは、HTMLファイルとしてディスクに保存することができます。
また、保存した HTMLファイルをエディタにロードして編集しなおしたり、
デバイス(PCなど)上から直接実行することもできます。

クラスやモジュールごとにプログラムを分けて作ることはできますか?
はい。
rbCanvas/p5エディタ上では、任意の名前をつけた仮想的なファイル(ページ)を
いくつも追加していくことができます。
クラスやモジュールなど、まとまった単位のプログラムを
それぞれその中に書いていくことをお勧めします。
関連情報として、下記もご覧ください。
  →「rbCanvas/p5エディタの使い方 (8)プログラムの分割管理」

エディタと同じ画面で実行結果を確認できませんか?
できます。
デフォルトの設定では、プログラムの実行結果は新しいタブ上に表示されますが、
[ツール]メニューの中の [実行画面]項目にチェックを入れた状態で実行すると
エディタの右側が出力エリアとなり、エディタと同じ画面で実行結果を
確認することができるようになります。
関連情報として、下記もご覧ください。
  →「rbCanvas/p5エディタの使い方 (3)プログラムの編集と実行」

(4)エラーメッセージなどに関すること
エラーが発生したらどのように出力されますか?
エラーの内容および発生箇所が下記のように出力されます。
構文(シンタックス)エラー    … rbCanvas/p5エディタ上にダイアログが表示され、そこにエラー情報が表示されます。
実行時(ラインタイム)エラー … 実行中のプログラムによる描画などクリアされ、そこにエラー情報が表示されます。
なお、実行時(ランタイム)エラーについては、下記の種類のものが検知されます。
エラーの種類おもな発生ケース
NameErrorクラスや定数などが定義されていない場合など
NoMethodErrorメソッドが定義されていない場合など
ArgumentError引数の数などが一致しない場合など
TypeError引数の型が一致しない場合など
LoadError画像や音声のファイル指定に誤りがある場合など
NotImplementedErrorrbCanvas/p5では使用できないメソッドが呼ばれた場合など

エラー発生箇所の表示がおかしいかったり、
よくわからないエラーメッセージが表示されるときがありますが?
rbCanvas/p5の内部的な不備により、プログラムの内容等によっては
エラーが十分に捕捉できないケースがあります。
今後、継続的な課題として改善していく予定です。
なお、エラーに関連する情報がブラウザの開発者ツール上に出力されている可能性がありますので
[F12]キー(Chromeの場合)を押すなどして開発者ツールの出力内容も確認してみてください。

Link to GitHub