Class: Jackal::KitchenSlack::Message

Inherits:
Callback
  • Object
show all
Defined in:
lib/jackal-kitchen-slack/message.rb

Instance Method Summary collapse

Instance Method Details

#execute(message) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/jackal-kitchen-slack/message.rb', line 21

def execute(message)
  failure_wrap(message) do |payload|
    payload[:data][:slack] = Smash.new
    payload[:data][:slack][:messages] = [format_message(payload)]
    job_completed(:kitchen_messenger, payload, message)
  end
end


44
45
46
# File 'lib/jackal-kitchen-slack/message.rb', line 44

def format_link(uri,anchor)
  "<#{uri}|#{anchor}>"
end

#format_message(payload) ⇒ Object

payload

Payload

Return formatted message hash: => ‘something happened’, :color => ‘good|blue|FFF000’ depending on what’s loaded in the environment



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jackal-kitchen-slack/message.rb', line 32

def format_message(payload)
  ref = payload.get(:data, :github, :head_commit, :id)
  repo = payload.get(:data, :github, :repository, :full_name)
  success = !payload.fetch(:data, :kitchen, :result, {}).values.detect do |v|
    v.to_s == 'fail'
  end
  Smash.new(
    :message => payload.get(:data, :kitchen),
    :color => success ? config.fetch(:colors, :success, 'good') : config.fetch(:colors, :failure, 'danger')
  )
end

#setup(*_) ⇒ Object



8
9
# File 'lib/jackal-kitchen-slack/message.rb', line 8

def setup(*_)
end

#valid?(message) ⇒ Truthy, Falsey

Validity of message

Parameters:

  • message (Carnivore::Message)

Returns:

  • (Truthy, Falsey)


15
16
17
18
19
# File 'lib/jackal-kitchen-slack/message.rb', line 15

def valid?(message)
  super do |payload|
    payload.get(:data, :kitchen)
  end
end