Sha256: 00dc88bc0e749b6c522af798f3040cab2ceebaba700ebf79125ced795858fd32
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
module Rake module Funnel module Integration module TeamCity class ServiceMessages class << self def method_missing(method, *args, &_block) return unless Rake::Funnel::Integration::TeamCity.running? message_name = method.camelize publish message_name, args[0] end private def publish(message_name, args) args = [message_name] << escaped_array_of(args) args = args.flatten.reject(&:nil?) puts "##teamcity[#{args.join(' ')}]" end def escape(string) string .gsub(/\|/, '||') .gsub(/'/, "|'") .gsub(/\r/, '|r') .gsub(/\n/, '|n') .gsub(/\u0085/, '|x') .gsub(/\u2028/, '|l') .gsub(/\u2029/, '|p') .gsub(/\[/, '|[') .gsub(/\]/, '|]') end def escaped_array_of(args) return [] if args.nil? return "'#{escape args}'" unless args.is_a?(Hash) args.map { |key, value| "#{key.camelize}='#{escape value.to_s}'" } end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems