class RestClient::Payload::Base
def build_stream(params)
def build_stream(params) @stream = StringIO.new(params) @stream.seek(0) end
def close
def close @stream.close end
def escape(v)
def escape(v) URI.escape(v.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end
def flatten_params(params, parent_key = nil)
Flatten parameters by converting hashes of hashes to flat hashes
def flatten_params(params, parent_key = nil) result = {} params.keys.map do |key| calculated_key = parent_key ? "#{parent_key}[#{escape key}]" : escape(key) value = params[key] if value.is_a? Hash result.merge!(flatten_params(value, calculated_key)) else result[calculated_key] = value end end result end
def headers
def headers { 'Content-Length' => size.to_s } end
def initialize(params)
def initialize(params) build_stream(params) end
def inspect
def inspect result = to_s.inspect @stream.seek(0) result end
def read(bytes=nil)
def read(bytes=nil) @stream.read(bytes) end
def short_inspect
def short_inspect (size > 100 ? "#{size} byte length" : inspect) end
def size
def size @stream.size end