On this page
End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
Struct
A Struct is a convenient way to bundle a number of attributes together, using accessor methods, without having to write an explicit class.
The Struct class generates new subclasses that hold a set of members and their values. For each member a reader and writer method is created similar to Module#attr_accessor.
Customer = Struct.new(:name, :address) do def greeting "Hello #{name}!" end end dave = Customer.new("Dave", "123 Main") dave.name #=> "Dave" dave.greeting #=> "Hello Dave!"
See Struct::new for further examples of creating struct subclasses and instances.
In the method descriptions that follow, a “member” parameter refers to a struct member which is either a quoted string ("name") or a Symbol (:name).
Class methods 2
Instance methods 23
Group is a Struct that is only available when compiled with HAVE_GETGRENT.
The struct contains the following members:
- name
-
contains the name of the group as a
String. - passwd
-
contains the encrypted password as a
String. An ‘x’ is returned if password access to the group is not available; an empty string is returned if no password is needed to obtain membership of the group.Must be compiled with
HAVE_STRUCT_GROUP_GR_PASSWD. - gid
-
contains the group’s numeric ID as an integer.
- mem
-
is an
Arrayof Strings containing the short login names of the members of the group.
Passwd is a Struct that contains the following members:
- name
-
contains the short login name of the user as a
String. - passwd
-
contains the encrypted password of the user as a
String. an ‘x’ is returned if shadow passwords are in use. An ‘*’ is returned if the user cannot log in using a password. - uid
-
contains the integer user ID (uid) of the user.
- gid
-
contains the integer group ID (gid) of the user’s primary group.
- dir
-
contains the path to the home directory of the user as a
String. - shell
-
contains the path to the login shell of the user as a
String.
The following members below are optional, and must be compiled with special flags:
- gecos
-
contains a longer
Stringdescription of the user, such as a full name. Some Unix systems provide structured information in the gecos field, but this is system-dependent. must be compiled withHAVE_STRUCT_PASSWD_PW_GECOS - change
-
password change time(integer) must be compiled with
HAVE_STRUCT_PASSWD_PW_CHANGE - quota
-
quota value(integer) must be compiled with
HAVE_STRUCT_PASSWD_PW_QUOTA - age
-
password age(integer) must be compiled with
HAVE_STRUCT_PASSWD_PW_AGE - class
-
user access class(string) must be compiled with
HAVE_STRUCT_PASSWD_PW_CLASS - comment
-
comment(string) must be compiled with
HAVE_STRUCT_PASSWD_PW_COMMENT - expire
-
account expiration time(integer) must be compiled with
HAVE_STRUCT_PASSWD_PW_EXPIRE