Module: Concurrent::ImmutableStruct
- Defined in:
 - lib/concurrent-ruby/concurrent/immutable_struct.rb
 
Overview
A thread-safe, immutable variation of Ruby’s standard ‘Struct`.
Class Method Summary collapse
Instance Method Summary collapse
- 
  
    
      #==(other)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Equality.
 - 
  
    
      #[](member)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Attribute Reference.
 - 
  
    
      #each {|value| ... } ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Yields the value of each struct member in order.
 - 
  
    
      #each_pair {|member, value| ... } ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Yields the name and value of each struct member in order.
 - 
  
    
      #inspect  ⇒ String 
    
    
      (also: #to_s)
    
  
  
  
  
  
  
  
  
  
    
Describe the contents of this struct in a string.
 - 
  
    
      #merge(other) {|member, selfvalue, othervalue| ... } ⇒ Synchronization::AbstractStruct 
    
    
  
  
  
  
  
  
  
  
  
    
Returns a new struct containing the contents of ‘other` and the contents of `self`.
 - 
  
    
      #select {|value| ... } ⇒ Array 
    
    
  
  
  
  
  
  
  
  
  
    
Yields each member value from the struct to the block and returns an Array containing the member values from the struct for which the given block returns a true value (equivalent to ‘Enumerable#select`).
 - 
  
    
      #to_h  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Returns a hash containing the names and values for the struct’s members.
 - 
  
    
      #values  ⇒ Array 
    
    
      (also: #to_a)
    
  
  
  
  
  
  
  
  
  
    
Returns the values for this struct as an Array.
 - 
  
    
      #values_at(*indexes)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the struct member values for each selector as an Array.
 
Class Method Details
.included(base) ⇒ Object
      12 13 14  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 12 def self.included(base) base.safe_initialization! end  | 
  
Instance Method Details
#==(other) ⇒ Boolean
Equality
      51 52 53  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 51 def ==(other) ns_equality(other) end  | 
  
#[](member) ⇒ Object
Attribute Reference
      46 47 48  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 46 def [](member) ns_get(member) end  | 
  
#each {|value| ... } ⇒ Object
Yields the value of each struct member in order. If no block is given an enumerator is returned.
      56 57 58 59  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 56 def each(&block) return enum_for(:each) unless block_given? ns_each(&block) end  | 
  
#each_pair {|member, value| ... } ⇒ Object
Yields the name and value of each struct member in order. If no block is given an enumerator is returned.
      62 63 64 65  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 62 def each_pair(&block) return enum_for(:each_pair) unless block_given? ns_each_pair(&block) end  | 
  
#inspect ⇒ String Also known as: to_s
Describe the contents of this struct in a string.
      29 30 31  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 29 def inspect ns_inspect end  | 
  
#merge(other) {|member, selfvalue, othervalue| ... } ⇒ Synchronization::AbstractStruct
Returns a new struct containing the contents of ‘other` and the contents of `self`. If no block is specified, the value for entries with duplicate keys will be that of `other`. Otherwise the value for each duplicate key is determined by calling the block with the key, its value in `self` and its value in `other`.
      36 37 38  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 36 def merge(other, &block) ns_merge(other, &block) end  | 
  
#select {|value| ... } ⇒ Array
Yields each member value from the struct to the block and returns an Array containing the member values from the struct for which the given block returns a true value (equivalent to ‘Enumerable#select`).
      68 69 70 71  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 68 def select(&block) return enum_for(:select) unless block_given? ns_select(&block) end  | 
  
#to_h ⇒ Hash
Returns a hash containing the names and values for the struct’s members.
      41 42 43  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 41 def to_h ns_to_h end  | 
  
#values ⇒ Array Also known as: to_a
Returns the values for this struct as an Array.
      17 18 19  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 17 def values ns_values end  | 
  
#values_at(*indexes) ⇒ Object
Returns the struct member values for each selector as an Array.
A selector may be either an Integer offset or a Range of offsets (as in ‘Array#values_at`).
      24 25 26  | 
    
      # File 'lib/concurrent-ruby/concurrent/immutable_struct.rb', line 24 def values_at(*indexes) ns_values_at(indexes) end  |