Sha256: 00dd5023776872ba3872db415afdc19ee1b2f8c14d8068536c7b29f7057922dc

Contents?: true

Size: 1.75 KB

Versions: 28

Compression:

Stored size: 1.75 KB

Contents

require "benchmark"
require "ruby-prof"
require "mongo_doc"

class Person
  include MongoDoc::Document

  attr_accessor :birth_date, :type => Date

  embed :name
  embed :address
  embed_many :phones
end

class Name
  include MongoDoc::Document

  attr_accessor :given
  attr_accessor :family
  attr_accessor :middle
end

class Address
  include MongoDoc::Document

  attr_accessor :street
  attr_accessor :city
  attr_accessor :state
  attr_accessor :post_code
  attr_accessor :type
end

class Phone
  include MongoDoc::Document

  attr_accessor :country_code
  attr_accessor :number
  attr_accessor :type
end

class MongoDocument
  attr_accessor :collection
  attr_accessor :documents

  def initialize
    MongoDoc::Connection.name = 'mongo_doc_object_test'
    self.collection = MongoDoc::Collection.new 'people'
    collection.drop
  end

  def generate(count)
    self.documents = []
    count.times do |i|
      person = Person.new(:birth_date => Date.new(1970, 1, 1))
      name = Name.new(:given => "James #{i}", :family => "Kirk", :middle => "Tiberius")
      address = Address.new(:street => "1 Starfleet Command Way", :city => "San Francisco", :state => "CA", :post_code => "94133", :type => "Work")
      phone = Phone.new(:country_code => 1, :number => "415-555-1212", :type => "Mobile")
      person.name = name
      person.address = address
      person.phones << phone

      documents << person
    end
  end

  def writes(count)
    count.times do |i|
      documents[i].save
    end
  end

  def reads(count)
    count.times do |i|
      doc = collection.find_one(documents[i]._id)
      raise 'Not found' unless doc.name.given == documents[i].name.given
    end
  end

  def query_all
    collection.find.each do |doc|
      given_name = doc.name.given
    end
  end
end

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
mongo_doc-0.6.26 perf/mongo_document.rb
mongo_doc-0.6.25 perf/mongo_document.rb
mongo_doc-0.6.23 perf/mongo_document.rb
mongo_doc-0.6.22 perf/mongo_document.rb
mongo_doc-0.6.21 perf/mongo_document.rb
mongo_doc-0.6.20 perf/mongo_document.rb
mongo_doc-0.6.19 perf/mongo_document.rb
mongo_doc-0.6.18 perf/mongo_document.rb
mongo_doc-0.6.17 perf/mongo_document.rb
mongo_doc-0.6.16 perf/mongo_document.rb
mongo_doc-0.6.15 perf/mongo_document.rb
mongo_doc-0.6.14 perf/mongo_document.rb
mongo_doc-0.6.13 perf/mongo_document.rb
mongo_doc-0.6.12 perf/mongo_document.rb
mongo_doc-0.6.11 perf/mongo_document.rb
mongo_doc-0.6.10 perf/mongo_document.rb
mongo_doc-0.6.9 perf/mongo_document.rb
mongo_doc-0.6.8 perf/mongo_document.rb
mongo_doc-0.6.7 perf/mongo_document.rb
mongo_doc-0.6.6 perf/mongo_document.rb