模块 Net::IMAP::Config::AttrAccessors
注意: 此模块是内部实现细节,不保证向后兼容。
attr_accessor
值存储在结构体中,而不是实例变量中,这样可以更简单地确保所有配置对象共享一个对象形状。这也简化了对所有已定义属性的迭代。
私有类方法
attributes() 点击切换源码
# 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) 点击切换源码
# File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 21 def self.included(mod) mod.extend Macros end
公共实例方法
freeze() 点击切换源码
除了 self
之外,还会冻结内部属性结构体。
调用超类方法
# File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 51 def freeze data.freeze super end
保护实例方法
initialize() 点击切换源码
调用超类方法
# File net-imap-0.5.4/lib/net/imap/config/attr_accessors.rb, line 45 def initialize # :notnew: super() @data = AttrAccessors.struct.new end
私有实例方法
initialize_clone(other) 点击切换源码
调用超类方法
# 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) 点击切换源码
调用超类方法
# 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