class Nonnative::GoCommand

Attributes

exec[R]
output[R]

Public Class Methods

new(exec, output) click to toggle source
# File lib/nonnative/go_command.rb, line 5
def initialize(exec, output)
  @exec = exec
  @output = output
end

Public Instance Methods

executable(cmd, *params) click to toggle source
# File lib/nonnative/go_command.rb, line 10
def executable(cmd, *params)
  params = params.join(' ')
  "#{exec} #{flags(cmd, params).join(' ')} #{cmd} #{params}".strip
end

Private Instance Methods

flags(cmd, params) click to toggle source
# File lib/nonnative/go_command.rb, line 19
def flags(cmd, params)
  m = File.basename(exec, File.extname(exec))
  p = params.gsub(/\W/, '')
  name = [m, cmd, p].reject(&:empty?).join('-')
  path = "#{output}/#{name}"

  [
    "-test.cpuprofile=#{path}-cpu.prof",
    "-test.memprofile=#{path}-mem.prof",
    "-test.blockprofile=#{path}-block.prof",
    "-test.mutexprofile=#{path}-mutex.prof",
    "-test.coverprofile=#{path}.cov",
    "-test.trace=#{path}-trace.out"
  ]
end