Module: BotMob

Defined in:
lib/bot_mob.rb,
lib/bot_mob/bot.rb,
lib/bot_mob/logger.rb,
lib/bot_mob/roster.rb,
lib/bot_mob/server.rb,
lib/bot_mob/command.rb,
lib/bot_mob/version.rb,
lib/bot_mob/connection.rb,
lib/bot_mob/environment.rb,
lib/bot_mob/networks/slack.rb,
lib/bot_mob/inbound_message.rb,
lib/bot_mob/networks/roaming.rb,
lib/bot_mob/outbound_message.rb,
lib/bot_mob/networks/slack/connection.rb,
lib/bot_mob/networks/roaming/connection.rb,
lib/bot_mob/networks/slack/inbound_message.rb,
lib/bot_mob/networks/slack/outbound_message.rb,
lib/bot_mob/networks/roaming/inbound_message.rb,
lib/bot_mob/networks/roaming/outbound_message.rb

Overview

# BotMob

BotMob base module namespace

Defined Under Namespace

Modules: Networks Classes: Bot, Command, Connection, Environment, InboundMessage, InvalidNetworkError, Logger, NetworkConnectionError, OutboundMessage, Roster, Server, UnconnectedTargetNetworkError, UndefinedResponseError, UnspecifiedTargetNetworkError

Constant Summary collapse

VERSION =
'0.3.2'.freeze

Class Method Summary collapse

Class Method Details

.envObject

## env

The specified environment for your bot’s runtime



55
56
57
# File 'lib/bot_mob.rb', line 55

def self.env
  @environment ||= BotMob::Environment.new(ENV['MOB_ENV'])
end

.loggerObject

## logger

Provide a logger for the BotMob gem, silences test env output by default



62
63
64
65
66
67
68
69
70
71
# File 'lib/bot_mob.rb', line 62

def self.logger
  @logger ||= begin
    buffer = BotMob::Logger.new(ENV['MOB_ENV'] == 'test' ? '/dev/null' : STDOUT)
    if buffer
      buffer.level = ($PROGRAM_NAME == 'irb' ? Logger::DEBUG : Logger::INFO)
      buffer.formatter = proc { |_s, _d, _p, msg| "#{msg}\n" }
    end
    buffer
  end
end

.rootObject

## root

Provide the base root path of the gem directory



48
49
50
# File 'lib/bot_mob.rb', line 48

def self.root
  File.expand_path('../..', __FILE__)
end

.start! {|roster| ... } ⇒ Object

## start!

Start the bot mob server

Usage:

BotMob.start! do |app|
  app.register MyBot
end

Yields:

  • (roster)


39
40
41
42
43
# File 'lib/bot_mob.rb', line 39

def self.start!
  roster = BotMob::Roster.new
  yield(roster)
  BotMob::Server.run! roster: roster
end