This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

unpack1

        # String.unpack1

(from ruby core)
---
    str.unpack1(format)    ->  obj
    str.unpack1(format, offset: anInteger)    ->  obj

---

Decodes *str* (which may contain binary data) according to the format
string, returning the first value extracted.

See also String#unpack, Array#pack.

Contrast with String#unpack:

    "abc \0\0abc \0\0".unpack('A6Z6')   #=> ["abc", "abc "]
    "abc \0\0abc \0\0".unpack1('A6Z6')  #=> "abc"

In that case data would be lost but often it's the case that the array
only holds one value, especially when unpacking binary data. For
instance:

    "\xff\x00\x00\x00".unpack("l")         #=>  [255]
    "\xff\x00\x00\x00".unpack1("l")        #=>  255

Thus unpack1 is convenient, makes clear the intention and signals the
expected return value to those reading the code.

The keyword *offset* can be given to start the decoding after skipping
the specified amount of bytes:
    "abc".unpack1("C*") # => 97
    "abc".unpack1("C*", offset: 2) # => 99
    "abc".unpack1("C*", offset: 4) # => offset outside of string (ArgumentError)



      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.