class HipChat::NotifyRoom
Public Class Methods
new(api_token, room_name, options={})
click to toggle source
# File lib/hipchat/chef.rb, line 18 def initialize(api_token, room_name, options={}) defaults = { hipchat_options: {}, msg_options: {}, excluded_envs: [], msg_prefix: ''} options = defaults.merge(options) @api_token = api_token @room_name = room_name @hipchat_options = options[:hipchat_options] @msg_options = options[:msg_options] @msg_prefix = options[:msg_prefix] @excluded_envs = options[:excluded_envs] end
Public Instance Methods
report()
click to toggle source
# File lib/hipchat/chef.rb, line 29 def report unless @excluded_envs.include?(node.chef_environment) msg = if run_status.failed? then "Failure on \"#{node.name}\" (\"#{node.chef_environment}\" env): #{run_status.formatted_exception}" elsif run_status.success? && @msg_options[:notify] "Chef run on \"#{node.name}\" completed in #{run_status.elapsed_time.round(2)} seconds" else nil end @msg_options[:color]= if run_status.success? then 'green' else 'red' end if msg client = HipChat::Client.new(@api_token, @hipchat_options) client[@room_name].send('Chef', [@msg_prefix, msg].join(' '), @msg_options) end end end