class Typhoeus::Easy

def curl_return_code=(code)

def curl_return_code=(code)
  @curl_return_code = (code.class == Symbol ? code : Curl::EasyCode[code])
end

def headers

def headers
  @header ||= {}
end

def headers=(hash)

def headers=(hash)
  @headers = hash
end

def initialize

def initialize
  Curl.init
  reset(true)
  ObjectSpace.define_finalizer(self, self.class.finalizer(self))
end

def method

def method
  @method ||= :get
end

def params

def params
  @form.nil? ? {} : @form.params
end

def params=(params)

def params=(params)
  @form = Typhoeus::Form.new(params)
  if method == :post
    @form.process!
    if @form.multipart?
      set_option(:httppost, @form)
    else
      self.post_data = @form.to_s
    end
  else
    self.url = "#{url}?#{@form.to_s}"
  end
end

def perform

def perform
  set_headers()
  @curl_return_code = Curl.easy_perform(handle)
  resp_code = response_code()
  if resp_code >= 200 && resp_code <= 299
    success
  else
    failure
  end
  resp_code
end

def reset(fresh = nil)

def reset(fresh = nil)
  unless fresh
    @response_code = 0
    @response_header = ""
    @response_body = ""
    @request_body = ""
    if @header_list
      Curl.slist_free_all(@header_list)
      @header_list = nil
    end
    Curl.easy_reset(handle)
  end
  self.write_function = body_write_callback
  self.header_function = header_write_callback
  self.encoding = ''
  self.ssl_version = :default
end

def response_body

def response_body
  @response_body ||= ""
end

def response_header

def response_header
  @response_header ||= ""
end