class SonJay::ObjectModel::Content::ContentWithExtra

Public Instance Methods

clone() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 32
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
dup() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 26
def dup
  new_copy = super
  new_copy.instance_variable_set :@extra, @extra.dup if defined? @extra
  new_copy
end
each() { |name, value| ... } click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 11
def each
  @data.each do |(name, value)|
    yield name, value
  end
  @extra.each do |(name, value)|
    yield name, value
  end
end
extra() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 7
def extra
  @extra ||= ObjectModel::ContentData.new
end
freeze() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 20
def freeze
  super
  @extra.freeze
  self
end
to_h() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 41
def to_h
  extra.empty? ?
    @data.dup :
    extra.hash_merge( @data )
end

Private Instance Methods

hash_for_json() click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 53
def hash_for_json
  extra.empty? ?
    @data :
    extra.hash_merge( @data )
end
load_extra_property(name_string, value) click to toggle source
# File lib/son_jay/object_model/content/content_with_extra.rb, line 49
def load_extra_property(name_string, value)
  extra[ name_string ] = value
end