Class: BubBot::Slack::Command::Release

Inherits:
BubBot::Slack::Command show all
Defined in:
lib/bub_bot/slack/commands/release.rb

Instance Method Summary collapse

Methods inherited from BubBot::Slack::Command

aliases, can_handle?, #initialize

Constructor Details

This class inherits a constructor from BubBot::Slack::Command

Instance Method Details

#runObject



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/bub_bot/slack/commands/release.rb', line 2

def run
  puts "Running release"
  servers_to_release = tokens.drop(1)
  puts "servers_to_release: #{servers_to_release}"

  my_servers = servers.claimed_by(source_user_name)
  servers_to_release = 
    if servers_to_release.empty?
      my_servers
    else
      servers_to_release & my_servers
    end

  if (unknown_servers = servers_to_release - servers.names).any?
    raise RespondableError.new("Unknown server(s): #{unknown_servers.join(', ')}.  Nothing released.")
  end

  servers_to_release.each do |server|
    servers.release(server)
  end

  released = servers_to_release.any? ? servers_to_release.join(', ') : 'nothing'
  respond("Released #{released}")
end