class Rex::Struct2::Restraint

Attributes

max_inv_transform[RW]
max_object[RW]
max_transform[RW]
min_inv_transform[RW]
min_object[RW]
min_transform[RW]
should_update[RW]

Public Class Methods

new( max_object=nil, min_object=nil, should_update=false, max_transform=nil, min_transform=nil, max_inv_transform=nil, min_inv_transform=nil ) click to toggle source
# File lib/rex/struct2/restraint.rb, line 14
def initialize(
  max_object=nil, min_object=nil, should_update=false,
  max_transform=nil, min_transform=nil,
  max_inv_transform=nil, min_inv_transform=nil
)
  @max_object    = max_object
  @min_object    = min_object
  @should_update = should_update

  def_trans = proc {|i| i}

  @max_transform       = max_transform == nil ? def_trans : max_transform
  @min_transform       = min_transform == nil ? def_trans : min_transform
  @max_inv_transform   = max_inv_transform == nil ? def_trans : max_inv_transform
  @min_inv_transform   = min_inv_transform == nil ? def_trans : min_inv_transform
end

Public Instance Methods

max() click to toggle source
# File lib/rex/struct2/restraint.rb, line 36
def max
  return if !max_object
  return max_object.value
end
min() click to toggle source
# File lib/rex/struct2/restraint.rb, line 31
def min
  return if !min_object
  return min_object.value
end
update(value) click to toggle source

update values if request (ie string set field to its length)

# File lib/rex/struct2/restraint.rb, line 42
def update(value)
  return if !@should_update

  max_object.value = max_inv_transform.call(value) if max_object
  min_object.value = min_inv_transform.call(value) if min_object
end