module Net::IMAP::Config::AttrAccessors - net-imap: Ruby Standard Library Documentation

# module Net::IMAP::Config::AttrAccessors

> NOTE: This module is an internal implementation detail, with no guarantee of backward compatibility.

`attr_accessor` values are stored in a struct rather than ivars, making it simpler to ensure that all config objects share a single object shape. This also simplifies iteration over all defined attributes.

### Private Class Methods

attributes() click to toggle source

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 33
    def self.attributes
      instance_methods.grep(/=\z/).map { _1.to_s.delete_suffix("=").to_sym }
    end

included(mod) click to toggle source

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 21
    def self.included(mod)
      mod.extend Macros
    end

### Public Instance Methods

freeze() click to toggle source

Freezes the internal attributes struct, in addition to `self`.

Calls superclass method

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 51
    def freeze
      data.freeze
      super
    end

### Protected Instance Methods

initialize() click to toggle source
Calls superclass method

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 45
    def initialize # :notnew:
      super()
      @data = AttrAccessors.struct.new
    end

### Private Instance Methods

initialize_clone(other) click to toggle source
Calls superclass method

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 62
    def initialize_clone(other)
      super
      @data = other.data.clone
    end

initialize_dup(other) click to toggle source
Calls superclass method

    # File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 67
    def initialize_dup(other)
      super
      @data = other.data.dup
    end