mongoid-list 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ module Mongoid
9
9
  def update_positions!(klass, elements)
10
10
  elements.each_with_index do |element, idx|
11
11
  id = element.kind_of?(Hash) ? element['id'] : element
12
+ id = Moped::BSON::ObjectId.from_string(id) if id.is_a?(String)
12
13
  klass.collection.find({ _id: id }).update({ '$set' => { position: (idx + 1) } })
13
14
  end
14
15
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module List
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
data/mongoid-list.gemspec CHANGED
@@ -7,7 +7,6 @@ require "mongoid/list/version"
7
7
  Gem::Specification.new do |s|
8
8
  s.name = 'mongoid-list'
9
9
  s.version = Mongoid::List::VERSION
10
- s.date = '2013-02-06'
11
10
  s.authors = [ 'Dave Krupinski' ]
12
11
  s.email = 'dave@davekrupinski.com'
13
12
  s.summary = 'Simple list behavior for Mongoid'
@@ -18,15 +17,13 @@ Gem::Specification.new do |s|
18
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.require_paths = ["lib"]
20
19
 
21
- s.add_dependency('mongoid', [ '>= 3.0.0' ])
20
+ s.add_dependency('mongoid', [ '>= 3.1.0' ])
22
21
 
23
22
  s.add_development_dependency('rspec', [ '>= 2.13.0' ])
24
23
  s.add_development_dependency('guard', [ '>= 1.8.0' ])
25
24
  s.add_development_dependency('guard-rspec', [ '>= 2.5.0' ])
26
25
  s.add_development_dependency('guard-spork', [ '>= 1.5.0' ])
27
- s.add_development_dependency('listen', [ '>= 1.0.0' ])
28
- s.add_development_dependency('database_cleaner', [ '~> 0.9.0 ' ])
29
-
30
- s.add_development_dependency('rspecify')
26
+ s.add_development_dependency('listen', [ '>= 1.1.0' ])
27
+ s.add_development_dependency('database_cleaner', [ '~> 1.0.0 ' ])
31
28
 
32
29
  end
@@ -82,6 +82,33 @@ describe Mongoid::List::Collection do
82
82
 
83
83
  describe "#update_positions_in_list!" do
84
84
 
85
+ context "string Ids" do
86
+
87
+ let!(:obj1) { Simple.create }
88
+ let!(:obj2) { Simple.create }
89
+ let!(:obj3) { Simple.create }
90
+
91
+ before do
92
+ Simple.update_positions_in_list!([obj2.id.to_s, obj1.id.to_s, obj3.id.to_s])
93
+ end
94
+
95
+ it "should change obj1 from :position of 1 to 2" do
96
+ obj1.position.should eq 1
97
+ obj1.reload.position.should eq 2
98
+ end
99
+
100
+ it "should change obj2 from :position of 2 to 1" do
101
+ obj2.position.should eq 2
102
+ obj2.reload.position.should eq 1
103
+ end
104
+
105
+ it "should not change obj3 from :position of 3" do
106
+ obj3.position.should eq 3
107
+ obj3.reload.position.should eq 3
108
+ end
109
+
110
+ end
111
+
85
112
  context "unscoped" do
86
113
 
87
114
  let!(:obj1) { Simple.create }
@@ -116,6 +116,32 @@ describe Mongoid::List::Embedded do
116
116
  Container.create!
117
117
  end
118
118
 
119
+ context "with String Ids" do
120
+
121
+ let!(:obj1) { container.items.create! }
122
+ let!(:obj2) { container.items.create! }
123
+ let!(:obj3) { container.items.create! }
124
+
125
+ before do
126
+ container.items.update_positions_in_list!([ obj2.id.to_s, obj1.id.to_s, obj3.id.to_s ])
127
+ end
128
+
129
+ it "should change obj1 from :position of 1 to 2" do
130
+ obj1.position.should eq 1
131
+ obj1.reload.position.should eq 2
132
+ end
133
+
134
+ it "should change obj2 from :position of 2 to 1" do
135
+ obj2.position.should eq 2
136
+ obj2.reload.position.should eq 1
137
+ end
138
+
139
+ it "should not change obj3 from :position of 3" do
140
+ obj3.position.should eq 3
141
+ obj3.reload.position.should eq 3
142
+ end
143
+
144
+ end
119
145
  context "unscoped" do
120
146
 
121
147
  let!(:obj1) { container.items.create! }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 3.0.0
21
+ version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 3.0.0
29
+ version: 3.1.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rspec
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
- version: 1.0.0
101
+ version: 1.1.0
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
- version: 1.0.0
109
+ version: 1.1.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: database_cleaner
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.0
117
+ version: 1.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,23 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: 0.9.0
126
- - !ruby/object:Gem::Dependency
127
- name: rspecify
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
125
+ version: 1.0.0
142
126
  description:
143
127
  email: dave@davekrupinski.com
144
128
  executables: []