module Net::IMAP::Config::AttrAccessors
def self.attr_accessor(name) # :nodoc: internal API
def self.attr_accessor(name) # :nodoc: internal API name = name.to_sym def_delegators :data, name, :"#{name}=" end
def self.attributes
def self.attributes instance_methods.grep(/=\z/).map { _1.to_s.delete_suffix("=").to_sym } end
def self.included(mod)
def self.included(mod) mod.extend Macros end
def self.struct # :nodoc: internal API
def self.struct # :nodoc: internal API unless defined?(self::Struct) const_set :Struct, Struct.new(*attributes) end self::Struct end
def freeze
def freeze data.freeze super end
def initialize # :notnew:
def initialize # :notnew: super() @data = AttrAccessors.struct.new end
def initialize_clone(other)
def initialize_clone(other) super @data = other.data.clone end
def initialize_dup(other)
def initialize_dup(other) super @data = other.data.dup end