Sha256: 7b67bba678954a1016f8c7758aee8ae67800b768c522253dc15a9b578e3814ef

Contents?: true

Size: 1.38 KB

Versions: 21

Compression:

Stored size: 1.38 KB

Contents

# -*- coding: binary -*-

# Rex::Struct2
module Rex
module Struct2

class Restraint

  attr_reader  :max_object, :min_object, :should_update,
    :max_transform, :min_transform, :max_inv_transform, :min_inv_transform
  attr_writer  :max_object, :min_object, :should_update,
    :max_transform, :min_transform, :max_inv_transform, :min_inv_transform


  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

  def min
    return if !min_object
    return min_object.value
  end

  def max
    return if !max_object
    return max_object.value
  end

  # update values if request (ie string set field to its length)
  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

end

# end Rex::Struct2
end
end

Version data entries

21 entries across 21 versions & 4 rubygems

Version Path
rex-struct2-0.1.5 lib/rex/struct2/restraint.rb
rex-struct2-0.1.4 lib/rex/struct2/restraint.rb
rex-struct2-0.1.3 lib/rex/struct2/restraint.rb
rex-2.0.13 lib/rex/struct2/restraint.rb
rex-2.0.12 lib/rex/struct2/restraint.rb
rex-2.0.11 lib/rex/struct2/restraint.rb
rex-struct2-0.1.2 lib/rex/struct2/restraint.rb
rex-struct2-0.1.1 lib/rex/struct2/restraint.rb
rex-struct2-0.1.0 lib/rex/struct2/restraint.rb
rex-2.0.10 lib/rex/struct2/restraint.rb
rex-2.0.9 lib/rex/struct2/restraint.rb
rex-2.0.8 lib/rex/struct2/restraint.rb
rex-2.0.7 lib/rex/struct2/restraint.rb
rex-2.0.5 lib/rex/struct2/restraint.rb
rex-2.0.4 lib/rex/struct2/restraint.rb
dstruct-0.0.1 lib/rex/struct2/restraint.rb
rex-2.0.3 lib/rex/struct2/restraint.rb
librex-0.0.999 lib/rex/struct2/restraint.rb
rex-2.0.2 lib/rex/struct2/restraint.rb
librex-0.0.71 lib/rex/struct2/restraint.rb