Sha256: cd9e1da4d71fcd9e4dac34563d775614205b52cc8faaec21d7e55a9a03325bc6

Contents?: true

Size: 621 Bytes

Versions: 1

Compression:

Stored size: 621 Bytes

Contents

require 'lita'

module Lita
  module Handlers
    class Eval < Handler
      route %r{\Aeval\s(.+)}i, :evaluate, command: true, help: {
        'eval CODE' => 'Evaluates the given ruby code.'
      }

      def evaluate(response)
        code = response.matches[0][0]
        http_response = http.post 'http://eval.so/api/evaluate' do |req|
          req.headers['Content-Type'] = 'application/json'
          req.body = MultiJson.dump(language: 'ruby', code: "p(#{code})")
        end
        response.reply MultiJson.load(http_response.body)['stdout'].strip
      end
    end

    Lita.register_handler(Eval)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lita-eval-0.1.0 lib/lita/handlers/eval.rb