instance method
Prism::Pack::Directive#describe
describe
lib/prism/pack.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/pack.rb, line 133
def describe
case type
when SPACE
"whitespace"
when COMMENT
"comment"
when INTEGER
if size == SIZE_8
base = "#{SIGNED_DESCRIPTIONS[signed]} #{SIZE_DESCRIPTIONS[size]} integer"
else
base = "#{SIGNED_DESCRIPTIONS[signed]} #{SIZE_DESCRIPTIONS[size]} #{ENDIAN_DESCRIPTIONS[endian]} integer"
end
case length_type
when LENGTH_FIXED
if length > 1
base + ", x#{length}"
else
base
end
when LENGTH_MAX
base + ", as many as possible"
else
raise
end
when UTF8
"UTF-8 character"
when BER
"BER-compressed integer"
when FLOAT
"#{SIZE_DESCRIPTIONS[size]} #{ENDIAN_DESCRIPTIONS[endian]} float"
when STRING_SPACE_PADDED
"arbitrary binary string (space padded)"
when STRING_NULL_PADDED
"arbitrary binary string (null padded, count is width)"
when STRING_NULL_TERMINATED
"arbitrary binary string (null padded, count is width), except that null is added with *"
when STRING_MSB
"bit string (MSB first)"
when STRING_LSB
"bit string (LSB first)"
when STRING_HEX_HIGH
"hex string (high nibble first)"
when STRING_HEX_LOW
"hex string (low nibble first)"
when STRING_UU
"UU-encoded string"
when STRING_MIME
"quoted printable, MIME encoding"
when STRING_BASE64
"base64 encoded string"
when STRING_FIXED
"pointer to a structure (fixed-length string)"
when STRING_POINTER
"pointer to a null-terminated string"
when MOVE
"move to absolute position"
when BACK
"back up a byte"
when NULL
"null byte"
else
raise
end
end
Provide a human-readable description of the directive.