module Scale::Types::Option::ClassMethods

Public Instance Methods

decode(scale_bytes) click to toggle source
# File lib/scale/base.rb, line 56
def decode(scale_bytes)
  puts "BEGIN " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
  byte = scale_bytes.get_next_bytes(1)
  if byte == [0]
    puts "  END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
    new(nil)
  elsif byte == [1]
    # big process
    type = 
      if self::INNER_TYPE.class == ::String
        Scale::Types.get(self::INNER_TYPE)
      else
        self::INNER_TYPE
      end
    value = type.decode(scale_bytes)
    puts "  END " + self::TYPE_NAME + ": #{scale_bytes}" if Scale::Types.debug == true
    new(value)
  else
    raise BadDataError.new("Bad scale data for #{self::TYPE_NAME}")
  end
end
inner_type(type) click to toggle source
# File lib/scale/base.rb, line 78
def inner_type(type)
  const_set(:INNER_TYPE, type)
end