class Amber::Model
Public Class Methods
new()
click to toggle source
# File lib/amber/model.rb, line 2 def initialize @data = {} @data["id"] = Amber::Data::IntegerData.new end
Public Instance Methods
[](key)
click to toggle source
# File lib/amber/model.rb, line 7 def [](key) if @data.has_key? key return @data[key] end end
[]=(key, value)
click to toggle source
# File lib/amber/model.rb, line 17 def []=(key, value) if value.is_a? Amber::Data @data[key] = value self.define_singleton_method key.to_sym do @data[key] end end end
has_key?(key)
click to toggle source
# File lib/amber/model.rb, line 13 def has_key?(key) @data.has_key? key end
keys()
click to toggle source
# File lib/amber/model.rb, line 26 def keys @data.keys end
pack(map = nil)
click to toggle source
# File lib/amber/model.rb, line 30 def pack(map = nil) data = {} if map.is_a? Hash map.each do |key, value| if @data.has_key? key data_item = @data[key] data[value] = data_item.value end end else @data.each do |key, value| data[key] = value.value end end data end
struct(map = nil, name_only = false)
click to toggle source
# File lib/amber/model.rb, line 67 def struct(map = nil, name_only = false) struct = {} if map.is_a? Hash map.each do |key, value| if @data.has_key? key data_item = @data[key] if name_only struct[value] = data_item.class.to_s.match('\w+$').to_s next end struct[value] = data_item.class.to_s end end else @data.each do |key, value| if name_only struct[key] = value.class.to_s.match('\w+$').to_s next end struct[key] = value.class.to_s end end struct end
unpack(data, map = nil)
click to toggle source
# File lib/amber/model.rb, line 47 def unpack(data, map = nil) if data.is_a? Hash if map.is_a? Hash map.each do |key, value| if @data.has_key?(key) && data.has_key?(value) data_item = @data[key] data_item.value = data[value] end end else data.each do |key, value| if @data.has_key? key data_item = @data[key] data_item.value = data[key] end end end end end