class RIMS::RFC822::Header

Attributes

raw_source[R]

Public Class Methods

new(header_txt) click to toggle source
# File lib/rims/rfc822.rb, line 480
def initialize(header_txt)
  @raw_source = header_txt
  @field_list = nil
  @field_table = nil
end

Public Instance Methods

[](name) click to toggle source

API methods

# File lib/rims/rfc822.rb, line 509
def [](name)
  setup_header
  if (value_list = @field_table[name.downcase]) then
    value_list[0]
  end
end
each()
Alias for: each_pair
each_key() { |key| ... } click to toggle source
# File lib/rims/rfc822.rb, line 552
def each_key
  setup_header
  return enum_for(:each_key) unless block_given?
  @field_table.each_key do |key|
    yield(key)
  end
  self
end
each_pair() { |name, value| ... } click to toggle source
# File lib/rims/rfc822.rb, line 561
def each_pair
  setup_header
  return enum_for(:each_pair) unless block_given?
  for name, value in @field_list
    yield(name, value)
  end
  self
end
Also aliased as: each
empty?() click to toggle source
# File lib/rims/rfc822.rb, line 532
def empty?
  setup_header
  @field_list.empty?
end
fetch_upcase(name) click to toggle source
# File lib/rims/rfc822.rb, line 516
def fetch_upcase(name)
  setup_header
  if (value_list = @field_table[name.downcase]) then
    value_list[0].upcase
  end
end
field_value_list(name) click to toggle source
# File lib/rims/rfc822.rb, line 523
def field_value_list(name)
  setup_header
  @field_table[name.downcase]
end
has_key?(name)

aliases like `Hash'

Alias for: key?
include?(name)
Alias for: key?
key?(name) click to toggle source
# File lib/rims/rfc822.rb, line 537
def key?(name)
  setup_header
  @field_table.key? name.downcase
end
Also aliased as: has_key?, include?, member?
keys() click to toggle source
# File lib/rims/rfc822.rb, line 547
def keys
  setup_header
  @field_table.keys
end
member?(name)
Alias for: key?

Private Instance Methods

setup_header() click to toggle source
# File lib/rims/rfc822.rb, line 488
def setup_header
  if (@field_list.nil? || @field_table.nil?) then
    @field_list = Parse.parse_header(@raw_source)
    @field_table = {}
    for name, value in @field_list
      key = name.downcase.freeze
      @field_table[key] = [] unless (@field_table.key? key)
      @field_table[key] << value
    end
    @field_table.each_value do |value_list|
      value_list.freeze
    end
    @field_table.freeze
  end

  nil
end