rubotyで与えられた文字列をrubyとして実行する邪悪なプラグイン作った
邪悪なので邪悪な名前にしといた
hoshinotsuyoshi/ruboty-ruby_eval · GitHub
【注意】
何もチェックせずevalしているだけなので、仕事とかでは使わないほうがいいです。
デバッグ用途にはべんりなときもあるかもしれません。
使用例
ハンドラの内容
例によって一瞬で出来ました。
module Ruboty module Handlers class RubyEval < Base on /ruby(_|\-)eval (?<body>.+)/, name: 'ruby_eval', description: 'eval given code' def ruby_eval(message) value = instance_eval(message[:body]) rescue => e value = [e.class.name, e.message, e.backtrace].join("\n") ensure message.reply value end end end end
ポイント(ってほどでもないですが)
- 例外出るとrubotyが終わってしまうので、全部キャッチしています
- 何もチェックしていないのでいろいろと出来てしまいます
- やりたい放題すぎるので、子プロセスをつくってその中で実行、とかのほうがよかったかもしれません
デバッグに使える(?)
herokuはrun console
とかbash
とかがあった気がするので、要らない気がしますが。
botくんからのネットワーク周りについて知る
(文字列は編集済)
botくんのことを知る
botくんのenvを見てしまう
(文字列は編集済)
遊びとしては良いと思う