Class: Faraday::Env

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/faraday/options.rb

Constant Summary collapse

ContentLength =
'Content-Length'.freeze
StatusesWithoutBody =
Set.new [204, 304]
SuccessfulStatuses =
200..299
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.

Set.new [:post, :put, :patch, :options]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from(value) ⇒ Object

Public



287
288
289
290
291
292
293
# File 'lib/faraday/options.rb', line 287

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

.member_setObject

Internal



369
370
371
# File 'lib/faraday/options.rb', line 369

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

Instance Method Details

#[](key) ⇒ Object

Public



296
297
298
299
300
301
302
# File 'lib/faraday/options.rb', line 296

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

#[]=(key, value) ⇒ Object

Public



305
306
307
308
309
310
311
# File 'lib/faraday/options.rb', line 305

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

#clear_bodyObject

Public



324
325
326
327
# File 'lib/faraday/options.rb', line 324

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

#custom_membersObject

Internal



353
354
355
# File 'lib/faraday/options.rb', line 353

def custom_members
  @custom_members ||= {}
end

#in_member_set?(key) ⇒ Boolean

Returns:

  • (Boolean)


359
360
361
# File 'lib/faraday/options.rb', line 359

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

#inspectObject



339
340
341
342
343
344
345
346
347
348
349
350
# File 'lib/faraday/options.rb', line 339

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

#needs_body?Boolean

Public

Returns:

  • (Boolean)


319
320
321
# File 'lib/faraday/options.rb', line 319

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

#parallel?Boolean

Public

Returns:

  • (Boolean)


335
336
337
# File 'lib/faraday/options.rb', line 335

def parallel?
  !!parallel_manager
end

#parse_body?Boolean

Public

Returns:

  • (Boolean)


330
331
332
# File 'lib/faraday/options.rb', line 330

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

#success?Boolean

Public

Returns:

  • (Boolean)


314
315
316
# File 'lib/faraday/options.rb', line 314

def success?
  SuccessfulStatuses.include?(status)
end