Sha256: 4cdd0519100a4f36de6e13399dbc9ea6a9df14b52976f31295683bae37235638

Contents?: true

Size: 466 Bytes

Versions: 14

Compression:

Stored size: 466 Bytes

Contents

class Object
  def to_bson(*args)
    {MongoDoc::BSON::CLASS_KEY => self.class.name}.tap do |bson_hash|
      instance_variables.each do |name|
        bson_hash[name[1..-1]] = instance_variable_get(name).to_bson(args)
      end
    end
  end
  
  def self.bson_create(bson_hash, options = {})
    new.tap do |obj|
      bson_hash.each do |name, value|
        obj.instance_variable_set("@#{name}", MongoDoc::BSON.decode(value, options))
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
mongo_doc-0.4.2 lib/mongo_doc/ext/object.rb
mongo_doc-0.4.1 lib/mongo_doc/ext/object.rb
mongo_doc-0.4.0 lib/mongo_doc/ext/object.rb
mongo_doc-0.3.2 lib/mongo_doc/ext/object.rb
mongo_doc-0.3.1 lib/mongo_doc/ext/object.rb
mongo_doc-0.3.0 lib/mongo_doc/ext/object.rb
mongodoc-0.2.4 lib/mongodoc/ext/object.rb
mongodoc-0.2.2 lib/mongodoc/ext/object.rb
mongodoc-0.2.1 lib/mongodoc/ext/object.rb
mongodoc-0.2.0 lib/mongodoc/ext/object.rb
mongodoc-0.1.2 lib/mongodoc/ext/object.rb
mongodoc-0.1.1 lib/mongodoc/ext/object.rb
mongodoc-0.1.0 lib/mongodoc/ext/object.rb
mongodoc-0.0.0 lib/mongodoc/ext/object.rb