Sha256: dcd9fb75cdddbf3828871ecee1917360394beca9bf3521e84e6780ef6aab4c38
Contents?: true
Size: 1.22 KB
Versions: 3
Compression:
Stored size: 1.22 KB
Contents
module SonJay class ObjectModel module Content class ContentWithExtra < Abstract def extra @extra ||= ObjectModel::ContentData.new end def each @data.each do |(name, value)| yield name, value end @extra.each do |(name, value)| yield name, value end end def freeze super @extra.freeze self end def dup new_copy = super new_copy.instance_variable_set :@extra, @extra.dup if defined? @extra new_copy end def clone new_copy = super if (defined? @extra) && (! new_copy.frozen?) p new_copy.frozen? new_copy.instance_variable_set :@extra, @extra.clone end new_copy end def to_h extra.empty? ? @data.dup : extra.hash_merge( @data ) end private def load_extra_property(name_string, value) extra[ name_string ] = value end def hash_for_json extra.empty? ? @data : extra.hash_merge( @data ) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems