| class methods | 
| new | Struct.new( [aString] [, aSym]+ )
      -> CustomerClass | 
 | Creates a new class, named by aString, containing
    accessor methods for the given symbols.
    If the name aString is omitted, an anonymous structure
    class will be created. Otherwise, the name of this struct will
    appear as a constant in class Struct, so it must be unique
    for allStructs in the system and should start with a
    capital letter.Struct::newreturns a newClassobject, which can then be used
    to create specific instances of the new structure.
    The remaining methods listed below (class and instance) are
    defined for this generated class. See the description that follows 
    for an example. | | new | CustomerClass.new( [anObject]+ )
      -> CustomerInst | 
 | Creates a new instance.  The number of actual parameters must be
    less than or equal to the number of attributes defined for this
    class; unset parameters default to nil.  Passing too many
    parameters will raise anArgumentError.
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
  | joe.name | » | "Joe Smith" |  
  | joe.zip | » | 12345 |  | | members | CustomerClass.members
      -> anArray | 
 | Returns an array of strings representing the names of the
    instance variables. 
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
  | Customer.members | » | ["name", "address", "zip"] |  | 
| instance methods | 
| == | CustomerInst == anOtherStruct
      -> trueorfalse | 
 | Equality---Returns trueif anOtherStruct is equal to this
    one: they must be of the same class as generated byStruct::new, and the values of
    all instance variables must be equal (according toObject#==).
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe   = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
| joejr = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
| jane  = Customer.new( "Jane Doe", "456 Elm, Anytown NC", 12345 ) |  
  | joe == joejr | » | true |  
  | joe == jane | » | false |  | | [ ] | CustomerInst[ aSymbol ] -> anObject CustomerInst[ anInteger ] -> anObject
 | 
 | Attribute Reference---Returns the value of the instance variable
    named by aSymbol, or indexed (0..length-1) by
    anInteger.  Will raise NameErrorif the named
    variable does not exist, orIndexErrorif the index is out of range.
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
|  |  
  | joe["name"] | » | "Joe Smith" |  
  | joe[:name] | » | "Joe Smith" |  
  | joe[0] | » | "Joe Smith" |  | | [ ]= | CustomerInst[ aSymbol ] = anObject -> anObject CustomerInst[ anInteger ] = anObject -> anObject
 | 
 | Attribute Assignment---Assigns to the instance variable named by
    aSymbol or anInteger
    the value anObject and returns it.  Will raise
    a NameErrorif the named variable does not exist, or anIndexErrorif the index is out of range.
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
|  |  
| joe["name"] = "Luke" |  
| joe[:zip]   = "90210" |  
|  |  
  | joe.name | » | "Luke" |  
  | joe.zip | » | "90210" |  | | each | CustomerInst.each {| anObject | block }
      -> CustomerInst | 
 | Calls block once for each instance variable, passing the 
    value as a parameter. produces:| 
Customer = Struct.new( "Customer", :name, :address, :zip )
joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 )
joe.each {|x| puts(x) }
 | 
 | 
Joe Smith
123 Maple, Anytown NC
12345
 | 
 | | length | CustomerInst.length
      -> anInteger | 
 | Returns the number of instance variables. 
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
  | joe.length | » | 3 |  | | members | CustomerInst.members
      -> anArray | 
 | Returns an array of strings representing the names of the
    instance variables. 
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
  | joe.members | » | ["name", "address", "zip"] |  | | size | CustomerInst.size
      -> anInteger | 
 | Synonym for Struct#length. | | to_a | CustomerInst.to_a
      -> anArray | 
 | Returns the values for this instance as an array. 
| Customer = Struct.new( "Customer", :name, :address, :zip ) |  
| joe = Customer.new( "Joe Smith", "123 Maple, Anytown NC", 12345 ) |  
  | joe.to_a[1] | » | "123 Maple, Anytown NC" |  | | values | CustomerInst.values
      -> anArray | 
 | Synonym for to_a. |