Sha256: b7d847e582394f8c4e6cbbde5a7b5318ee0e7f225cb6a1dd562fe455331bdc04
Contents?: true
Size: 1.28 KB
Versions: 14
Compression:
Stored size: 1.28 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 .to_s .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
14 entries across 14 versions & 1 rubygems