Class: SlackRubyBotServer::Service
- Inherits:
-
Object
- Object
- SlackRubyBotServer::Service
- Includes:
- SlackRubyBot::Loggable
- Defined in:
- lib/slack-ruby-bot-server/service.rb
Class Method Summary collapse
Instance Method Summary collapse
- #create!(team) ⇒ Object
- #deactivate!(team) ⇒ Object
-
#initialize ⇒ Service
constructor
A new instance of Service.
- #on(type, &block) ⇒ Object
- #restart!(team, server, wait = 1) ⇒ Object
- #start!(team) ⇒ Object
- #start_from_database! ⇒ Object
- #stop!(team) ⇒ Object
Constructor Details
#initialize ⇒ Service
Returns a new instance of Service.
16 17 18 |
# File 'lib/slack-ruby-bot-server/service.rb', line 16 def initialize @callbacks = Hash.new { |h, k| h[k] = [] } end |
Class Method Details
.instance ⇒ Object
12 13 14 |
# File 'lib/slack-ruby-bot-server/service.rb', line 12 def self.instance @instance ||= new end |
.reset! ⇒ Object
82 83 84 |
# File 'lib/slack-ruby-bot-server/service.rb', line 82 def self.reset! @instance = nil end |
.start! ⇒ Object
5 6 7 8 9 10 |
# File 'lib/slack-ruby-bot-server/service.rb', line 5 def self.start! Thread.new do Thread.current.abort_on_exception = true instance.start_from_database! end end |
Instance Method Details
#create!(team) ⇒ Object
24 25 26 27 28 |
# File 'lib/slack-ruby-bot-server/service.rb', line 24 def create!(team) run_callbacks :creating, team start!(team) run_callbacks :created, team end |
#deactivate!(team) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/slack-ruby-bot-server/service.rb', line 68 def deactivate!(team) run_callbacks :deactivating, team team.deactivate! run_callbacks :deactivated, team rescue Mongoid::Errors::Validations => e run_callbacks :error, team, e logger.error "#{team.name}: #{e.}, error - #{e.document.class}, #{e.document.errors.to_hash}, ignored." rescue StandardError => e run_callbacks :error, team, e logger.error "#{team.name}: #{e.class}, #{e.}, ignored." ensure team.server = nil end |
#on(type, &block) ⇒ Object
20 21 22 |
# File 'lib/slack-ruby-bot-server/service.rb', line 20 def on(type, &block) @callbacks[type.to_s] << block end |
#restart!(team, server, wait = 1) ⇒ Object
42 43 44 45 46 |
# File 'lib/slack-ruby-bot-server/service.rb', line 42 def restart!(team, server, wait = 1) run_callbacks :restarting, team start_server! team, server, wait run_callbacks :restarted, team end |
#start!(team) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/slack-ruby-bot-server/service.rb', line 30 def start!(team) run_callbacks :starting, team logger.info "Starting team #{team}." server = SlackRubyBotServer::Config.server_class.new(team: team) start_server! team, server run_callbacks :started, team server rescue StandardError => e run_callbacks :error, team, e logger.error e end |
#start_from_database! ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/slack-ruby-bot-server/service.rb', line 60 def start_from_database! Team.active.each do |team| run_callbacks :booting, team start!(team) run_callbacks :booted, team end end |
#stop!(team) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/slack-ruby-bot-server/service.rb', line 48 def stop!(team) logger.info "Stopping team #{team}." run_callbacks :stopping, team team.server.stop! if team.server run_callbacks :stopped, team rescue StandardError => e run_callbacks :error, team, e logger.error e ensure team.server = nil end |