require 'slack-ruby-bot' require 'wolfram' module NumberManBot class App < SlackRubyBot::App end class Weather < SlackRubyBot::Commands::Base match(/^How is the weather in (?\w*)\?$/i) do |client, data, match| send_message client, data.channel, "The weather in #{match[:location]} is nice." end end class Calculator < SlackRubyBot::Commands::Base operator '=' do |client, _data, _match| # implementation detail Wolfram.appid = "R3KHQ2-2T2769PP4P" eq = _match[1..-1] result = Wolfram.fetch(eq[1]) # to see the result as a hash of pods and assumptions: hash = Wolfram::HashPresenter.new(result).to_hash puts hash pods = hash[:pods] result = pods["Result"] #solution = pods["Real solutions"] puts result if result != nil result[0].sub! "~~", "≈" send_message client, _data.channel, result[0] else solution = pods["Real solution"] puts solution if solution != nil solution[0].sub! "~~", "≈" send_message client, _data.channel, solution[0] else solution = pods["Real solutions"] solution[0].sub! "~~", "≈" puts solution send_message client, _data.channel, solution[0] end end end end end NumberManBot::App.instance.run