Class: PacketGen::Header::Base::Binding Private

Inherits:
Struct
  • Object
show all
Defined in:
lib/packetgen/header/base.rb

Overview

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

Simple class to handle a header association

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#keyObject

Returns the value of attribute key



23
24
25
# File 'lib/packetgen/header/base.rb', line 23

def key
  @key
end

#valueObject

Returns the value of attribute value



23
24
25
# File 'lib/packetgen/header/base.rb', line 23

def value
  @value
end

Instance Method Details

#check?(fields) ⇒ Boolean

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.

Check fields responds to binding



27
28
29
30
31
32
33
34
# File 'lib/packetgen/header/base.rb', line 27

def check?(fields)
  case self[:value]
  when Proc
    self[:value].call fields.send(self[:key])
  else
    fields.send(self[:key]) == self[:value]
  end
end

#set(fields) ⇒ void

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.

This method returns an undefined value.

Set fields field to binding value



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/packetgen/header/base.rb', line 39

def set(fields)
  case self[:value]
  when Proc
    fields.send(:"#{self[:key]}=", self[:value].call(nil))
  else
    attr = if self[:key].to_s.end_with?('?')
             self[:key].to_s[0..-2]
           else
             self[:key]
           end
    fields.send(:"#{attr}=", self[:value])
  end
end