Class: OpsDeploy::CLI::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/ops_deploy/cli/notifier.rb

Overview

Notifier

Defined Under Namespace

Classes: Generic, Messages, Slack

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Notifier

Returns a new instance of Notifier.



8
9
10
11
12
13
14
# File 'lib/ops_deploy/cli/notifier.rb', line 8

def initialize(options)
  @options = options
  @options.delete(:slack) if @options[:slack].nil? || @options[:slack][:webhook_url].nil?
  @messages = OpsDeploy::CLI::Notifier::Messages.new
  @notification_type = :info
  @notify_user = @options[:slack] ? @options[:slack][:notify_user] : nil
end

Instance Attribute Details

#messagesObject

Returns the value of attribute messages.



4
5
6
# File 'lib/ops_deploy/cli/notifier.rb', line 4

def messages
  @messages
end

#notification_typeObject

Returns the value of attribute notification_type.



5
6
7
# File 'lib/ops_deploy/cli/notifier.rb', line 5

def notification_type
  @notification_type
end

#notify_userObject

Returns the value of attribute notify_user.



6
7
8
# File 'lib/ops_deploy/cli/notifier.rb', line 6

def notify_user
  @notify_user
end

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/ops_deploy/cli/notifier.rb', line 3

def options
  @options
end

Instance Method Details

#failure_notify(stack, message) ⇒ Object



43
44
45
46
47
48
# File 'lib/ops_deploy/cli/notifier.rb', line 43

def failure_notify(stack, message)
  return unless @options[:slack]

  OpsDeploy::CLI::Notifier::Slack.new(stack, @options[:slack])
    .failure_notify(message) if @options[:slack]
end

#info_notify(stack, message) ⇒ Object



29
30
31
32
33
34
# File 'lib/ops_deploy/cli/notifier.rb', line 29

def info_notify(stack, message)
  return unless @options[:slack]

  OpsDeploy::CLI::Notifier::Slack.new(stack, @options[:slack])
    .notify(message)
end

#notify(stack) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ops_deploy/cli/notifier.rb', line 16

def notify(stack)
  if @notification_type == :failure
    message = @messages.failure.join("\n")
    failure_notify(stack, message)
  elsif @notification_type == :success
    message = @messages.success.join("\n")
    success_notify(stack, message)
  else
    message = @messages.info.join("\n")
    info_notify(stack, message)
  end
end

#resetObject



50
51
52
53
# File 'lib/ops_deploy/cli/notifier.rb', line 50

def reset
  @messages = OpsDeploy::CLI::Notifier::Messages.new
  @notification_type = :info
end

#success_notify(stack, message) ⇒ Object



36
37
38
39
40
41
# File 'lib/ops_deploy/cli/notifier.rb', line 36

def success_notify(stack, message)
  return unless @options[:slack]

  OpsDeploy::CLI::Notifier::Slack.new(stack, @options[:slack])
    .success_notify(message)
end