mongodb-mongo_record 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,10 +3,6 @@
3
3
  MongoRecord is an ActiveRecord-like framework for the 10gen
4
4
  Mongo[http://www.mongodb.org/] database.
5
5
 
6
- This library is for use outside of Ruby on Rails. If you want to use Mongo
7
- with Ruby on Rails, please see the 'activerecord-mongo-adapter' project at
8
- http://github.com/mongodb/activerecord-mongo-adapter.
9
-
10
6
  This document assumes you have read the Mongo documentation.
11
7
 
12
8
  A quick code sample:
@@ -26,7 +22,7 @@ A quick code sample:
26
22
  end
27
23
 
28
24
  MongoRecord::Base.connection =
29
- XGen::Mongo::Driver::Mongo.new.db('mongorecord-test')
25
+ Mongo::Mongo.new.db('mongorecord-test')
30
26
 
31
27
  t = Track.new(:artist => 'Level 42', :album => 'Standing In The Light',
32
28
  :song => 'Micro-Kid', :track => 1)
@@ -15,8 +15,8 @@ class Track < MongoRecord::Base
15
15
  end
16
16
 
17
17
  host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
18
- port = ENV['MONGO_RUBY_DRIVER_PORT'] || XGen::Mongo::Driver::Mongo::DEFAULT_PORT
19
- MongoRecord::Base.connection = XGen::Mongo::Driver::Mongo.new(host,port).db('mongorecord-test')
18
+ port = ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Mongo::DEFAULT_PORT
19
+ MongoRecord::Base.connection = Mongo::Mongo.new(host,port).db('mongorecord-test')
20
20
 
21
21
  # Create data
22
22
 
@@ -24,12 +24,12 @@ puts "Creating 6 records using \"raw\" Mongo access..."
24
24
  db = MongoRecord::Base.connection
25
25
  coll = db.collection('tracks')
26
26
  coll.remove({})
27
- coll.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'The Ability to Swing'})
28
- coll.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'Budapest by Blimp'})
29
- coll.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'The Golden Age of Wireless', :song => 'Europa and the Pirate Twins'})
30
- coll.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'Garden Of Earthly Delights', :track => 1})
31
- coll.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'The Mayor Of Simpleton', :track => 2})
32
- song_id = XGen::Mongo::Driver::ObjectID.new
27
+ coll.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'The Ability to Swing'})
28
+ coll.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'Budapest by Blimp'})
29
+ coll.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'The Golden Age of Wireless', :song => 'Europa and the Pirate Twins'})
30
+ coll.insert({:_id => Mongo::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'Garden Of Earthly Delights', :track => 1})
31
+ coll.insert({:_id => Mongo::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'The Mayor Of Simpleton', :track => 2})
32
+ song_id = Mongo::ObjectID.new
33
33
  coll.insert({:_id => song_id, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'King For A Day', :track => 3})
34
34
  puts "Data created. One song_id = #{song_id}."
35
35
  puts "There are #{coll.count()} records in the tracks collection."
@@ -22,11 +22,11 @@ require 'mongo_record/sql'
22
22
  class String
23
23
  # Convert this String to an ObjectID.
24
24
  def to_oid
25
- XGen::Mongo::Driver::ObjectID.legal?(self) ? XGen::Mongo::Driver::ObjectID.from_string(self) : self
25
+ Mongo::ObjectID.legal?(self) ? XGen::Mongo::Driver::ObjectID.from_string(self) : self
26
26
  end
27
27
  end
28
28
 
29
- class XGen::Mongo::Driver::ObjectID
29
+ class Mongo::ObjectID
30
30
  # Convert this object to an ObjectID.
31
31
  def to_oid
32
32
  self
@@ -39,7 +39,7 @@ module MongoRecord
39
39
  def create_pk(row)
40
40
  return row if row[:_id]
41
41
  row.delete(:_id) # in case it is nil
42
- row['_id'] ||= XGen::Mongo::Driver::ObjectID.new
42
+ row['_id'] ||= Mongo::ObjectID.new
43
43
  row
