class Net::NTLM::FieldSet

base class of data structure

Public Class Methods

int16LE(name, opts) click to toggle source

@macro int16le_security_buffer

@method $1
@method $1=
@return [Int16LE]
# File lib/net/ntlm/field_set.rb, line 20
def int16LE(name, opts)
  add_field(name, Net::NTLM::Int16LE, opts)
end
int32LE(name, opts) click to toggle source

@macro int32le_security_buffer

@method $1
@method $1=
@return [Int32LE]
# File lib/net/ntlm/field_set.rb, line 28
def int32LE(name, opts)
  add_field(name, Net::NTLM::Int32LE, opts)
end
int64LE(name, opts) click to toggle source

@macro int64le_security_buffer

@method $1
@method $1=
@return [Int64]
# File lib/net/ntlm/field_set.rb, line 36
def int64LE(name, opts)
  add_field(name, Net::NTLM::Int64LE, opts)
end
names() click to toggle source
# File lib/net/ntlm/field_set.rb, line 52
def names
  return [] if @proto.nil?
  @proto.map{|n, t, o| n}
end
new() click to toggle source
# File lib/net/ntlm/field_set.rb, line 87
def initialize
  @alist = self.class.prototypes.map{ |n, t, o| [n, t.new(o)] }
end
opts() click to toggle source
# File lib/net/ntlm/field_set.rb, line 62
def opts
  return [] if @proto.nil?
  @proto.map{|n, t, o| o}
end
prototypes() click to toggle source
# File lib/net/ntlm/field_set.rb, line 48
def prototypes
  @proto
end
security_buffer(name, opts) click to toggle source

@macro ::security_buffer

@method $1
@method $1=
@return [SecurityBuffer]
# File lib/net/ntlm/field_set.rb, line 44
def security_buffer(name, opts)
  add_field(name, Net::NTLM::SecurityBuffer, opts)
end
string(name, opts) click to toggle source

@macro string_security_buffer

@method $1
@method $1=
@return [String]
# File lib/net/ntlm/field_set.rb, line 12
def string(name, opts)
  add_field(name, Net::NTLM::String, opts)
end
types() click to toggle source
# File lib/net/ntlm/field_set.rb, line 57
def types
  return [] if @proto.nil?
  @proto.map{|n, t, o| t}
end

Private Class Methods

add_field(name, type, opts) click to toggle source
# File lib/net/ntlm/field_set.rb, line 69
def add_field(name, type, opts)
  (@proto ||= []).push [name, type, opts]
  define_accessor name
end
define_accessor(name) click to toggle source
# File lib/net/ntlm/field_set.rb, line 74
        def define_accessor(name)
          module_eval(<<-End, __FILE__, __LINE__ + 1)
          def #{name}
            self['#{name}'].value
          end

          def #{name}=(val)
            self['#{name}'].value = val
          end
          End
        end

Public Instance Methods

[](name) click to toggle source
# File lib/net/ntlm/field_set.rb, line 103
def [](name)
  a = @alist.assoc(name.to_s.intern)
  raise ArgumentError, "no such field: #{name}" unless a
  a[1]
end
[]=(name, val) click to toggle source
# File lib/net/ntlm/field_set.rb, line 109
def []=(name, val)
  a = @alist.assoc(name.to_s.intern)
  raise ArgumentError, "no such field: #{name}" unless a
  a[1] = val
end
disable(name) click to toggle source
# File lib/net/ntlm/field_set.rb, line 119
def disable(name)
  self[name].active = false
end
enable(name) click to toggle source
# File lib/net/ntlm/field_set.rb, line 115
def enable(name)
  self[name].active = true
end
has_disabled_fields?() click to toggle source
# File lib/net/ntlm/field_set.rb, line 123
def has_disabled_fields?
  @alist.any? { |name, field| !field.active }
end
parse(str, offset=0) click to toggle source
# File lib/net/ntlm/field_set.rb, line 91
def parse(str, offset=0)
  @alist.inject(offset){|cur, a| cur += a[1].parse(str, cur)}
end
serialize() click to toggle source
# File lib/net/ntlm/field_set.rb, line 95
def serialize
  @alist.map{|n, f| f.serialize }.join
end
size() click to toggle source
# File lib/net/ntlm/field_set.rb, line 99
def size
  @alist.inject(0){|sum, a| sum += a[1].size}
end