class PacketGen::Header::Base::Binding

@api private Simple class to handle a header association

Public Instance Methods

check?(fields) click to toggle source

@param [Types::Fields] fields @return [Boolean]

# File lib/packetgen/header/base.rb, line 26
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) click to toggle source

Set fields field to binding value @param [Types::Fields] fields @return [void]

# File lib/packetgen/header/base.rb, line 38
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