44
44
  end
45
45
  end
@@ -157,13 +157,13 @@ module MongoRecord
157
157
 
158
158
  if fields.length == 2 &&
159
159
  ( fields[1].to_s == 'asc' || fields[1].to_s == 'desc' ||
160
- fields[1] == XGen::Mongo::ASCENDING || fields[1] == XGen::Mongo::DESCENDING )
160
+ fields[1] == Mongo::ASCENDING || fields[1] == Mongo::DESCENDING )
161
161
  fields = [fields]
162
162
  end
163
163
 
164
164
  fields = fields.map do |field|
165
165
  field = field.respond_to?(:[]) ? field : [field, :asc]
166
- field[1] = (field[1] == :desc) ? XGen::Mongo::DESCENDING : XGen::Mongo::ASCENDING
166
+ field[1] = (field[1] == :desc) ? Mongo::DESCENDING : Mongo::ASCENDING
167
167
  field
168
168
  end
169
169
 
@@ -381,7 +381,7 @@ module MongoRecord
381
381
  def count(options={})
382
382
  criteria = criteria_from(options[:conditions],options[:criteria]).merge!(where_func(options[:where]))
383
383
  begin
384
- collection.count(criteria)
384
+ collection.find(criteria).count()
385
385
  rescue => ex
386
386
  if ex.to_s =~ /Error with count command.*ns missing/
387
387
  # Return 0 because we will graciously assume that we are being
@@ -495,7 +495,7 @@ module MongoRecord
495
495
  # def find_initial(options)
496
496
  # criteria = criteria_from(options[:conditions]).merge!(where_func(options[:where]))
497
497
  # fields = fields_from(options[:select])
498
- # row = collection.find_first(criteria, :fields => fields)
498
+ # row = collection.find_one(criteria, :fields => fields)
499
499
  # (row.nil? || row['_id'] == nil) ? nil : self.new(row)
500
500
  # end
501
501
 
@@ -541,7 +541,7 @@ module MongoRecord
541
541
  fields = fields_from(options[:select])
542
542
 
543
543
  if ids.length == 1
544
- row = collection.find_first(criteria, :fields => fields)
544
+ row = collection.find_one(criteria, :fields => fields)
545
545
  raise RecordNotFound, "Couldn't find #{name} with ID=#{ids[0]} #{criteria.inspect}" if row == nil || row.empty?
546
546
  self.new(row)
547
547
  else
@@ -656,7 +656,7 @@ module MongoRecord
656
656
  # +func+ must be +nil+ or a JavaScript expression or function in a
657
657
  # string.
658
658
  def where_func(func) # :nodoc:
659
- func ? {'$where' => XGen::Mongo::Driver::Code.new(func)} : {}
659
+ func ? {'$where' => Mongo::Code.new(func)} : {}
660
660
  end
661
661
 
662
662
  def replace_named_bind_variables(str, h) # :nodoc:
@@ -815,7 +815,7 @@ module MongoRecord
815
815
 
816
816
  # Return true if this object is new---that is, does not yet have an id.
817
817
  def new_record?
818
- @_id.nil? || self.class.collection.find_first("_id" => @_id).nil?
818
+ @_id.nil? || self.class.collection.find_one("_id" => @_id).nil?
819
819
  end
820
820
 
821
821
  # Convert this object to a Mongo value suitable for saving to the
