Sha256: 00d98e16ee8485a35457b681c5423a8e4619af6e210cc48b26bdca37f84e18bf
Contents?: true
Size: 773 Bytes
Versions: 16
Compression:
Stored size: 773 Bytes
Contents
module Tamber class TamberObject def initialize(values={}) values.each do |k,v| val = self.class.curvert(v) self.instance_variable_set("@#{k}", val) self.singleton_class.send(:attr_accessor, k) end end def self.construct_from(values) values = Tamber::Util.symbolize_names(values) self.new(values) end def self.curvert(values={}) case values when Hash if values.has_key?(:object) Tamber::Util.object_classes.fetch(values[:object],TamberObject).new(values) else values.each do |k,v| values[k] = curvert(v) end end when Array values.map { |i| curvert(i) } else values end end end end
Version data entries
16 entries across 16 versions & 1 rubygems