class Faraday::Env

@!attribute method

@return [Symbol] HTTP method (`:get`, `:post`)

@!attribute body

@return [String] The request body that will eventually be converted to a
string.

@!attribute url

@return [URI] URI instance for the current request.

@!attribute request

@return [Hash] options for configuring the request.
Options for configuring the request.

- `:timeout`  open/read timeout Integer in seconds
- `:open_timeout` - read timeout Integer in seconds
- `:on_data`      - Proc for streaming
- `:proxy`        - Hash of proxy options
    - `:uri`        - Proxy Server URI
    - `:user`       - Proxy server username
    - `:password`   - Proxy server password

@!attribute request_headers

@return [Hash] HTTP Headers to be sent to the server.

@!attribute ssl

@return [Hash] options for configuring SSL requests

@!attribute parallel_manager

@return [Object] sent if the connection is in parallel mode

@!attribute params

@return [Hash]

@!attribute response

@return [Response]

@!attribute response_headers

@return [Hash] HTTP headers from the server

@!attribute status

@return [Integer] HTTP response status code

@!attribute reason_phrase

@return [String]

Constants

ContentLength

rubocop:disable Naming/ConstantName

MethodsWithBodies

A Set of HTTP verbs that typically send a body. If no body is set for these requests, the Content-Length header is set to 0.

StatusesWithoutBody
SuccessfulStatuses

Public Class Methods

from(value) click to toggle source

Build a new Env from given value. Respects and updates `custom_members`.

@param value [Object] a value fitting Option.from(v). @return [Env] from given value

Calls superclass method
# File lib/faraday/options/env.rb, line 75
def self.from(value)
  env = super(value)
  if value.respond_to?(:custom_members)
    env.custom_members.update(value.custom_members)
  end
  env
end
member_set() click to toggle source

@private

# File lib/faraday/options/env.rb, line 177
def self.member_set
  @member_set ||= Set.new(members)
end

Public Instance Methods

[](key) click to toggle source

@param key [Object]

Calls superclass method
# File lib/faraday/options/env.rb, line 84
def [](key)
  return self[current_body] if key == :body

  if in_member_set?(key)
    super(key)
  else
    custom_members[key]
  end
end
[]=(key, value) click to toggle source

@param key [Object] @param value [Object]

Calls superclass method
# File lib/faraday/options/env.rb, line 96
def []=(key, value)
  if key == :body
    super(current_body, value)
    return
  end

  if in_member_set?(key)
    super(key, value)
  else
    custom_members[key] = value
  end
end
body() click to toggle source
# File lib/faraday/options/env.rb, line 113
def body
  self[:body]
end
body=(value) click to toggle source
# File lib/faraday/options/env.rb, line 117
def body=(value)
  self[:body] = value
end
clear_body() click to toggle source

Sets content length to zero and the body to the empty string.

# File lib/faraday/options/env.rb, line 133
def clear_body
  request_headers[ContentLength] = '0'
  self.body = +''
end
current_body() click to toggle source
# File lib/faraday/options/env.rb, line 109
def current_body
  !!status ? :response_body : :request_body
end
custom_members() click to toggle source

@private

# File lib/faraday/options/env.rb, line 161
def custom_members
  @custom_members ||= {}
end
in_member_set?(key) click to toggle source
# File lib/faraday/options/env.rb, line 167
def in_member_set?(key)
  self.class.member_set.include?(key.to_sym)
end
inspect() click to toggle source
# File lib/faraday/options/env.rb, line 149
def inspect
  attrs = [nil]
  members.each do |mem|
    if (value = send(mem))
      attrs << "@#{mem}=#{value.inspect}"
    end
  end
  attrs << "@custom=#{custom_members.inspect}" unless custom_members.empty?
  %(#<#{self.class}#{attrs.join(' ')}>)
end
needs_body?() click to toggle source

@return [Boolean] true if there's no body yet, and the method is in the set of {MethodsWithBodies}.

# File lib/faraday/options/env.rb, line 128
def needs_body?
  !body && MethodsWithBodies.include?(method)
end
parallel?() click to toggle source

@return [Boolean] true if there is a parallel_manager

# File lib/faraday/options/env.rb, line 145
def parallel?
  !!parallel_manager
end
parse_body?() click to toggle source

@return [Boolean] true if the status isn't in the set of {StatusesWithoutBody}.

# File lib/faraday/options/env.rb, line 140
def parse_body?
  !StatusesWithoutBody.include?(status)
end
success?() click to toggle source

@return [Boolean] true if status is in the set of {SuccessfulStatuses}.

# File lib/faraday/options/env.rb, line 122
def success?
  SuccessfulStatuses.include?(status)
end