Class: RestClient::Payload::Base

### Home Classes Methods

### In Files

- lib/restclient/payload.rb

### Parent

Object

### Methods

- ::new
- #build_stream
- #close
- #flatten_params
- #flatten_params_array
- #headers
- #inspect
- #length
- #read
- #short_inspect
- #size
- #to_s

### Class/Module Index

Quicksearch

- RestClient
- RestClient::AbstractResponse
- RestClient::Exception
- RestClient::ExceptionWithResponse
- RestClient::Exceptions
- RestClient::MaxRedirectsReached
- RestClient::Payload
- RestClient::Payload::Base
- RestClient::Payload::Multipart
- RestClient::Payload::Streamed
- RestClient::Payload::UrlEncoded
- RestClient::Platform
- RestClient::RawResponse
- RestClient::Redirect
- RestClient::Request
- RestClient::Request::Redirect
- RestClient::Request::RequestFailed
- RestClient::RequestFailed
- RestClient::Resource
- RestClient::Response
- RestClient::ResponseForException
- RestClient::SSLCertificateNotVerified
- RestClient::ServerBrokeConnection
- RestClient::Windows
- RestClient::Windows::RootCerts
- RestClient::Windows::RootCerts::CERT_CONTEXT

No matching classes.

# RestClient::Payload::Base

### Public Class Methods

new(params) click to toggle source

    # File lib/restclient/payload.rb, line 52
    def initialize(params)
      build_stream(params)
    end

### Public Instance Methods

build_stream(params) click to toggle source

    # File lib/restclient/payload.rb, line 56
    def build_stream(params)
      @stream = StringIO.new(params)
      @stream.seek(0)
    end

close() click to toggle source

    # File lib/restclient/payload.rb, line 108
    def close
      @stream.close unless @stream.closed?
    end

flatten_params(params, parent_key = nil) click to toggle source

Flatten parameters by converting hashes of hashes to flat hashes {keys1 => {keys2 => value}} will be transformed into [keys1, value]

    # File lib/restclient/payload.rb, line 69
    def flatten_params(params, parent_key = nil)
      result = []
      params.each do |key, value|
        calculated_key = parent_key ? "#{parent_key}[#{handle_key(key)}]" : handle_key(key)
        if value.is_a? Hash
          result += flatten_params(value, calculated_key)
        elsif value.is_a? Array
          result += flatten_params_array(value, calculated_key)
        else
          result << [calculated_key, value]
        end
      end
      result
    end

flatten_params_array(value, calculated_key) click to toggle source

    # File lib/restclient/payload.rb, line 84
    def flatten_params_array value, calculated_key
      result = []
      value.each do |elem|
        if elem.is_a? Hash
          result += flatten_params(elem, calculated_key)
        elsif elem.is_a? Array
          result += flatten_params_array(elem, calculated_key)
        else
          result << ["#{calculated_key}[]", elem]
        end
      end
      result
    end

headers() click to toggle source

    # File lib/restclient/payload.rb, line 98
    def headers
      {'Content-Length' => size.to_s}
    end

inspect() click to toggle source

    # File lib/restclient/payload.rb, line 112
    def inspect
      result = to_s.inspect
      @stream.seek(0)
      result
    end

length() click to toggle source
Alias for: size
read(bytes=nil) click to toggle source

    # File lib/restclient/payload.rb, line 61
    def read(bytes=nil)
      @stream.read(bytes)
    end

Also aliased as: to_s
short_inspect() click to toggle source

    # File lib/restclient/payload.rb, line 118
    def short_inspect
      (size > 500 ? "#{size} byte(s) length" : inspect)
    end

size() click to toggle source

    # File lib/restclient/payload.rb, line 102
    def size
      @stream.size
    end

Also aliased as: length
to_s(bytes=nil) click to toggle source
Alias for: read

[Validate]

Generated with the Darkfish Rdoc Generator 2.