Class: IPAddress::Last
- Inherits:
-
Object
- Object
- IPAddress::Last
- Defined in:
- lib/ipaddress/rle.rb
Instance Attribute Summary collapse
-
#max_poses ⇒ Object
readonly
Returns the value of attribute max_poses.
-
#ret ⇒ Object
readonly
Returns the value of attribute ret.
-
#val ⇒ Object
Returns the value of attribute val.
Instance Method Summary collapse
- #handle_last ⇒ Object
-
#initialize ⇒ Last
constructor
A new instance of Last.
Constructor Details
#initialize ⇒ Last
8 9 10 11 12 |
# File 'lib/ipaddress/rle.rb', line 8 def initialize() @val = nil @max_poses = {} @ret = [] end |
Instance Attribute Details
#max_poses ⇒ Object (readonly)
Returns the value of attribute max_poses.
5 6 7 |
# File 'lib/ipaddress/rle.rb', line 5 def max_poses @max_poses end |
#ret ⇒ Object (readonly)
Returns the value of attribute ret.
5 6 7 |
# File 'lib/ipaddress/rle.rb', line 5 def ret @ret end |
#val ⇒ Object
Returns the value of attribute val.
5 6 7 |
# File 'lib/ipaddress/rle.rb', line 5 def val @val end |
Instance Method Details
#handle_last ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/ipaddress/rle.rb', line 14 def handle_last() if (nil == val) return end _last = @val max_rles = @max_poses[_last.part] if (max_rles == nil) max_rles = [] @max_poses[_last.part] = max_rles end # console.log(_last.part, @max_poses) # puts ">>>>#{@ret} #{@max_poses} #{max_rles}" max_rles.each do |idx| # puts "#{@ret} #{max_rles} #{idx}" prev = @ret[idx] if (prev.cnt > _last.cnt) # console.log(`>>>>> last=${_last}->${idx}->prev=${prev}`) _last.max = false elsif (prev.cnt == _last.cnt) # nothing elsif (prev.cnt < _last.cnt) # console.log(`<<<<< last=${_last}->${idx}->prev=${prev}`) prev.max = false end end #println!("push:{}:{:?}", self.ret.len(), _last) max_rles.push(@ret.length) _last.pos = @ret.length @ret.push(_last) end |