Sha256: bdf2550d3c0d029553461b7d4f2372be68818532ca57b724e98eaa1c39f263b1

Contents?: true

Size: 638 Bytes

Versions: 3

Compression:

Stored size: 638 Bytes

Contents

module Dkim
  class CanonicalizedHeaders
    include Enumerable
    def initialize header_list, signed_headers
      @header_list    = header_list
      @signed_headers = signed_headers.map(&:downcase)
    end
    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
    def to_s(canonicalization)
      map do |header|
        header.to_s(canonicalization) + "\r\n"
      end.join
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dkim-1.1.0 lib/dkim/canonicalized_headers.rb
dkim-1.0.1 lib/dkim/canonicalized_headers.rb
dkim-1.0.0 lib/dkim/canonicalized_headers.rb