@@ -826,11 +826,11 @@ module MongoRecord
826
826
  key_names.each {|key|
827
827
  value = instance_variable_get("@#{key}").to_mongo_value
828
828
  if value.instance_of? Hash and value["_ns"]
829
- value = XGen::Mongo::Driver::DBRef.new(value["_ns"], value["_id"])
829
+ value = Mongo::DBRef.new(value["_ns"], value["_id"])
830
830
  elsif value.instance_of? Array
831
831
  value = value.map {|v|
832
832
  if v.instance_of? Hash and v["_ns"]
833
- XGen::Mongo::Driver::DBRef.new(v["_ns"], v["_id"])
833
+ Mongo::DBRef.new(v["_ns"], v["_id"])
834
834
  else
835
835
  v
836
836
  end
@@ -855,7 +855,7 @@ module MongoRecord
855
855
  # +self+ if all is well.
856
856
  def update
857
857
  set_update_times
858
- self.class.collection.modify({:_id => @_id}, to_mongo_value)
858
+ self.class.collection.update({:_id => @_id}, to_mongo_value)
859
859
  if self.class.collection.db.error?
860
860
  return false
861
861
  end
@@ -955,7 +955,7 @@ module MongoRecord
955
955
  def init_ivar(ivar_name, val)
956
956
  sym = ivar_name[1..-1].to_sym
957
957
  if self.class.subobjects.keys.include?(sym)
958
- if val.instance_of? XGen::Mongo::Driver::DBRef
958
+ if val.instance_of? Mongo::DBRef
959
959
  val = self.class.collection.db.dereference(val)
960
960
  end
961
961
  instance_variable_set(ivar_name, self.class.subobjects[sym].new(val))
@@ -963,7 +963,7 @@ module MongoRecord
963
963
  klazz = self.class.arrays[sym]
964
964
  val = [val] unless val.kind_of?(Array)
965
965
  instance_variable_set(ivar_name, val.collect {|v|
966
- if v.instance_of? XGen::Mongo::Driver::DBRef
966
+ if v.instance_of? Mongo::DBRef
967
967
  v = self.class.collection.db.dereference(v)
968
968
  end
969
969
  v.kind_of?(MongoRecord::Base) ? v : klazz.new(v)
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mongo_record'
3
- s.version = '0.4.1'
3
+ s.version = '0.4.2'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.summary = 'ActiveRecord-like models for the 10gen Mongo DB'
6
6
  s.description = 'MongoRecord is an ActiveRecord-like framework for the 10gen Mongo database. For more information about Mongo, see http://www.mongodb.org.'
7
7
 
8
- s.add_dependency('mongodb-mongo', ['>= 0.10'])
8
+ s.add_dependency('mongodb-mongo', ['>= 0.13'])
9
9
 
10
10
  s.require_paths = ['lib']
11
11
 
@@ -24,8 +24,8 @@ class LoggerTest < Test::Unit::TestCase
24
24
  MAX_RECS = 3
25
25
 
26
26
  @@host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
27
- @@port = ENV['MONGO_RUBY_DRIVER_PORT'] || XGen::Mongo::Driver::Mongo::DEFAULT_PORT
28
- @@db = XGen::Mongo::Driver::Mongo.new(@@host, @@port).db('mongorecord-test')
27
+ @@port = ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Mongo::DEFAULT_PORT
28
+ @@db = Mongo::Mongo.new(@@host, @@port).db('mongorecord-test')
29
29
 
30
30
  def setup
31
31
  @@db.drop_collection('testlogger') # can't remove recs from capped colls
@@ -57,7 +57,7 @@ class LoggerTest < Test::Unit::TestCase
57
57
 
58
58
  def test_alternate_connection
59
59
  old_db = @@db
60
- alt_db = XGen::Mongo::Driver::Mongo.new(@@host, @@port).db('mongorecord-test-log-device')
60
+ alt_db = Mongo::Mongo.new(@@host, @@port).db('mongorecord-test-log-device')
61
61
  begin
62
62
  @@db = nil
63
63
  MongoRecord::LogDevice.connection = alt_db
@@ -67,7 +67,7 @@ class LoggerTest < Test::Unit::TestCase
67
67
 
68
68
  coll = alt_db.collection('testlogger')
69
69
  assert_equal 1, coll.count()
70
- rec = coll.find_first
70
+ rec = coll.find_one
71
71
  assert_not_nil rec
72
72
  assert_match /test message/, rec['msg']
73
73
  rescue => ex
@@ -48,8 +48,8 @@ end
48
48
  class MongoTest < Test::Unit::TestCase
49
49
 
50
50
  @@host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
51
- @@port = ENV['MONGO_RUBY_DRIVER_PORT'] || XGen::Mongo::Driver::Mongo::DEFAULT_PORT
52
- @@db = XGen::Mongo::Driver::Mongo.new(@@host, @@port).db('mongorecord-test')
51
+ @@port = ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Mongo::DEFAULT_PORT
52
+ @@db = Mongo::Mongo.new(@@host, @@port).db('mongorecord-test')
53
53
  @@students = @@db.collection('students')
54
54
  @@courses = @@db.collection('courses')
55
55
  @@tracks = @@db.collection('tracks')
@@ -65,13 +65,13 @@ class MongoTest < Test::Unit::TestCase
65
65
  @@playlists.clear
66
66
 
67
67
  # Manually insert data without using MongoRecord::Base
68
- @@tracks.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'The Ability to Swing'})
69
- @@tracks.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'Budapest by Blimp'})
70
- @@tracks.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'Thomas Dolby', :album => 'The Golden Age of Wireless', :song => 'Europa and the Pirate Twins'})
71
- @@tracks.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'Garden Of Earthly Delights', :track => 1})
72
- @mayor_id = XGen::Mongo::Driver::ObjectID.new
68
+ @@tracks.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'The Ability to Swing'})
69
+ @@tracks.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'Aliens Ate My Buick', :song => 'Budapest by Blimp'})
70
+ @@tracks.insert({:_id => Mongo::ObjectID.new, :artist => 'Thomas Dolby', :album => 'The Golden Age of Wireless', :song => 'Europa and the Pirate Twins'})
71
+ @@tracks.insert({:_id => Mongo::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'Garden Of Earthly Delights', :track => 1})
72
+ @mayor_id = Mongo::ObjectID.new
73
73
  @@tracks.insert({:_id => @mayor_id, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'The Mayor Of Simpleton', :track => 2})
