class Faraday::Env

def self.from(value)

Public
def self.from(value)
  env = super(value)
  if value.respond_to?(:custom_members)
    env.custom_members.update(value.custom_members)
  end
  env
end

def self.member_set

Internal
def self.member_set
  @member_set ||= Set.new(members)
end

def [](key)

Public
def [](key)
  if in_member_set?(key)
    super(key)
  else
    custom_members[key]
  end
end

def []=(key, value)

Public
def []=(key, value)
  if in_member_set?(key)
    super(key, value)
  else
    custom_members[key] = value
  end
end

def clear_body

Public
def clear_body
  request_headers[ContentLength] = '0'
  self.body = ''
end

def custom_members

Internal
def custom_members
  @custom_members ||= {}
end

def in_member_set?(key)

def in_member_set?(key)
  self.class.member_set.include?(key.to_sym)
end

def in_member_set?(key)

def in_member_set?(key)
  self.class.member_set.include?(key.to_s)
end

def inspect

def inspect
  attrs = [nil]
  members.each do |mem|
    if value = send(mem)
      attrs << "@#{mem}=#{value.inspect}"
    end
  end
  if !custom_members.empty?
    attrs << "@custom=#{custom_members.inspect}"
  end
  %(#<#{self.class}#{attrs.join(" ")}>)
end

def needs_body?

Public
def needs_body?
  !body && MethodsWithBodies.include?(method)
end

def parallel?

Public
def parallel?
  !!parallel_manager
end

def parse_body?

Public
def parse_body?
  !StatusesWithoutBody.include?(status)
end

def success?

Public
def success?
  SuccessfulStatuses.include?(status)
end