Module: Ethon::Easy::Header Private

Included in:
Ethon::Easy
Defined in:
lib/ethon/easy/header.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

This module contains the logic around adding headers to libcurl.

Instance Method Summary collapse

Instance Method Details

#compose_header(key, value) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Compose libcurl header string from key and value. Also replaces null bytes, because libcurl will complain otherwise.

Examples:

Compose header.

easy.compose_header('User-Agent', 'Ethon')


55
56
57
# File 'lib/ethon/easy/header.rb', line 55

def compose_header(key, value)
  Util.escape_zero_byte("#{key}: #{value}")
end

#header_listFFI::Pointer

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return header_list.

Examples:

Return header_list.

easy.header_list


40
41
42
# File 'lib/ethon/easy/header.rb', line 40

def header_list
  @header_list
end

#headersHash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return headers, return empty hash if none.

Examples:

Return the headers.

easy.headers


13
14
15
# File 'lib/ethon/easy/header.rb', line 13

def headers
  @headers ||= {}
end

#headers=(headers) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Set the headers.

Examples:

Set the headers.

easy.headers = {'User-Agent' => 'ethon'}


23
24
25
26
27
28
29
30
31
32
# File 'lib/ethon/easy/header.rb', line 23

def headers=(headers)
  headers ||= {}
  header_list = nil
  headers.each do |k, v|
    header_list = Curl.slist_append(header_list, compose_header(k,v))
  end
  Curl.set_option(:httpheader, header_list, handle)

  @header_list = header_list && FFI::AutoPointer.new(header_list, Curl.method(:slist_free_all))
end