class Object

Constants

CSV_CURL_ARGV
OPTPARSE
TMP_REQUEST_BODY_FILE

Public Instance Methods

build_curl_command(curl_args, data, request_file, response_file) click to toggle source
# File bin/csv-curl, line 127
def build_curl_command(curl_args, data, request_file, response_file)
  cmd = "curl -s"
  cmd += " -d@#{request_file} " if request_file
  cmd += ' ' + curl_args.map { |arg| Shellwords.escape(generate_string(arg, data)) }.join(' ')
  cmd += " > #{response_file}"
  cmd
end
build_exec_command(exec, data, response_file) click to toggle source
# File bin/csv-curl, line 135
def build_exec_command(exec, data, response_file)
  cmd = "cat #{response_file} | "
  cmd += generate_string(exec, data)
  cmd
end
failed(msg, errno = 1) click to toggle source
# File bin/csv-curl, line 49
def failed(msg, errno = 1)
  $stderr.puts msg
  if errno == 1
    puts ""
    puts OPTPARSE
  end
  exit errno
end
format_value(value, format) click to toggle source
# File bin/csv-curl, line 82
def format_value(value, format)
  return '' unless value

  case format
  when 'json'
    value = value.to_json
    value.sub!(/\A"/, '')
    value.sub!(/"\z/, '')
    value
  when 'query',
       'param'
    CGI.escape(value)
  when 'base64'
    Base64.strict_encode64(value)
  when 'urlsafe64'
    Base64.urlsafe_encode64(value)
  when 'hex'
    value.unpack('H*').first
  when 'shellword',
       'shell'
    Shellword.escape(value)
  else
    value
  end
end
generate_string(str, data) click to toggle source
# File bin/csv-curl, line 108
def generate_string(str, data)
  str.gsub(/\{\{(.*?)\}\}/) do
    format, key =
         if $1.include?(':')
           $1.split(':', 2)
         else
           [nil, $1]
         end

    format_value(data[key], format)
  end
end
run_command_safely(cmd) click to toggle source
# File bin/csv-curl, line 121
def run_command_safely(cmd)
  res = `#{cmd}`
  failed("failed to run command: #{cmd}", 2) unless $?.success?
  res
end