Sha256: b082c05457871bd2d1bd67eefb5b66c2c5a07e2f27f45189429d95b0249df1d7

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

# A [Struct](Struct) is a convenient way to bundle a
# number of attributes together, using accessor methods, without having to
# write an explicit class.
#
# The [Struct](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](https://ruby-doc.org/core-2.6.3/Module.html#method-i-attr_accessor)
# .
#
# ```ruby
# 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 [::new](Struct#method-c-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](https://ruby-doc.org/core-2.6.3/Symbol.html) ( `:name` ).
class Struct[Elem] < Object
  include Enumerable[Elem, Struct[Elem]]

  type attribute_name = Symbol | String

  def initialize: (attribute_name, *attribute_name, ?keyword_init: bool) ?{ () -> void } -> void

  def each: () { (Elem) -> untyped } -> untyped

  def self.members: () -> ::Array[Symbol]
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rbs-0.14.0 stdlib/builtin/struct.rbs
rbs-0.13.1 stdlib/builtin/struct.rbs
rbs-0.13.0 stdlib/builtin/struct.rbs
rbs-0.12.2 stdlib/builtin/struct.rbs
rbs-0.12.1 stdlib/builtin/struct.rbs
rbs-0.12.0 stdlib/builtin/struct.rbs