Class: SonJay::ObjectModel::ContentData

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/son_jay/object_model/content_data.rb

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ ContentData

Returns a new instance of ContentData.



10
11
12
# File 'lib/son_jay/object_model/content_data.rb', line 10

def initialize(data = {})
  @data = data.to_hash
end

Instance Method Details

#[](name) ⇒ Object



26
27
28
29
# File 'lib/son_jay/object_model/content_data.rb', line 26

def [](name)
  name = "#{name}" unless String === name
  @data[name]
end

#[]=(name, value) ⇒ Object



14
15
16
17
# File 'lib/son_jay/object_model/content_data.rb', line 14

def []=(name, value)
  name = "#{name}" unless String === name
  @data[name] = value
end

#cloneObject



61
62
63
64
65
66
67
# File 'lib/son_jay/object_model/content_data.rb', line 61

def clone
  new_copy = super
  unless new_copy.frozen?
    new_copy.instance_variable_set :@data, @data.clone
  end
  new_copy
end

#dupObject



57
58
59
# File 'lib/son_jay/object_model/content_data.rb', line 57

def dup
  self.class.new( @data.dup )
end

#fetch(name, *args) ⇒ Object



19
20
21
22
23
24
# File 'lib/son_jay/object_model/content_data.rb', line 19

def fetch(name, *args)
  name = "#{name}" unless String === name
  block_given? ?
    @data.fetch(name, *args) { |*args| yield *args } :
    @data.fetch(name, *args)
end

#freezeObject



48
49
50
51
# File 'lib/son_jay/object_model/content_data.rb', line 48

def freeze
  @data.freeze
  super
end

#hash_merge(other) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/son_jay/object_model/content_data.rb', line 31

def hash_merge(other)
  @data.dup.tap { |result|
    other.each do |name, value|
      name = "#{name}" unless String === name
      result[name] = value
    end
  }
end

#to_hObject



53
54
55
# File 'lib/son_jay/object_model/content_data.rb', line 53

def to_h
  @data.dup
end