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