Sha256: 98b3f0b9d8237d68593bb15c0a1a014bfa93a3e5c3b816055123773de647ed97
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
# coding: utf-8 # frozen_string_literal: true # This file is part of PacketGen # See https://github.com/sdaubert/packetgen for more informations # Copyright (C) 2016 Sylvain Daubert <sylvain.daubert@laposte.net> # This program is published under MIT license. module PacketGen module Types # This class is just like regular String. It only adds {#read}, {#sz}, # #{to_human} and {#from_human} methods # to be compatible with others {Types}. # @author Sylvain Daubert class String < ::String include LengthFrom # @return [Integer] attr_reader :static_length # @param [Hash] options # @option options [Types::Int,Proc] :length_from object or proc from which # takes length when reading # @option options [Integer] :static_length set a static length for this string def initialize(options={}) super() initialize_length_from(options) @static_length = options[:static_length] end # @param [::String] str # @return [String] self def read(str) s = read_with_length_from(str) s = s[0, static_length] if static_length self.replace(s) self end alias sz length alias to_human to_s alias from_human read end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
packetgen-3.1.4 | lib/packetgen/types/string.rb |