Sha256: d29d053209dd8c599ddfe8f4c37c6d52cf219e0baaec8abb589c77d209bf845d
Contents?: true
Size: 956 Bytes
Versions: 15
Compression:
Stored size: 956 Bytes
Contents
module PollEverywhere module HTTP autoload :RequestBuilder, 'polleverywhere/http/request_builder' autoload :Adapter, 'polleverywhere/http/adapter' # Shortcut for getting adapater instances def self.adapter(name, &block) Adapter.registry[name].new(&block) end # Simple HTTP request/response objects for our adapter and DSL class Request < Struct.new(:method, :url, :headers, :body) def to_curl case method.to_s when /^put|post$/i %(curl -X #{method.to_s.upcase} #{headers.map{|h,v| %(-H "#{h}: #{v}")}.join(" ")} -d "#{body.gsub(/[!"`'\n]/){|m| "\\#{m}" }}" "#{url}") when /^get$/i %(curl #{headers.map{|h,v| %(-H "#{h}: #{v}")}.join(" ")} "#{url}") else %(curl -X #{method.to_s.upcase} #{headers.map{|h,v| %(-H "#{h}: #{v}")}.join(" ")} "#{url}") end end end Response = Struct.new(:status, :headers, :body) end end
Version data entries
15 entries across 15 versions & 1 rubygems