Sha256: aef6a27152b8dd229260ac7565d2767ed1f8a04648275f92c1958dec74cd2db8
Contents?: true
Size: 944 Bytes
Versions: 1
Compression:
Stored size: 944 Bytes
Contents
require 'mime/types/columnar' module RestMan module Payload extend self def generate(params) if params.is_a?(RestMan::Payload::Base) params elsif params.is_a?(String) Base.new(params) elsif params.is_a?(Hash) if params.delete(:multipart) == true || has_file?(params) Multipart.new(params) else UrlEncoded.new(params) end elsif params.is_a?(ParamsArray) if has_file?(params) Multipart.new(params) else UrlEncoded.new(params) end elsif params.respond_to?(:read) Streamed.new(params) else nil end end def has_file?(obj) case obj when Hash, ParamsArray obj.any? {|_, v| has_file?(v) } when Array obj.any? {|v| has_file?(v) } else obj.respond_to?(:path) && obj.respond_to?(:read) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rest-man-1.1.0 | lib/restman/payload.rb |