Class: Rex::Poly::Permutation
 Inherits:

Object
 Object
 Rex::Poly::Permutation
 Defined in:
 lib/rex/poly/block.rb
Overview
This class encapsulates a LogicalBlock permutation. Block permutations can take the form of a static string or a procedure. This makes it possible to have simple blocks and more complicated ones that take into account other variables, such as dynamic registers. The to_s method will return the string version of the permutation, regardless of whether or not the underlying permutation is a string or a procedure.
Instance Attribute Summary collapse

#perm ⇒ Object
readonly
Returns the value of attribute perm.
Instance Method Summary collapse

#initialize(perm, block) ⇒ Permutation
constructor
Initializes the permutation and its associated block.

#length ⇒ Object
Returns the length of the string returned by to_s.

#to_s ⇒ Object
Returns the string representation of the permutation.
Constructor Details
#initialize(perm, block) ⇒ Permutation
Initializes the permutation and its associated block.
20 21 22 23 
# File 'lib/rex/poly/block.rb', line 20 def initialize(perm, block) @perm = perm @block = block end 
Instance Attribute Details
#perm ⇒ Object (readonly)
Returns the value of attribute perm
45 46 47 
# File 'lib/rex/poly/block.rb', line 45 def perm @perm end 
Instance Method Details
#length ⇒ Object
Returns the length of the string returned by to_s.
28 29 30 
# File 'lib/rex/poly/block.rb', line 28 def length to_s.length end 
#to_s ⇒ Object
Returns the string representation of the permutation. If the underlying permutation is a procedure, the procedure is called. Otherwise, the string representation of the permutation is returned.
37 38 39 40 41 42 43 
# File 'lib/rex/poly/block.rb', line 37 def to_s if (@perm.kind_of?(Proc)) @perm.call(@block).to_s else @perm.to_s end end 