Class: Dkim::CanonicalizedHeaders

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/dkim/canonicalized_headers.rb

Instance Method Summary collapse

Constructor Details

#initialize(header_list, signed_headers) ⇒ CanonicalizedHeaders

Returns a new instance of CanonicalizedHeaders.



4
5
6
7
# File 'lib/dkim/canonicalized_headers.rb', line 4

def initialize header_list, signed_headers
  @header_list    = header_list
  @signed_headers = signed_headers.map(&:downcase)
end

Instance Method Details

#each(&block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/dkim/canonicalized_headers.rb', line 8

def each(&block)
  header_hash = Hash.new {|h,k| h[k] = []}
  @header_list.each do |header|
    header_hash[header.relaxed_key] << header
  end

  @signed_headers.each do |key|
    if header = header_hash[key].pop
      yield header
    end
  end
end

#to_s(canonicalization) ⇒ Object



20
21
22
23
24
# File 'lib/dkim/canonicalized_headers.rb', line 20

def to_s(canonicalization)
  map do |header|
    header.to_s(canonicalization) + "\r\n"
  end.join
end