require 'slack-ruby-bot' require 'wolfram' module NumberManBot class App < SlackRubyBot::App operator '=' command 'calculate' def self.call(client, data, match) puts match[:expression] result = Dentaku::Calculator.new.evaluate(match[:expression]) #if match.names.include?('expression') result = result.to_s if result if result && result.length > 0 send_message client, data.channel, result else send_message client, data.channel, 'Got nothing.' end rescue StandardError => e send_message client, data.channel, "Sorry, #{e.message}." end end class Ping < SlackRubyBot::Commands::Base def self.call(client, data, _match) client.message text: 'pong', channel: data.channel end end end NumberManBot::App.instance.run