74
- @@tracks.insert({:_id => XGen::Mongo::Driver::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'King For A Day', :track => 3})
74
+ @@tracks.insert({:_id => Mongo::ObjectID.new, :artist => 'XTC', :album => 'Oranges & Lemons', :song => 'King For A Day', :track => 3})
75
75
 
76
76
  @mayor_str = "artist: XTC, album: Oranges & Lemons, song: The Mayor Of Simpleton, track: 2"
77
77
  @mayor_song = 'The Mayor Of Simpleton'
@@ -624,7 +624,7 @@ class MongoTest < Test::Unit::TestCase
624
624
  def test_alternate_connection
625
625
  old_db = MongoRecord::Base.connection
626
626
  assert_equal @@db, old_db
627
- alt_db = XGen::Mongo::Driver::Mongo.new(@@host, @@port).db('mongorecord-test-alt-conn')
627
+ alt_db = Mongo::Mongo.new(@@host, @@port).db('mongorecord-test-alt-conn')
628
628
  assert_not_equal old_db, alt_db
629
629
  alt_db.drop_collection('students')
630
630
  begin
@@ -755,7 +755,7 @@ class MongoTest < Test::Unit::TestCase
755
755
  Track.index [:artist, :created_at]
756
756
  Track.index [:song, :desc], true
757
757
  Track.index [:artist, [:album, :desc]]
758
- Track.index [:created_at, XGen::Mongo::ASCENDING]
758
+ Track.index [:created_at, Mongo::ASCENDING]
759
759
 
760
760
  assert Track.indexes.has_key?("artist_1")
761
761
  assert Track.indexes.has_key?("artist_1_created_at_1")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongodb-mongo_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Menard
@@ -21,7 +21,7 @@ dependencies:
21
21
  requirements:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
- version: "0.10"
24
+ version: "0.13"
25
25
  version:
26
26
  description: MongoRecord is an ActiveRecord-like framework for the 10gen Mongo database. For more information about Mongo, see http://www.mongodb.org.
27
27
  email: mongodb-user@googlegroups.com