iosでLINE風味にIRBできるようにする
次のバージョンのPictRubyでチャット風インターフェースを作れるようにしたのでirbを実装した。
コードは以下のような感じに。エラーハンドリングはさすがにObjective-C側に書かないとダメかなと思ったいたのだけど、例外キャッチするだけでうまくいった。Rubyの表現力はやはり高い。
# # 10_irb
#
# ## Description
# Interactive Ruby Shell is a REPL.
def chat(input)
begin
eval(input)
rescue Exception => e
e.message
end
end
とりあえずうまくいったのだけど、なぜかローカル変数を定義できないので他のirbの実装を眺めてみた。
web-irb
>> a = [1, 2, 3]
=>[1, 2, 3]
=>NoMethodError: undefined method 'a' for main
同じ現象が起きている!
>> @a = [1, 2, 3]
>> @a
=>[1, 2, 3]
メンバ変数として定義するとちゃんと保持される。
mirb
mruby標準添付のやつ
$ git clone https://github.com/mruby/mruby.git
$ rake
$ ./bin/mirb
mirb - Embeddable Interactive Ruby Shell
> a = 1
a = 1
=> 1
> a
a
=> 1
mirbはちゃんとローカル変数が使えるようだ。何か実際に違いがあるのかも。(そのうちソース読もう)
まとめ
ともあれweb-irbは同じだったのでちょっと安心した(なにが)。メンバ変数を使うという逃げ道も見つかったのでとりあえず実装優先で進める。
Author And Source
この問題について(iosでLINE風味にIRBできるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/ongaeshi/items/23c21d1baebe013dffbd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .