Class: Trav3::Headers

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/trav3/headers.rb

Overview

A header builder class for outgoing requests

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) ⇒ Headers

Returns a new instance of Headers



18
19
20
# File 'lib/trav3/headers.rb', line 18

def initialize(args = {})
  build(args)
end

Instance Method Details

#+(other) ⇒ Headers

Add the values of one Headers into another

Parameters:

  • other (Headers)

    instance of Headers

Returns:

Raises:

  • (TypeError)


47
48
49
50
51
52
53
# File 'lib/trav3/headers.rb', line 47

def +(other)
  raise TypeError, "Headers type expected, #{other.class} given" unless other.is_a? Headers

  @heads.merge(other.instance_variable_get(:@heads))

  self
end

#build(args = {}) ⇒ Headers

Add or update the request headers

Returns:



25
26
27
28
29
30
31
32
33
# File 'lib/trav3/headers.rb', line 25

def build(args = {})
  @heads ||= {}

  args.each do |(key, value)|
    @heads[key] = value
  end

  self
end

#each_pairObject

Forwards to :@heads.

See Also:

  • Hash#each_pair


16
# File 'lib/trav3/headers.rb', line 16

def_delegators :@heads, :each_pair, :fetch

#fetchObject

Forwards to :@heads.

See Also:

  • Hash#fetch


16
# File 'lib/trav3/headers.rb', line 16

def_delegators :@heads, :each_pair, :fetch

#remove(key) ⇒ String, ...

Remove key/value from headers via key

Parameters:

  • key (Symbol, String)

    key to look up

Returns:

  • (String, Symbol, nil)

    returns value if key found, nil otherwise.



39
40
41
# File 'lib/trav3/headers.rb', line 39

def remove(key)
  @heads.delete(key)
end

#to_hHash

Returns hash of the Headers

Returns:

  • (Hash)

    hash of the Headers



56
57
58
# File 'lib/trav3/headers.rb', line 56

def to_h
  @heads
end