mieki256's diary



2018/02/20(火) [n年前の日記]

#2 [dxruby][ruby] RubyスクリプトがOpal上で動いてるかどうかを判別する方法ってあるのかな

今現在、DXRuby と DXOpal の両方で、最低限の修正で動くようなスクリプトソースを書いているつもりではあるのだけれど。そのRubyスクリプトソースが、Opal(DXOpal)上で動いているのか、ローカル(DXRuby)で動いてるかを判別する方法があれば、一々ソースを修正して動かさなくても済みそうだなと思えてきたわけで。

しかし、そんな方法はあるのだろうか…。

require 'opal' がされてるかどうかを判別できればいいのかな? でも、どうやって判別すればいいのだろう。もしかして、名前が定義されているかどうかを調べればいいのだろうか。

ググってみたものの、検索キーワードがマズいのか、それらしい情報には遭遇せず。Ruby で、「既に require 'hoge' されてるか調べる」ってのは、どうやるんだろうなあ…。

2018/03/01追記。 :

コメント欄でDXOpal作者様から判別方法を教えていただけました。ありがとうございます。助かります。

if RUBY_ENGINE == "opal"
  # DXOpal
else
  # DXRuby
end
または、
if RUBY_ENGINE == "ruby"
  # DXRuby
else
  # DXOpal
end
こんな感じかしら。

動作確認してみたけれど、ちゃんと動いてる模様。一々ファイルを修正しなくても動作確認ができるので、かなり楽になりそう。ありがたや…。

_constant Object::RUBY_ENGINE (Ruby 2.5.0)
RUBY_ENGINE -> String
Ruby処理系実装の種類を表す文字列。

constant Object::RUBY_ENGINE (Ruby 2.5.0) より

こんな定数があったのか…。勉強になった…。

この記事へのツッコミ

Re: RubyスクリプトがOpal上で動いてるかどうかを判別する方法ってあるのかな by yhara    2018/02/22 18:19
RUBY_ENGINE == "opal" でいけますね (CRubyだと"ruby"になります)。

以上です。

過去ログ表示

Prev - 2018/02 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project