Sha256: 9205d3139e941b2fb55137893b4bffe38b42e76aa036719dc6b82193c2a0563a
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
require 'restclient' require 'rack' require 'stringio' require 'vendor/okjson' module Taps class Multipart class Container attr_accessor :attachments def initialize @attachments = [] end def attach(opts) mp = Taps::Multipart.new(opts) attachments << mp end def generate hash = {} attachments.each do |mp| hash[mp.name] = mp end m = RestClient::Payload::Multipart.new(hash) [m.to_s, m.headers['Content-Type']] end end attr_reader :opts def initialize(opts = {}) @opts = opts end def name opts[:name] end def to_s opts[:payload] end def content_type opts[:content_type] || 'text/plain' end def original_filename opts[:original_filename] end def self.create c = Taps::Multipart::Container.new yield c c.generate end # response is a rest-client response def self.parse(response) content = response.to_s env = { 'CONTENT_TYPE' => response.headers[:content_type], 'CONTENT_LENGTH' => content.size, 'rack.input' => StringIO.new(content) } params = Rack::Multipart.parse_multipart(env) params.symbolize_keys! params end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
taps2-0.6.10 | lib/taps/multipart.rb |