class Pod::CodingArUtil

Constants

CODING_AR_NETRC_PATH_ENV
JSON_CONTENT_TYPE
USER_AGENT

Public Class Methods

coding_ar_service?(url) click to toggle source
# File lib/coding_ar_util.rb, line 12
def self.coding_ar_service?(url)
  request = Typhoeus::Request.new(
    url,
    :method => :get,
    :headers => { 
      'User-Agent' => USER_AGENT, 
    },
  )
  request.run

  begin
    resp = JSON.parse(request.response.body)
    resp['service'] == 'CODING-AR'
  rescue
    return false
  end
end
download(url, path) click to toggle source
# File lib/coding_ar_util.rb, line 73
def self.download(url, path)
  request = Typhoeus::Request.new(
    url,
    :method => :get,
    :netrc => :optional,
    :netrc_file => ENV[CODING_AR_NETRC_PATH_ENV] || Netrc.default_path,
    :followlocation => true,
    :headers => { 
      'User-Agent' => USER_AGENT, 
    },
  )
  request.run

  if request.response.code == 0
    raise "fail to request #{url}: #{request.response.return_message}"
  elsif request.response.code != 200
    raise "fail to request #{url}: #{request.response.body}"
  else
    file = File.new(path, 'wb')
    file << request.response.body
    file.close
  end
end
get_json(url) click to toggle source
# File lib/coding_ar_util.rb, line 51
def self.get_json(url)
  request = Typhoeus::Request.new(
    url,
    :method => :get,
    :netrc => :optional,
    :netrc_file => ENV[CODING_AR_NETRC_PATH_ENV] || Netrc.default_path,
    :followlocation => true,
    :headers => { 
      'User-Agent' => USER_AGENT, 
    },
  )
  request.run

  if request.response.code == 0
    raise "fail to request #{url}: #{request.response.return_message}"
  elsif request.response.code != 200
    raise "fail to request #{url}: #{request.response.body}"
  else
    JSON.parse(request.response.body)
  end
end
push_pod(url, body_path) click to toggle source
# File lib/coding_ar_util.rb, line 30
def self.push_pod(url, body_path)
  request = Typhoeus::Request.new(
    url,
    :method => :post,
    :netrc => :optional,
    :netrc_file => ENV[CODING_AR_NETRC_PATH_ENV] || Netrc.default_path,
    :headers => { 
      'Content-Type' => JSON_CONTENT_TYPE,
      'User-Agent' => USER_AGENT, 
    },
    :body => File.read(body_path),
  )
  request.run

  if request.response.code == 0
    raise "fail to push pod: #{request.response.return_message}"
  elsif request.response.code != 200
    raise "fail to push pod: #{request.response.body}"
  end
end