Sha256: 84eb763e8e66f48de6c31ed76b318265a9766ecf2038633bd54501ccf1729c64
Contents?: true
Size: 725 Bytes
Versions: 1
Compression:
Stored size: 725 Bytes
Contents
class InlineHasManyProperty attr_accessor :name def initialize(owner_clazz, name, options = {}) @name = name getter = <<-GETTER def #{name} @#{name} ||= CouchPotato::Persistence::InlineCollection.new(#{item_class_name}) end GETTER owner_clazz.class_eval getter end def build(object, json) object.send("#{name}").clear json[name.to_s].each do |item| item.delete 'ruby_class' object.send("#{name}").build item end end def save(object) end def serialize(json, object) json[name.to_s] = object.send(name) end def destroy(object) end private def item_class_name @name.to_s.singularize.camelcase end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
langalex-couch_potato-0.1 | lib/couch_potato/persistence/inline_has_many_property.rb |