Method: Codec::Packed#decode

Defined in:
lib/codec/packed.rb

#decode(buf, f, length = nil) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/codec/packed.rb', line 31

def decode(buf,f, length = nil)
  length ||= @length
  l = check_length(buf,(length + 1) / 2)
  val = buf.slice!(0...l).unpack("H*").first
  # remove padding if odd length
  ( @lPad ? val.chop! : val.slice!(0) ) if @length.odd? || length.odd?
  val = val.to_i if @isNum
  f.set_value(val)   
end