Sha256: d782ff8af7c8f41fca2ae2128e697833724a0c15c46f21307c3d0e3a456a7849
Contents?: true
Size: 1.91 KB
Versions: 1
Compression:
Stored size: 1.91 KB
Contents
require 'json' module JsonRequest def json_patch(path, data = {}, rack_env = {}) patch path, data.to_json, { 'CONTENT_TYPE' => TentD::API::MEDIA_TYPE }.merge(rack_env) end def json_put(path, data = {}, rack_env= {}) put path, data.to_json, { 'CONTENT_TYPE' => TentD::API::MEDIA_TYPE }.merge(rack_env) end def json_post(path, data = {}, rack_env = {}) post path, data.to_json, { 'CONTENT_TYPE' => TentD::API::MEDIA_TYPE }.merge(rack_env) end def json_get(path, data = {}, rack_env = {}) get path, data, { 'HTTP_ACCEPT' => TentD::API::MEDIA_TYPE }.merge(rack_env) end def multipart_post(path, json, parts, rack_env = {}) body = build_json_part(json) + build_parts(parts) + "--#{Rack::Multipart::MULTIPART_BOUNDARY}--\r" post path, body, { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Multipart::MULTIPART_BOUNDARY}", 'HTTP_ACCEPT' => TentD::API::MEDIA_TYPE }.merge(rack_env) end def multipart_put(path, json, parts, rack_env = {}) body = build_json_part(json) + build_parts(parts) + "--#{Rack::Multipart::MULTIPART_BOUNDARY}--\r" put path, body, { 'CONTENT_TYPE' => "multipart/form-data; boundary=#{Rack::Multipart::MULTIPART_BOUNDARY}", 'HTTP_ACCEPT' => TentD::API::MEDIA_TYPE }.merge(rack_env) end private def build_json_part(json) build_part('post', :filename => 'post.json', :content_type => TentD::API::MEDIA_TYPE, :content => json.to_json) end def build_parts(parts) parts.map do |k,v| v.kind_of?(Array) ? v.each_with_index.map { |part,i| build_part("#{k}[#{i}]", part) } : build_part(k, v) end.join end def build_part(name, data) <<-EOF --#{Rack::Multipart::MULTIPART_BOUNDARY}\r Content-Disposition: form-data; name="#{name}"; filename="#{Rack::Utils.escape(data[:filename])}"\r Content-Type: #{data[:content_type]}\r Content-Length: #{data[:content].size}\r \r #{data[:content]}\r EOF end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tentd-0.0.1 | spec/support/json_request.rb |