class Rake::Funnel::Integration::TeamCity::ServiceMessages
Public Class Methods
method_missing(method, *args, &_block)
click to toggle source
# File lib/rake/funnel/integration/teamcity/service_messages.rb, line 13 def method_missing(method, *args, &_block) # rubocop:disable Style/MethodMissing return unless Rake::Funnel::Integration::TeamCity.running? message_name = method.camelize publish(message_name, args[0]) end
respond_to_missing?(_method, _include_private = false)
click to toggle source
# File lib/rake/funnel/integration/teamcity/service_messages.rb, line 9 def respond_to_missing?(_method, _include_private = false) true end
Private Class Methods
escape(string)
click to toggle source
# File lib/rake/funnel/integration/teamcity/service_messages.rb, line 29 def escape(string) # rubocop:disable Metrics/MethodLength string .to_s .gsub(/\|/, '||') .gsub(/'/, "|'") .gsub(/\r/, '|r') .gsub(/\n/, '|n') .gsub(/\u0085/, '|x') .gsub(/\u2028/, '|l') .gsub(/\u2029/, '|p') .gsub(/\[/, '|[') .gsub(/\]/, '|]') end
escaped_array_of(args)
click to toggle source
# File lib/rake/funnel/integration/teamcity/service_messages.rb, line 43 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
publish(message_name, args)
click to toggle source
# File lib/rake/funnel/integration/teamcity/service_messages.rb, line 22 def publish(message_name, args) args = [message_name] << escaped_array_of(args) args = args.flatten.reject(&:nil?) print "##teamcity[#{args.join(' ')}]\n" end