PictRuby 0.5 リリース - チャットボット、eval、irb
PictRuby 0.5 をリリースしました。 合わせて起動画面とアイコンをリニューアルしました。
チャットボットが書けるように
Chat
という名前のクラスを定義すると対話型のインターフェースを構築することができるようになりました。以下はシンプルなチャットボットの例です。
class Chat def initialize @num = 0 end def welcome "Hello, World!" end def call(input) case input when "name", "Name" "My name is Rubo" when "Rubo" "Yes, my load." when "help", "Help" <<EOF Echo your message name: teach my name halt: stop this program EOF when "halt", "Halt" aaaa else @num += 1 "#{@num}: #{input}" end end end
一番大切なのはcall(input)
メソッドです。引数のinputにはユーザーが入力したテキストが渡されます。戻り値をレスポンスとしてbotがしゃべります。(inputをそのまま返すとエコーボットになります)
welcome
というメソッド(optional)が定義されているとbot起動時に発言してくれます。
内部状態はChatクラスのインスタンス変数として保持してください。
evalが使えるように
mruby-eval
を組み込んだのでeval
、instance_eval
が使えるようになりました。
irbが使えるように
サンプルの10_irb.rb
で待望のirbが使えるようになりました。これはチャットボットとeval
の実践的なサンプルにもなっています。
# # 10_irb # # ## Description # Interactive Ruby Shell (REPL). class Chat def welcome <<EOS irb - Interactive Ruby Shell EOS end def call(input) begin eval(input) rescue Exception => e e.message end end end