Sha256: 46dbfa41222c66385276dd048a9d809842358df23704c3a466bec7eaa04f91cf

Contents?: true

Size: 1.14 KB

Versions: 60

Compression:

Stored size: 1.14 KB

Contents

require 'curb'
Facebooker.use_curl = true
class Facebooker::Service::CurlService < Facebooker::Service::BaseService
  def post_form(url,params,multipart=false)
    curl = Curl::Easy.new(url.to_s) do |c|
      c.multipart_form_post = multipart
      c.timeout = Facebooker.timeout
    end
    curl.http_post(*to_curb_params(params)) 
    curl.body_str
  end
  
  def post_multipart_form(url,params)
    post_form(url,params,true)
  end
  
  # Net::HTTP::MultipartPostFile
  def multipart_post_file?(object)
    object.respond_to?(:content_type) &&
    object.respond_to?(:data) &&
    object.respond_to?(:filename)
  end

  def to_curb_params(params)
    parray = []
    params.each_pair do |k,v|
      if multipart_post_file?(v)
        # Curl doesn't like blank field names
        field = Curl::PostField.file((k.blank? ? 'xxx' : k.to_s), nil, File.basename(v.filename))
        field.content_type = v.content_type
        field.content = v.data
        parray << field
      else
        parray << Curl::PostField.content(
          k.to_s,
          (Array === v || Hash===v) ? Facebooker.json_encode(v) : v.to_s
        )
      end
    end
    parray
  end
  
end
  

Version data entries

60 entries across 60 versions & 19 rubygems

Version Path
micahwedemeyer-facebooker-1.0.50 lib/facebooker/service/curl_service.rb
micahwedemeyer-facebooker-1.0.51 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.45 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.46 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.47 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.48 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.49 lib/facebooker/service/curl_service.rb
mmangino-facebooker-1.0.50 lib/facebooker/service/curl_service.rb
pomartel-facebooker-1.0.45 lib/facebooker/service/curl_service.rb
pomartel-facebooker-1.0.47 lib/facebooker/service/curl_service.rb
simianarmy-facebooker-1.0.50 lib/facebooker/service/curl_service.rb
simianarmy-facebooker-1.0.51 lib/facebooker/service/curl_service.rb
taweili-facebooker-1.0.45 lib/facebooker/service/curl_service.rb
taweili-facebooker-1.0.47 lib/facebooker/service/curl_service.rb
taweili-facebooker-1.0.50 lib/facebooker/service/curl_service.rb
zerobearing2-facebooker-1.0.46 lib/facebooker/service/curl_service.rb
facebooker-1.0.75 lib/facebooker/service/curl_service.rb
sentientmonkey-facebooker-1.0.74 lib/facebooker/service/curl_service.rb
facebooker-micah-1.0.74 lib/facebooker/service/curl_service.rb
facebooker-1.0.74 lib/facebooker/service/curl_service.rb