diff --git a/.gitignore b/.gitignore index d87d4be..5282e9e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ spec/reports test/tmp test/version_tmp tmp +*un~ diff --git a/lib/mongoid-sequence.rb b/lib/mongoid-sequence.rb index f29f69a..4381ae5 100644 --- a/lib/mongoid-sequence.rb +++ b/lib/mongoid-sequence.rb @@ -19,14 +19,15 @@ def sequence(field) end def set_sequence - sequences = self.db.collection("__sequences") self.class.sequence_fields.each do |field| - next_sequence = sequences.find_and_modify(:query => {"_id" => "#{self.class.name.underscore}_#{field}"}, - :update => {"$inc" => {"seq" => 1}}, - :new => true, - :upsert => true) + next_sequence = self.class.collection. + database.session.command(findAndModify: "__sequences", + query: {"_id" => "#{self.class.name.underscore}_#{field}"}, + update: {"$inc" => {"seq" => 1}}, + new: true, + upsert: true) - self[field] = next_sequence["seq"] + self[field] = next_sequence["value"]["seq"] end if self.class.sequence_fields end end diff --git a/lib/mongoid-sequence/version.rb b/lib/mongoid-sequence/version.rb index 8cb10cc..0ffd6da 100644 --- a/lib/mongoid-sequence/version.rb +++ b/lib/mongoid-sequence/version.rb @@ -1,5 +1,5 @@ module Mongoid module Sequence - VERSION = "0.1" + VERSION = "0.1.1" end end diff --git a/mongoid-sequence.gemspec b/mongoid-sequence.gemspec index 08658e8..49f8890 100644 --- a/mongoid-sequence.gemspec +++ b/mongoid-sequence.gemspec @@ -8,7 +8,7 @@ Gem::Specification.new do |gem| gem.summary = %q{Specify fields to behave like a sequence number (exactly like the "id" column in conventional SQL flavors).} gem.homepage = "https://github.com/goncalossilva/mongoid-sequence" - gem.add_dependency("mongoid", "~> 2.0") + gem.add_dependency("mongoid", "~> 3.0") gem.add_dependency("activesupport", "~> 3.1") gem.add_development_dependency("rake", "~> 0.9") diff --git a/test/mongoid.yml b/test/mongoid.yml new file mode 100644 index 0000000..cf47133 --- /dev/null +++ b/test/mongoid.yml @@ -0,0 +1,16 @@ +test: + sessions: + default: + hosts: + - localhost:27017 + database: mongoid_sequence_test + options: + allow_dynamic_fields: false + identity_map_enabled: true + include_root_in_json: true + include_type_for_serialization: true + scope_overwrite_exception: true + raise_not_found_error: false + skip_version_check: false + use_activesupport_time_zone: false + use_utc: true diff --git a/test/test_helper.rb b/test/test_helper.rb index ea09083..29a3804 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -4,10 +4,8 @@ require File.expand_path("../../lib/mongoid-sequence", __FILE__) -Mongoid.configure do |config| - name = "mongoid_sequence_test" - config.master = Mongo::Connection.new.db(name) -end +Mongoid.load!("#{File.dirname(__FILE__)}/mongoid.yml", :test) + Dir["#{File.dirname(__FILE__)}/models/*.rb"].each { |f| require f } @@ -15,6 +13,6 @@ class BaseTest < Test::Unit::TestCase def test_default; end # Avoid "No tests were specified." on 1.8.7 def teardown - Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:remove) + Mongoid.default_session.collections.select { |c| c.name !~ /system/ }.each(&:drop) end end