class YARD::OpenStruct
via struct.attr_name
and +struct.attr_name = value+.
An OpenStruct compatible struct class that allows for basic access of attributes
def ==(other)
def ==(other) other.is_a?(self.class) && to_h == other.to_h end
def [](key)
def [](key) @table[key.to_sym] end
def []=(key, value)
def []=(key, value) @table[key.to_sym] = value end
def __cache_lookup__(name)
def __cache_lookup__(name) key = name.to_sym.inspect instance_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{name}; @table[#{key}]; end def #{name.to_s.sub('?','_')}=(v); @table[#{key}] = v; end unless #{key}.to_s.include?('?') RUBY end
def dig(*keys)
def dig(*keys) @table.dig(*keys) end
def each_pair(&block)
def each_pair(&block) @table.each_pair(&block) end
def hash
def hash @table.hash end
def initialize(hash = {})
def initialize(hash = {}) @table = hash.each_pair { |k, v| [k.to_sym, v] } end
def marshal_dump
def marshal_dump @table end
def marshal_load(data)
def marshal_load(data) @table = data end
def method_missing(name, *args)
- Private: -
def method_missing(name, *args) if name.to_s.end_with?('=') varname = name.to_s[0..-2].to_sym __cache_lookup__(varname) send(name, args.first) else __cache_lookup__(name) send(name) end end
def to_h
def to_h @table.dup end