Class: OpsDeploy::CLI::Notifier

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

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.



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

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

Instance Attribute Details

#messagesObject

Returns the value of attribute messages.



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

def messages
  @messages
end

#notification_typeObject

Returns the value of attribute notification_type.



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

def notification_type
  @notification_type
end

#optionsObject

Returns the value of attribute options.



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

def options
  @options
end

Instance Method Details

#failure_notify(stack, message) ⇒ Object



34
35
36
# File 'lib/ops_deploy/cli/notifier.rb', line 34

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

#info_notify(stack, message) ⇒ Object



26
27
28
# File 'lib/ops_deploy/cli/notifier.rb', line 26

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

#notify(stack) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ops_deploy/cli/notifier.rb', line 13

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



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

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

#success_notify(stack, message) ⇒ Object



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

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